예제 #1
0
        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 });
        }
예제 #2
0
 private void CreateSemanticUiTemplate(string title, string image, LayoutControlDescription[] layoutControls)
 {
     this.CreateTemplate("SemanticUI", "default", title, image, layoutControls);
 }
예제 #3
0
        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);
                }
            }
        }
예제 #4
0
 private void CreateFoundationTemplate(string title, string image, LayoutControlDescription[] layoutControls)
 {
     this.CreateTemplate("Foundation", "default", title, image, layoutControls);
 }
예제 #5
0
 private void CreateBootstrapTemplate(string title, string image, LayoutControlDescription[] layoutControls)
 {
     this.CreateTemplate("Bootstrap", "default", title, image, layoutControls);
 }
예제 #6
0
        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);
            }
        }
예제 #7
0
        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 });
        }
예제 #8
0
        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 });
        }