Exemplo n.º 1
0
        /// <summary>
        /// Creates the page template.
        /// </summary>
        /// <param name="templateTitle">The template title.</param>
        private void CreateTemplate(string templateTitle)
        {
            PageManager pageManager = PageManager.GetManager();

            using (new ElevatedModeRegion(pageManager))
            {
                if (pageManager.GetTemplates().Where(pt => pt.Title.Equals(templateTitle, StringComparison.InvariantCultureIgnoreCase)).Count() == 0)
                {
                    var template = pageManager.CreateTemplate();
                    template.Category  = SiteInitializer.CustomTemplatesCategoryId;
                    template.Name      = templateTitle;
                    template.Title     = templateTitle;
                    template.Framework = Pages.Model.PageTemplateFramework.Mvc;

                    var languageData = pageManager.CreatePublishedInvarianLanguageData();
                    template.LanguageData.Add(languageData);

                    pageManager.SaveChanges();

                    var master = pageManager.TemplatesLifecycle.Edit(template);
                    pageManager.TemplatesLifecycle.Publish(master);
                    pageManager.SaveChanges();
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates the page template.
        /// </summary>
        /// <param name="templateTitle">The template title.</param>
        private void CreateTemplate(string templateTitle)
        {
            PageManager pageManager = PageManager.GetManager();

            using (new Telerik.Sitefinity.Data.ElevatedModeRegion(pageManager))
            {
                if (pageManager.GetTemplates().Where(pt => pt.Title.Equals(templateTitle, StringComparison.InvariantCultureIgnoreCase)).Count() == 0)
                {
                    var template = pageManager.CreateTemplate();
                    // Set the custom template category id.
                    template.Category = Telerik.Sitefinity.Abstractions.SiteInitializer.CustomTemplatesCategoryId;
                    template.Name     = templateTitle;
                    template.Title    = templateTitle;

                    //the template must be using a Pure Mvc Mode
                    template.Framework = Pages.Model.PageTemplateFramework.Mvc;

                    //Publish the template in the invariant culture
                    var languageData = pageManager.CreatePublishedInvarianLanguageData();

                    template.LanguageData.Add(languageData);

                    pageManager.SaveChanges();

                    var master = pageManager.TemplatesLifecycle.Edit(template);

                    pageManager.TemplatesLifecycle.Publish(master);

                    pageManager.SaveChanges();
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates the page template.
        /// </summary>
        /// <param name="templateTitle">The template title.</param>
        private void CreateTemplate(string templateTitle)
        {
            var multisiteContext = SystemManager.CurrentContext as MultisiteContext;
            var prevSite         = SystemManager.CurrentContext.CurrentSite;

            if (multisiteContext != null)
            {
                var id = Config.Get <ProjectConfig>().DefaultSite.Id;
                multisiteContext.ChangeCurrentSite(multisiteContext.GetSiteById(id));
            }

            try
            {
                PageManager pageManager = PageManager.GetManager();
                using (new ElevatedModeRegion(pageManager))
                {
                    if (pageManager.GetTemplates().Where(pt => pt.Title.Equals(templateTitle, StringComparison.InvariantCultureIgnoreCase)).Count() == 0)
                    {
                        var template = pageManager.CreateTemplate();

                        template.Category  = SiteInitializer.CustomTemplatesCategoryId;
                        template.Name      = templateTitle;
                        template.Title     = templateTitle;
                        template.Framework = Pages.Model.PageTemplateFramework.Mvc;
                        template.Theme     = ThemeController.NoThemeName;

                        var languageData = pageManager.CreatePublishedInvarianLanguageData();
                        template.LanguageData.Add(languageData);

                        pageManager.SaveChanges();

                        var master = pageManager.TemplatesLifecycle.Edit(template);
                        pageManager.TemplatesLifecycle.Publish(master);
                        pageManager.SaveChanges();
                    }
                }
            }
            finally
            {
                if (multisiteContext != null)
                {
                    multisiteContext.ChangeCurrentSite(prevSite);
                }
            }
        }
Exemplo n.º 4
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) || string.Compare(pt.Title, fullTemplateName, 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);

                        var master = pageManager.TemplatesLifecycle.Edit(template);
                        pageManager.TemplatesLifecycle.Publish(master);
                        pageManager.SaveChanges();

                        if (string.Equals(LayoutFileManager.BootstrapDefaultTemplateName, fullTemplateName, StringComparison.OrdinalIgnoreCase))
                        {
                            this.CreateDefaultTemplates("Bootstrap", "default");
                        }
                        else if (string.Equals(LayoutFileManager.FoundationDefaultTemplateName, fullTemplateName, StringComparison.OrdinalIgnoreCase))
                        {
                            this.CreateDefaultTemplates("Foundation", "default");
                        }
                        else if (string.Equals(LayoutFileManager.SemanticUIDefaultTemplateName, fullTemplateName, StringComparison.OrdinalIgnoreCase))
                        {
                            this.CreateDefaultTemplates("SemanticUI", "default");
                        }
                    }
                }
            }
            finally
            {
                if (multisiteContext != null)
                {
                    multisiteContext.ChangeCurrentSite(prevSite);
                }
            }
        }