internal void CreateDefaultTemplates(string packageName, string layoutFile) { var header = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionHeader, Description = LayoutFileManager.LayoutDescriptionHeader, Path = LayoutFileManager.GridTemplatePathContainer }; var content = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContent, Description = LayoutFileManager.LayoutDescriptionContent, Path = LayoutFileManager.GridTemplatePathContainer }; var footer = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionFooter, Description = LayoutFileManager.LayoutDescriptionFooter, Path = LayoutFileManager.GridTemplatePathContainer }; var twoColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption2Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePath2Columns }; var threeColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption3Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePath3Columns }; var fourColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption4Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePath4Columns }; var leftSidebar = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContentSidebar, Description = LayoutFileManager.LayoutDescriptionContentSidebar, Path = LayoutFileManager.GridTemplatePathLeftSidebar }; var rightSidebar = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContentSidebar, Description = LayoutFileManager.LayoutDescriptionContentSidebar, Path = LayoutFileManager.GridTemplatePathRightSidebar }; this.CreateTemplate(packageName, layoutFile, LayoutFileManager.TemplateCaption1Column, LayoutFileManager.TemplateImage1Column, new LayoutControlDescription[] { header, content, footer }); this.CreateTemplate(packageName, layoutFile, LayoutFileManager.TemplateCaption2Columns, LayoutFileManager.TemplateImage2Columns, new LayoutControlDescription[] { header, twoColumns, footer }); this.CreateTemplate(packageName, layoutFile, LayoutFileManager.TemplateCaption3Columns, LayoutFileManager.TemplateImage3Columns, new LayoutControlDescription[] { header, threeColumns, footer }); this.CreateTemplate(packageName, layoutFile, LayoutFileManager.TemplateCaption4Columns, LayoutFileManager.TemplateImage4Columns, new LayoutControlDescription[] { header, fourColumns, footer }); this.CreateTemplate(packageName, layoutFile, LayoutFileManager.TemplateCaptionLeftSidebar, LayoutFileManager.TemplateImageLeftSidebar, new LayoutControlDescription[] { header, leftSidebar, footer }); this.CreateTemplate(packageName, layoutFile, LayoutFileManager.TemplateCaptionRightSidebar, LayoutFileManager.TemplateImageRightSidebar, new LayoutControlDescription[] { header, rightSidebar, footer }); }
private void CreateSemanticUiTemplate(string title, string image, LayoutControlDescription[] layoutControls) { this.CreateTemplate("SemanticUI", "default", title, image, layoutControls); }
private void CreateTemplate(string packageName, string fileNameWithoutExtension, string title, string image, LayoutControlDescription[] layoutControls) { var multisiteContext = SystemManager.CurrentContext as MultisiteContext; var prevSite = SystemManager.CurrentContext.CurrentSite; if (multisiteContext != null) { var defaultSite = multisiteContext.GetSites().Single(s => s.IsDefault); multisiteContext.ChangeCurrentSite(defaultSite); } try { PageManager pageManager = PageManager.GetManager(); using (new ElevatedModeRegion(pageManager)) { var fullTemplateName = string.IsNullOrEmpty(packageName) ? fileNameWithoutExtension : string.Format("{0}.{1}", packageName, fileNameWithoutExtension); if (!pageManager.GetTemplates().Any(pt => string.Compare(pt.Name, fullTemplateName, true) == 0 && string.Compare(pt.Title, title, true) == 0)) { var template = pageManager.CreateTemplate(); template.Category = this.GetOrCreateTemplateCategoryId(packageName); template.Name = fullTemplateName; template.Title = title; template.Framework = Pages.Model.PageTemplateFramework.Mvc; template.Theme = ThemeController.NoThemeName; var languageData = pageManager.CreatePublishedInvarianLanguageData(); template.LanguageData.Add(languageData); this.AttachImageToTemplate(template, pageManager, image ?? "default"); this.AddLayoutControls(pageManager, template, layoutControls); pageManager.SaveChanges(); var master = pageManager.TemplatesLifecycle.Edit(template); pageManager.TemplatesLifecycle.Publish(master); pageManager.SaveChanges(); if (string.Equals(LayoutFileManager.BootstrapDefaultTemplateName, fullTemplateName, StringComparison.OrdinalIgnoreCase)) this.CreateDefaultBootstrapTemplates(); else if (string.Equals(LayoutFileManager.FoundationDefaultTemplateName, fullTemplateName, StringComparison.OrdinalIgnoreCase)) this.CreateDefaultFoundationTemplates(); else if (string.Equals(LayoutFileManager.SemanticUIDefaultTemplateName, fullTemplateName, StringComparison.OrdinalIgnoreCase)) this.CreateDefaultSemanticUiTemplates(); } } } finally { if (multisiteContext != null) { multisiteContext.ChangeCurrentSite(prevSite); } } }
private void CreateFoundationTemplate(string title, string image, LayoutControlDescription[] layoutControls) { this.CreateTemplate("Foundation", "default", title, image, layoutControls); }
private void CreateBootstrapTemplate(string title, string image, LayoutControlDescription[] layoutControls) { this.CreateTemplate("Bootstrap", "default", title, image, layoutControls); }
private void AddLayoutControls(PageManager pageManager, PageTemplate template, LayoutControlDescription[] layoutControls) { if (layoutControls == null) return; var siblingId = Guid.Empty; for (int i = 0; i < layoutControls.Length; i++) { var description = layoutControls[i]; var layout = new GridControl(); layout.Layout = description.Path; var ctrlData = pageManager.CreateControl<TemplateControl>(isBackendObject: false); ctrlData.ObjectType = layout.GetType().FullName; ctrlData.PlaceHolder = "Contentplaceholder1"; ctrlData.SiblingId = siblingId; siblingId = ctrlData.Id; ctrlData.Caption = description.Caption; ctrlData.Description = description.Description; pageManager.ReadProperties(layout, ctrlData); pageManager.SetControlId(template, ctrlData); ctrlData.SetDefaultPermissions(pageManager); template.Controls.Add(ctrlData); } }
internal void CreateDefaultSemanticUiTemplates() { var header = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionHeader, Description = LayoutFileManager.LayoutDescriptionHeader, Path = LayoutFileManager.GridTemplatePathSemanticUiContainer }; var content = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContent, Description = LayoutFileManager.LayoutDescriptionContent, Path = LayoutFileManager.GridTemplatePathSemanticUiContainer }; var footer = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionFooter, Description = LayoutFileManager.LayoutDescriptionFooter, Path = LayoutFileManager.GridTemplatePathSemanticUiContainer }; var twoColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption2Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePathSemanticUi2Columns }; var threeColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption3Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePathSemanticUi3Columns }; var fourColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption4Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePathSemanticUi4Columns }; var leftSidebar = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContentSidebar, Description = LayoutFileManager.LayoutDescriptionContentSidebar, Path = LayoutFileManager.GridTemplatePathSemanticUiLeftSidebar }; var rightSidebar = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContentSidebar, Description = LayoutFileManager.LayoutDescriptionContentSidebar, Path = LayoutFileManager.GridTemplatePathSemanticUiRightSidebar }; this.CreateSemanticUiTemplate(LayoutFileManager.TemplateCaption1Column, LayoutFileManager.TemplateImage1Column, new LayoutControlDescription[] { header, content, footer }); this.CreateSemanticUiTemplate(LayoutFileManager.TemplateCaption2Columns, LayoutFileManager.TemplateImage2Columns, new LayoutControlDescription[] { header, twoColumns, footer }); this.CreateSemanticUiTemplate(LayoutFileManager.TemplateCaption3Columns, LayoutFileManager.TemplateImage3Columns, new LayoutControlDescription[] { header, threeColumns, footer }); this.CreateSemanticUiTemplate(LayoutFileManager.TemplateCaption4Columns, LayoutFileManager.TemplateImage4Columns, new LayoutControlDescription[] { header, fourColumns, footer }); this.CreateSemanticUiTemplate(LayoutFileManager.TemplateCaptionLeftSidebar, LayoutFileManager.TemplateImageLeftSidebar, new LayoutControlDescription[] { header, leftSidebar, footer }); this.CreateSemanticUiTemplate(LayoutFileManager.TemplateCaptionRightSidebar, LayoutFileManager.TemplateImageRightSidebar, new LayoutControlDescription[] { header, rightSidebar, footer }); }
internal void CreateDefaultBootstrapTemplates() { var header = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionHeader, Description = LayoutFileManager.LayoutDescriptionHeader, Path = LayoutFileManager.GridTemplatePathBootstrapContainer }; var content = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContent, Description = LayoutFileManager.LayoutDescriptionContent, Path = LayoutFileManager.GridTemplatePathBootstrapContainer }; var footer = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionFooter, Description = LayoutFileManager.LayoutDescriptionFooter, Path = LayoutFileManager.GridTemplatePathBootstrapContainer }; var twoColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption2Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePathBootstrap2Columns }; var threeColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption3Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePathBootstrap3Columns }; var fourColumns = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaption4Columns, Description = LayoutFileManager.LayoutDescriptionContentColumns, Path = LayoutFileManager.GridTemplatePathBootstrap4Columns }; var leftSidebar = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContentSidebar, Description = LayoutFileManager.LayoutDescriptionContentSidebar, Path = LayoutFileManager.GridTemplatePathBootstrapLeftSidebar }; var rightSidebar = new LayoutControlDescription() { Caption = LayoutFileManager.LayoutCaptionContentSidebar, Description = LayoutFileManager.LayoutDescriptionContentSidebar, Path = LayoutFileManager.GridTemplatePathBootstrapRightSidebar }; this.CreateBootstrapTemplate(LayoutFileManager.TemplateCaption1Column, LayoutFileManager.TemplateImage1Column, new LayoutControlDescription[] { header, content, footer }); this.CreateBootstrapTemplate(LayoutFileManager.TemplateCaption2Columns, LayoutFileManager.TemplateImage2Columns, new LayoutControlDescription[] { header, twoColumns, footer }); this.CreateBootstrapTemplate(LayoutFileManager.TemplateCaption3Columns, LayoutFileManager.TemplateImage3Columns, new LayoutControlDescription[] { header, threeColumns, footer }); this.CreateBootstrapTemplate(LayoutFileManager.TemplateCaption4Columns, LayoutFileManager.TemplateImage4Columns, new LayoutControlDescription[] { header, fourColumns, footer }); this.CreateBootstrapTemplate(LayoutFileManager.TemplateCaptionLeftSidebar, LayoutFileManager.TemplateImageLeftSidebar, new LayoutControlDescription[] { header, leftSidebar, footer }); this.CreateBootstrapTemplate(LayoutFileManager.TemplateCaptionRightSidebar, LayoutFileManager.TemplateImageRightSidebar, new LayoutControlDescription[] { header, rightSidebar, footer }); }