public void CanDeployWebPartPages() { var customersReportPage = new WebPartPageDefinition { Title = "Customer reports", FileName = "Customers-report.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var parthesReportPage = new WebPartPageDefinition { Title = "Parthers reports", FileName = "Parthers-report.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd2 }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list .AddWebPartPage(customersReportPage) .AddWebPartPage(parthesReportPage); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeploEmptyContentEditorWebpart() { var cewp = new ContentEditorWebPartDefinition { Title = "Empty Content Editor Webpart", Id = "m2EmptyCEWP", ZoneIndex = 10, ZoneId = "Main" }; var webPartPage = new WebPartPageDefinition { Title = "M2 CEWP provision", FileName = "cewp-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddContentEditorWebPart(cewp); }); }); }); DeployModel(model); }
protected virtual string GetSP2010WebPartPageTemplateContent(WebPartPageDefinition webPartPageModel) { switch (webPartPageModel.PageLayoutTemplate) { case 1: return(SP2010WebPartPageTemplates.spstd1); case 2: return(SP2010WebPartPageTemplates.spstd2); case 3: return(SP2010WebPartPageTemplates.spstd3); case 4: return(SP2010WebPartPageTemplates.spstd4); case 5: return(SP2010WebPartPageTemplates.spstd5); case 6: return(SP2010WebPartPageTemplates.spstd6); case 7: return(SP2010WebPartPageTemplates.spstd7); case 8: return(SP2010WebPartPageTemplates.spstd8); } throw new Exception(string.Format("PageLayoutTemplate: [{0}] is not supported.", webPartPageModel.PageLayoutTemplate)); }
public virtual string GetWebPartPageTemplateContent(WebPartPageDefinition webPartPageModel) { var spRuntimeVersion = typeof(SPField).Assembly.GetName().Version; var service = ServiceContainer.Instance.GetService <WebPartPageTemplatesServiceBase>(); return(service.GetPageLayoutTemplate(webPartPageModel.PageLayoutTemplate, spRuntimeVersion)); }
public static string GetWebPartTemplateContent(WebPartPageDefinition webPartPageModel) { // gosh! would u like to offer a better way? switch (webPartPageModel.PageLayoutTemplate) { case 1: return(WebPartPageTemplates.spstd1); case 2: return(WebPartPageTemplates.spstd2); case 3: return(WebPartPageTemplates.spstd3); case 4: return(WebPartPageTemplates.spstd4); case 5: return(WebPartPageTemplates.spstd5); case 6: return(WebPartPageTemplates.spstd6); case 7: return(WebPartPageTemplates.spstd7); case 8: return(WebPartPageTemplates.spstd8); } throw new Exception(string.Format("PageLayoutTemplate: [{0}] is not supported.", webPartPageModel.PageLayoutTemplate)); }
public override ModelNode ReverseSingleHost(object reverseHost, ReverseOptions options) { var item = (reverseHost as WebPartPageReverseHost).HostWebPartPageFile; var context = (reverseHost as WebPartPageReverseHost).HostClientContext; var def = new WebPartPageDefinition(); def.FileName = item.Name; def.Title = item.Title; // always reverse to CustomPageLayout // we don't know what is the content of the web part page using (var stream = File.OpenBinaryDirect( context, item.ServerRelativeUrl).Stream) { def.CustomPageLayout = Encoding.UTF8.GetString(ModuleFileUtils.ReadFully(stream)); } def.NeedOverride = true; return(new WebPartPageModelNode { Options = { RequireSelfProcessing = true }, Value = def }); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeploySimpleSiteFeedWebPartDefinition() { var siteFeed = new SiteFeedWebPartDefinition { Title = "Site Feed", Id = "m2SiteFeed", ZoneIndex = 10, ZoneId = "Main" }; var webPartPage = new WebPartPageDefinition { Title = "M2 Site Feed provision", FileName = "site-feed-webpart-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web .AddWebFeature(BuiltInWebFeatures.SiteFeed.Inherit().Enable()) .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddSiteFeedWebPart(siteFeed); }); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeployScriptEditorWebPartwithContent() { var scriptEditor = new ScriptEditorWebPartDefinition { Title = "Pre-provisioned Script Editor", Id = "m2ScriptEditorWithLoggerWhichMustBeMoreThan32Chars", ZoneIndex = 20, ZoneId = "Main", Content = " <script> console.log('script editor log'); </script> Pre-provisioned Script Editor Content" }; var webPartPage = new WebPartPageDefinition { Title = "M2 Script Editor provision", FileName = "script-editor-webpart-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddScriptEditorWebPart(scriptEditor); }); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeploySimpleScriptEditorWebPartDefinition() { var scriptEditor = new ScriptEditorWebPartDefinition { Title = "Empty Script Editor", Id = "m2EmptyScriptEditorrWhichMustBeMoreThan32Chars", ZoneIndex = 10, ZoneId = "Main" }; var webPartPage = new WebPartPageDefinition { Title = "M2 Script Editor provision", FileName = "script-editor-webpart-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddScriptEditorWebPart(scriptEditor); }); }); }); DeployModel(model); }
public void CanDeploy_WebpartTo_VideoContentType_VideoPlayerPage() { // aiming to deploy a web part to the following page with in a library // forms/videocontenttype/videoplayerpage.aspx var listDef = ModelGeneratorService.GetRandomDefinition <ListDefinition>(def => { def.ContentTypesEnabled = true; def.TemplateType = BuiltInListTemplateTypeId.DocumentLibrary; }); var contentTypeName = "Video"; var contentTypeLinkDef = new ContentTypeLinkDefinition { ContentTypeName = contentTypeName, ContentTypeId = BuiltInSiteContentTypeId.Video }; var formsFolder = new FolderDefinition { Name = "Forms" }; var contentTypeFolder = new FolderDefinition { Name = contentTypeName }; var pageDefinition = new WebPartPageDefinition { FileName = "videoplayerpage.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1, NeedOverride = false }; var model = SPMeta2Model.NewWebModel(web => { web.AddList(listDef, list => { list.AddContentTypeLink(contentTypeLinkDef); list.AddFolder(formsFolder, forms => { forms.AddFolder(contentTypeFolder, folder => { folder.AddHostWebPartPage(pageDefinition, page => { page.AddRandomWebpart(); page.AddRandomWebpart(); page.AddRandomWebpart(); }); }); }); }); }); TestModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanBindListViewWebPartByListViewTitle() { var incidentsLibrary = new ListDefinition { Title = "Incidents library", Description = "A document library.", TemplateType = BuiltInListTemplateTypeId.DocumentLibrary, Url = "m2Incidents" }; var incidentsView = new ListViewDefinition { Title = "Last Incidents", Fields = new Collection <string> { BuiltInInternalFieldNames.Edit, BuiltInInternalFieldNames.ID, BuiltInInternalFieldNames.FileLeafRef }, RowLimit = 10 }; var listView = new ListViewWebPartDefinition { Title = "Last Incidents binding by List View Title", Id = "m2LastIncidentsView", ZoneIndex = 10, ZoneId = "Main", ListUrl = incidentsLibrary.GetListUrl(), ViewName = incidentsView.Title }; var webPartPage = new WebPartPageDefinition { Title = "M2 List View provision", FileName = "listview-webpart-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web .AddList(incidentsLibrary, list => { list.AddListView(incidentsView); }) .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddListViewWebPart(listView); }); }); }); DeployModel(model); }
protected SPListItem FindWebPartPage(SPList list, WebPartPageDefinition webpartPageModel) { var webPartPageName = GetSafeWebPartPageFileName(webpartPageModel); if (!webPartPageName.EndsWith(".aspx")) { webPartPageName += ".aspx"; } return(list.Items.OfType <SPListItem>().FirstOrDefault(i => string.Compare(i.Name, webPartPageName, true) == 0)); }
protected string GetSafeWebPartPageFileName(WebPartPageDefinition webPartPageModel) { var fileName = webPartPageModel.FileName; if (!fileName.EndsWith(".aspx")) { fileName += ".aspx"; } return(fileName); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeployWebpartWithPreprocessedXML() { // this shows how to use M2 API to pre-process web part XML // here is a web part XML template // usually, you export that XML from SharePoint page, but M2 has pre-build class var contentEditorWebPartXml = BuiltInWebPartTemplates.ContentEditorWebPart; // let' set new some properties, shall we? // we load XML by WebpartXmlExtensions.LoadWebpartXmlDocument() method // it works well web both V2/V3 web part XML // then change properties and seehow it goes // then call ToString() to get string out of XML var wpXml = WebpartXmlExtensions .LoadWebpartXmlDocument(contentEditorWebPartXml) .SetOrUpdateProperty("FrameType", "Standard") .SetOrUpdateProperty("Width", "500") .SetOrUpdateProperty("Heigth", "200") .SetOrUpdateContentEditorWebPartProperty("Content", "This is a new content!", true) .ToString(); var contentEditorWebPart = new WebPartDefinition { Title = "New content", Id = "m2AboutSharePointnewContent", WebpartXmlTemplate = wpXml, ZoneIndex = 20, ZoneId = "Main" }; var webPartPage = new WebPartPageDefinition { Title = "M2 webparts provision", FileName = "web-parts-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddWebPart(contentEditorWebPart); }); }); }); DeployCSOMModel(model); }
public void Deploy_WebParts() { // Step 1, define security groups var gettingStarted = new SPMeta2.Definitions.WebPartDefinition { Title = "Getting started with site", Id = "spmGettingStarted", ZoneId = "Main", ZoneIndex = 100, WebpartXmlTemplate = ResourceReader.ReadFromResourceName("Templates.Webparts.Get started with your site.webpart") }; var contentEditor = new SPMeta2.Definitions.WebPartDefinition { Title = "SPMeta2 Content Editor Webpart", Id = "spmContentEditorWebpart", ZoneId = "Main", ZoneIndex = 200, WebpartXmlTemplate = ResourceReader.ReadFromResourceName("Templates.Webparts.Content Editor.dwp") }; var webpartPage = new WebPartPageDefinition { Title = "Getting started", FileName = "Getting-Started.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; // Step 2, define web model and artifact relationships - add security groups t the web var model = SPMeta2Model .NewWebModel(web => { web .AddList(BuiltInListDefinitions.SitePages, list => { list .AddWebPartPage(webpartPage, page => { page .AddWebPart(gettingStarted) .AddWebPart(contentEditor); }); }); }); // Step 3, deploy model DeployWebModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeploContentEditorWebpartWithUrlLink() { var htmlContent = new ModuleFileDefinition { FileName = "m2-cewp-content.html", Content = Encoding.UTF8.GetBytes("M2 is everything you need to deploy stuff to Sharepoint"), Overwrite = true, }; var cewp = new ContentEditorWebPartDefinition { Title = "Content Editor Webpart with URL link", Id = "m2ContentLinkCEWP", ZoneIndex = 20, ZoneId = "Main", ContentLink = UrlUtility.CombineUrl(new string[] { "~sitecollection", BuiltInListDefinitions.StyleLibrary.GetListUrl(), htmlContent.FileName }) }; var webPartPage = new WebPartPageDefinition { Title = "M2 CEWP provision", FileName = "cewp-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web .AddHostList(BuiltInListDefinitions.StyleLibrary, list => { list.AddModuleFile(htmlContent); }) .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddContentEditorWebPart(cewp); }); }); }); DeployModel(model); }
protected SPListItem FindWebPartPage(SPFolder folder, WebPartPageDefinition webpartPageModel) { var webPartPageName = GetSafeWebPartPageFileName(webpartPageModel); if (!webPartPageName.EndsWith(".aspx")) { webPartPageName += ".aspx"; } foreach (SPFile file in folder.Files) { if (file.Name.ToUpper() == webPartPageName.ToUpper()) { return(file.Item); } } return(null); }
public virtual string GetWebPartPageTemplateContent(WebPartPageDefinition webPartPageModel) { // TODO, add support for SP2016 // Built-in web part page templates should be correctly resolved for SP2010/2013 #683 var spRuntimeVersion = typeof(SPField).Assembly.GetName().Version; if (spRuntimeVersion.Major == 14) { return(GetSP2010WebPartPageTemplateContent(webPartPageModel)); } if (spRuntimeVersion.Major == 15) { return(GetSP2013WebPartPageTemplateContent(webPartPageModel)); } throw new Exception(string.Format("PageLayoutTemplate: [{0}] is not supported.", webPartPageModel.PageLayoutTemplate)); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanBindListViewWebPartToCalendarView() { var companyEvents = new ListDefinition { Title = "Company Events", Description = "A document library.", TemplateType = BuiltInListTemplateTypeId.Events, Url = "m2CompanyEvents" }; var webPartPage = new WebPartPageDefinition { Title = "M2 List View provision", FileName = "listview-webpart-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var listView = new ListViewWebPartDefinition { Title = "Company Events by List View Title", Id = "m2CompanyEvents", ZoneIndex = 10, ZoneId = "Main", ListUrl = companyEvents.GetListUrl(), ViewName = "Calendar" }; var model = SPMeta2Model.NewWebModel(web => { web .AddList(companyEvents) .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddListViewWebPart(listView); }); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeployWebPartPageWithCustomTemplate() { var customizedWebPartPage = new WebPartPageDefinition { Title = "Customers report", FileName = "Customers-report.aspx", CustomPageLayout = "___ a custom web part page template here ___ " }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list .AddWebPartPage(customizedWebPartPage); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanBindXsltListViewWebPartByListTitle() { var inventoryLibrary = new ListDefinition { Title = "Inventory library", Description = "A document library.", TemplateType = BuiltInListTemplateTypeId.DocumentLibrary, Url = "InventoryLibrary" }; var xsltListView = new XsltListViewWebPartDefinition { Title = "Inventory Default View by List Title", Id = "m2InventoryView", ZoneIndex = 10, ZoneId = "Main", ListTitle = inventoryLibrary.Title }; var webPartPage = new WebPartPageDefinition { Title = "M2 Xslt List View provision", FileName = "xslt-listview-webpart-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web .AddList(inventoryLibrary) .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddXsltListViewWebPart(xsltListView); }); }); }); DeployModel(model); }
public void Deploy_WebPartPages() { // Step 1, define security groups var sales = new WebPartPageDefinition { Title = "Sales Dashboard", FileName = "Sales-Dashboard.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var ratings = new WebPartPageDefinition { Title = "Ratings Dashboard", FileName = "Ratings-Dashboard.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd2 }; var performance = new WebPartPageDefinition { Title = "Performance Dashboard", FileName = "Performance-Dashboard.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd3 }; // Step 2, define web model and artifact relationships - add security groups t the web var model = SPMeta2Model .NewWebModel(web => { web .AddList(BuiltInListDefinitions.SitePages, list => { list .AddWebPartPage(sales) .AddWebPartPage(ratings) .AddWebPartPage(performance); }); }); // Step 3, deploy model DeployWebModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanBindListViewWebPartByListUrl() { var annualReviewsLibrary = new ListDefinition { Title = "Annual Reviews", Description = "A document library.", TemplateType = BuiltInListTemplateTypeId.DocumentLibrary, Url = "m2AnnualReviews" }; var listView = new ListViewWebPartDefinition { Title = "Annual Reviews Default View by List Url", Id = "m2AnnualReviewsView", ZoneIndex = 10, ZoneId = "Main", ListUrl = annualReviewsLibrary.GetListUrl() }; var webPartPage = new WebPartPageDefinition { Title = "M2 List View provision", FileName = "listview-webpart-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web .AddList(annualReviewsLibrary) .AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddListViewWebPart(listView); }); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeployWebpartByXML() { // this whould deploy the web part using WebpartXmlTemplate prop // you need to provide an XML template which you get from SharePoint // export the wenb part, and put it into WebpartXmlTemplate prop // here is a web part XML template // usually, you export that XML from SharePoint page, but M2 has pre-build class var contentEditorWebPartXml = BuiltInWebPartTemplates.ContentEditorWebPart; var contentEditorWebPart = new WebPartDefinition { Title = "About SharePoint XML", Id = "m2AboutSharePointXML", WebpartXmlTemplate = contentEditorWebPartXml, ZoneIndex = 20, ZoneId = "Main" }; var webPartPage = new WebPartPageDefinition { Title = "M2 webparts provision", FileName = "web-parts-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddWebPart(contentEditorWebPart); }); }); }); DeployModel(model); }
private SPListItem GetOrCreateNewWebPartPage(SPList list, WebPartPageDefinition webpartPageModel) { var targetPage = FindWebPartPage(list, webpartPageModel); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = targetPage == null ? null : targetPage.File, ObjectType = typeof(SPFile), ObjectDefinition = webpartPageModel, ModelHost = list }); if (targetPage == null || webpartPageModel.NeedOverride) { var webPartPageName = GetSafeWebPartPageFileName(webpartPageModel); // web part page name has to be without .aspx extensions in xmlCmd for ProcessBatchData method! var xmlCmd = string.Format(WebPartPageCmdTemplate, new object[] { list.ID.ToString(), Path.GetFileNameWithoutExtension(webPartPageName), (int)webpartPageModel.PageLayoutTemplate, webpartPageModel.NeedOverride.ToString().ToLower() }); var result = list.ParentWeb.ProcessBatchData(xmlCmd); // TODO. analyse the result // <Result ID="0, NewWebPage" Code="0"></Result> targetPage = FindWebPartPage(list, webpartPageModel); } return(targetPage); }
public void CanDeployDeleteWebPartsDefinition_ByTitle() { var webPartPage = new WebPartPageDefinition { Title = "M2 webparts", FileName = "web-parts.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; // aiming to delete two web part with the following titles: // 'My Tasks' // 'My Projects' var myWebPartDeletionDef = new DeleteWebPartsDefinition { WebParts = new List <WebPartMatch>(new WebPartMatch[] { new WebPartMatch { Title = "My Tasks" }, new WebPartMatch { Title = "My Projects" } }) }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddDeleteWebParts(myWebPartDeletionDef); }); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeployWebpartByWebpartGalleryFileName() { // this would deploy the web part using WebpartFileName // you need to provide a file name ofthe web part template in the web part gallery // M2 would load this file, then use an XML as a web part template var contentEditorWebPart = new WebPartDefinition { Title = "About SharePoint web part gallery", Id = "m2AboutSharePointWebPartGallery", // shortcut to "MSContentEditor.dwp", WebpartFileName = BuiltInWebpartFileNames.MSContentEditor, ZoneIndex = 20, ZoneId = "Main" }; var webPartPage = new WebPartPageDefinition { Title = "M2 webparts provision", FileName = "web-parts-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddWebPart(contentEditorWebPart); }); }); }); DeployModel(model); }
//[SampleMetadataTag(Name = BuiltInTagNames.SampleHidden)] public void CanDeployWebpartByWebpartType() { // this would deploy a web part using WebpartType prop // you need to provide AssemblyQualifiedName of the target web part type // M2 would use reflection to create an instane of the web part in the runtime // that works only for SSOM, not CSOM support yet var contentEditorWebPart = new WebPartDefinition { Title = "About SharePoint SSOM", Id = "m2AboutSharePointSSOM", WebpartType = typeof(ContentEditorWebPart).AssemblyQualifiedName, ZoneIndex = 10, ZoneId = "Main" }; var webPartPage = new WebPartPageDefinition { Title = "M2 webparts provision", FileName = "web-parts-provision.aspx", PageLayoutTemplate = BuiltInWebPartPageTemplates.spstd1 }; var model = SPMeta2Model.NewWebModel(web => { web.AddHostList(BuiltInListDefinitions.SitePages, list => { list.AddWebPartPage(webPartPage, page => { page.AddWebPart(contentEditorWebPart); }); }); }); DeploySSOMModel(model); }
public virtual string GetWebPartTemplateContent(WebPartPageDefinition webPartPageModel) { // gosh! would u like to offer a better way? // always SP2013 for CSOM yet // Built-in web part page templates should be correctly resolved for SP2010/2013 #683 // TODO, sp2016 support, if any switch (webPartPageModel.PageLayoutTemplate) { case 1: return(SP2013WebPartPageTemplates.spstd1); case 2: return(SP2013WebPartPageTemplates.spstd2); case 3: return(SP2013WebPartPageTemplates.spstd3); case 4: return(SP2013WebPartPageTemplates.spstd4); case 5: return(SP2013WebPartPageTemplates.spstd5); case 6: return(SP2013WebPartPageTemplates.spstd6); case 7: return(SP2013WebPartPageTemplates.spstd7); case 8: return(SP2013WebPartPageTemplates.spstd8); } throw new Exception(string.Format("PageLayoutTemplate: [{0}] is not supported.", webPartPageModel.PageLayoutTemplate)); }
public static byte[] GetCustomnPageContent(this WebPartPageDefinition definition) { return(Encoding.UTF8.GetBytes(definition.CustomPageLayout)); }