コード例 #1
0
        private Guid CreateTemplateWithControl(PageTemplateFramework framework)
        {
            Guid pageTemplateId = Guid.Empty;

            var templatesOperations = Telerik.Sitefinity.TestUtilities.CommonOperations.ServerOperations.Templates();

            if (framework == PageTemplateFramework.Hybrid)
            {
                pageTemplateId = templatesOperations.CreateHybridMVCPageTemplate(ModuleUnloadTests.PageTemplateTitle + Guid.NewGuid().ToString());
            }
            else if (framework == PageTemplateFramework.Mvc)
            {
                pageTemplateId = templatesOperations.CreatePureMVCPageTemplate(ModuleUnloadTests.PageTemplateTitle + Guid.NewGuid().ToString());
            }

            var mvcProxy = new MvcControllerProxy();

            mvcProxy.ControllerName = typeof(ContentBlockController).FullName;

            var contentBlockController = new ContentBlockController();

            contentBlockController.Content = ModuleUnloadTests.PageControlContent;
            mvcProxy.Settings = new ControllerSettings(contentBlockController);

            templatesOperations.AddControlToTemplate(pageTemplateId, mvcProxy, "Body", "ContentBlockCaption");

            return(pageTemplateId);
        }
コード例 #2
0
        private Guid CreateTemplateWithWidgetAndBasePageOnIt(PageTemplateFramework framework, Controller widgetController, out Guid pageId, out string pageUrl)
        {
            var pageManager = PageManager.GetManager();

            // Create template
            var templateId = framework == PageTemplateFramework.Hybrid ?
                             ServerOperations.Templates().CreateHybridMVCPageTemplate(FrontendModuleFilterTests.TemplateTitle + Guid.NewGuid().ToString("N")) :
                             ServerOperations.Templates().CreatePureMVCPageTemplate(FrontendModuleFilterTests.TemplateTitle + Guid.NewGuid().ToString("N"));

            // Place widget on template
            var mvcProxy = new MvcControllerProxy();

            mvcProxy.ControllerName = widgetController.GetType().FullName;
            mvcProxy.Settings       = new ControllerSettings(widgetController);
            SampleUtilities.AddControlToTemplate(templateId, mvcProxy, "Body", "FrontendModuleFilterTestsWidgetCaption");

            // Create page with template
            var template = pageManager.GetTemplates().Where(t => t.Id == templateId).SingleOrDefault();

            pageId = FeatherServerOperations.Pages().CreatePageWithTemplate(template, "TestPageName", "test-page-url");
            var page = pageManager.GetPageNode(pageId);

            pageUrl = RouteHelper.GetAbsoluteUrl(page.GetFullUrl());

            return(templateId);
        }
コード例 #3
0
ファイル: FrontendModule.cs プロジェクト: Sschlenker/feather
        private static PageTemplateFramework ExtractFramework()
        {
            var contextItems = SystemManager.CurrentHttpContext.Items;
            PageTemplateFramework framework = (PageTemplateFramework)contextItems["PageTemplateFramework"];

            return(framework);
        }
コード例 #4
0
ファイル: ModuleUnloadTests.cs プロジェクト: vmilev/feather
        private void AddGridToPageTemplate(Guid pageTemplateId, PageTemplateFramework framework, string gridVirtualPath = ModuleUnloadTests.GridVirtualPath)
        {
            var placeholder = framework == PageTemplateFramework.Hybrid ? "Body" : "Contentplaceholder1";
            var control     = new GridControl()
            {
                Layout = gridVirtualPath
            };

            SampleUtilities.AddControlToTemplate(pageTemplateId, control, placeholder, "9 + 3");
        }
コード例 #5
0
        private Guid CreatePageWithControl(PageTemplateFramework framework, out string pageUrl)
        {
            var pageId = this.CreatePage(framework, out pageUrl);

            var mvcProxy = new MvcControllerProxy();

            mvcProxy.ControllerName = typeof(ContentBlockController).FullName;

            var contentBlockController = new ContentBlockController();

            contentBlockController.Content = ModuleUnloadTests.PageControlContent;
            mvcProxy.Settings = new ControllerSettings(contentBlockController);

            PageContentGenerator.AddControlsToPage(pageId, new Control[] { mvcProxy }, framework == PageTemplateFramework.Mvc ? "Contentplaceholder1" : "Body");

            return(pageId);
        }
コード例 #6
0
        private Guid CreatePageWithWidget(PageTemplateFramework framework, Controller widgetController, out string pageUrl)
        {
            Guid pageId = Guid.Empty;

            pageUrl = string.Empty;
            var suffix = Guid.NewGuid().ToString("N");

            if (framework == PageTemplateFramework.Hybrid)
            {
                var namePrefix  = "TestPageName";
                var titlePrefix = "TestPageTitle";
                var urlPrefix   = "test-page-url";
                var index       = 1;

                pageId = new PageContentGenerator().CreatePage(
                    string.Format(CultureInfo.InvariantCulture, "{0}{1}", namePrefix + suffix, index.ToString(CultureInfo.InvariantCulture)),
                    string.Format(CultureInfo.InvariantCulture, "{0}{1}", titlePrefix + suffix, index.ToString(CultureInfo.InvariantCulture)),
                    string.Format(CultureInfo.InvariantCulture, "{0}{1}", urlPrefix + suffix, index.ToString(CultureInfo.InvariantCulture)));

                pageUrl = UrlPath.ResolveAbsoluteUrl("~/" + urlPrefix + suffix + index);
            }
            else if (framework == PageTemplateFramework.Mvc)
            {
                var pagesOperations = FeatherServerOperations.Pages();
                var pageManager     = PageManager.GetManager();

                var bootstrapTemplate = pageManager.GetTemplates().FirstOrDefault(t => (t.Name == "Bootstrap.default" && t.Title == "default") || t.Title == "Bootstrap.default");
                if (bootstrapTemplate == null)
                {
                    throw new ArgumentException("Bootstrap template not found");
                }

                pageId  = pagesOperations.CreatePageWithTemplate(bootstrapTemplate, "FormsPageBootstrap" + suffix, "forms-page-bootstrap" + suffix);
                pageUrl = RouteHelper.GetAbsoluteUrl(pageManager.GetPageNode(pageId).GetFullUrl());
            }

            var placeholder = framework == PageTemplateFramework.Hybrid ? "Body" : "Contentplaceholder1";

            FeatherServerOperations.Pages().AddMvcWidgetToPage(pageId, widgetController.GetType().FullName, "FrontendModuleFilterTestsWidgetCaption", placeholder);

            return(pageId);
        }
コード例 #7
0
        private Guid CreatePage(PageTemplateFramework framework, out string pageUrl)
        {
            Guid pageId = Guid.Empty;

            pageUrl = string.Empty;
            var suffix = Guid.NewGuid().ToString("N");

            if (framework == PageTemplateFramework.Hybrid)
            {
                var namePrefix     = "TestPageName";
                var titlePrefix    = "TestPageTitle";
                var urlPrefix      = "test-page-url";
                var index          = 1;
                var pageOperations = new FeatherWidgets.TestUtilities.CommonOperations.PagesOperations();
                var mvcProxy       = new MvcControllerProxy()
                {
                    ControllerName = typeof(ContentBlockController).FullName, Settings = new ControllerSettings(new ContentBlockController())
                };
                pageId  = pageOperations.CreatePageWithControl(mvcProxy, namePrefix + suffix, titlePrefix + suffix, urlPrefix + suffix, index);
                pageUrl = UrlPath.ResolveAbsoluteUrl("~/" + urlPrefix + suffix + index);
            }
            else if (framework == PageTemplateFramework.Mvc)
            {
                var pagesOperations = Telerik.Sitefinity.Frontend.TestUtilities.CommonOperations.FeatherServerOperations.Pages();
                var pageManager     = PageManager.GetManager();

                var bootstrapTemplate = pageManager.GetTemplates().FirstOrDefault(t => (t.Name == "Bootstrap.default" && t.Title == "default") || t.Title == "Bootstrap.default");
                if (bootstrapTemplate == null)
                {
                    throw new ArgumentException("Bootstrap template not found");
                }

                pageId  = pagesOperations.CreatePageWithTemplate(bootstrapTemplate, "FeatherTestPageBootstrap" + suffix, "feather-test-page-bootstrap" + suffix);
                pageUrl = RouteHelper.GetAbsoluteUrl(pageManager.GetPageNode(pageId).GetFullUrl());
            }

            return(pageId);
        }
コード例 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DummyFrameworkSpecificPageTemplate"/> class.
 /// </summary>
 /// <param name="framework">The framework.</param>
 public DummyFrameworkSpecificPageTemplate(PageTemplateFramework framework)
 {
     this.Framework = framework;
 }
コード例 #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DummyFrameworkSpecificPageTemplate"/> class.
 /// </summary>
 /// <param name="framework">The framework.</param>
 public DummyFrameworkSpecificPageTemplate(PageTemplateFramework framework)
 {
     this.Framework = framework;
 }
コード例 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DummyPageTemplateWithTitle"/> class.
 /// </summary>
 /// <param name="framework">The framework.</param>
 /// <param name="title">The title.</param>
 public DummyPageTemplateWithTitle(PageTemplateFramework framework, string title)
 {
     this.Framework = framework;
     this.Title = title;
 }
コード例 #11
0
ファイル: ConfigHelper.cs プロジェクト: tvarshney/Babaganoush
        /// <summary>
        /// Registers the template. Modified from: Telerik.Sitefinity.Samples.Common.SampleUtilities.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="title">The title.</param>
        /// <param name="masterPage">The master page.</param>
        /// <param name="theme">The theme.</param>
        /// <param name="framework">(Optional) The page template framework.</param>
        /// <returns>
        /// true if it succeeds, false if it fails.
        /// </returns>
        public static bool RegisterTemplate(string name, string title, string masterPage, string theme, PageTemplateFramework framework = PageTemplateFramework.Hybrid)
        {
            bool result = false;

            var pageManager = PageManager.GetManager();

            using (new ElevatedModeRegion(pageManager))
            {
                var template = pageManager.GetTemplates().Where(t => t.Name == name).SingleOrDefault();

                //TODO: REPLACE TRY/CATCH WITH BETTER VALIDATIONS AND ERROR HANDLING BELOW
                try
                {
                    //DEFAULT CULTURE TO ONE IN USE IN BACKEND
                    //http://mejsullivan.wordpress.com/2012/08/19/sitefinity-5-1-en-us-culture-error-updating-dynamic-content/
                    var culture = new CultureInfo(Config.Get <ResourcesConfig>().DefaultBackendCulture.UICulture);

                    if (template == null)
                    {
                        var pageTemplate = pageManager.CreateTemplate();

                        pageTemplate.Name       = name;
                        pageTemplate.MasterPage = masterPage;
                        pageTemplate.Category   = SiteInitializer.CustomTemplatesCategoryId;
                        pageTemplate.Framework  = framework;

                        pageTemplate.Title[culture] = title;

                        var master = pageManager.EditTemplate(pageTemplate.Id, culture);
                        var temp   = pageManager.TemplatesLifecycle.CheckOut(master, culture);
                        master = pageManager.TemplatesLifecycle.CheckIn(temp, culture);
                        // set the theme for the particular language version of the template
                        master.Themes.SetString(culture, theme);
                        master.ApprovalWorkflowState.Value = ApprovalWorkflowState.Published;
                        pageManager.TemplatesLifecycle.Publish(master, culture);

                        pageManager.SaveChanges();
                        result = true;
                    }
                    else
                    {
                        if (!template.AvailableCultures.Contains(culture))
                        {
                            template.Title[culture] = title;

                            var master = pageManager.EditTemplate(template.Id, culture);
                            var temp   = pageManager.TemplatesLifecycle.CheckOut(master, culture);
                            master = pageManager.TemplatesLifecycle.CheckIn(temp, culture);
                            master.Themes.SetString(culture, theme);
                            master.ApprovalWorkflowState.Value = ApprovalWorkflowState.Published;
                            pageManager.TemplatesLifecycle.Publish(master, culture);

                            pageManager.SaveChanges();
                            result = true;
                        }
                    }
                }
                catch (Exception)
                {
                    //TODO: USE ELMAH TO LOG ERRORS AND NOTIFY
                }
            }
            return(result);
        }
コード例 #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DummyPageTemplateWithTitle"/> class.
 /// </summary>
 /// <param name="framework">
 /// The framework.
 /// </param>
 /// <param name="title">
 /// The title.
 /// </param>
 public DummyPageTemplateWithTitle(PageTemplateFramework framework, string title)
 {
     this.Framework = framework;
     this.Title     = title;
 }