protected override void BuildPageTemplateRecursive(IPageTemplate pageTemplate, string theme, RequestContext context, StringBuilder output, CursorCollection placeHolders, DirectiveCollection directives, List<IControlsContainer> controlConatiners)
        {
            controlConatiners.Add(pageTemplate);

            if (!String.IsNullOrEmpty(pageTemplate.MasterPage))
            {
                this.BuildWithMasterPage(pageTemplate.MasterPage, context, output, placeHolders, directives);
                return;
            }

            if (!String.IsNullOrEmpty(pageTemplate.ExternalPage))
            {
                this.BuildWithExternalPage(pageTemplate.ExternalPage, context, output, placeHolders, directives);
                return;
            }

            if (this.BuildTemplateFromPresentationData(pageTemplate.Presentation, theme, output, placeHolders, directives, context))
                return;

            if (pageTemplate.ParentTemplate != null)
            {
                BuildPageTemplateRecursive(pageTemplate.ParentTemplate, theme, context, output, placeHolders, directives, controlConatiners);
                return;
            }

            var defaultRootTemplate = new RootTemplate();
            defaultRootTemplate.FromString(ControlUtilities.GetSitefinityTextResource(Constants.DefaultFrontendPageTemplate));
            RootTemplate result = this.GetRootTemplate(defaultRootTemplate, context, theme);
            this.ProcessStringTemplate(result.Template, output, placeHolders, directives);
        }
        protected bool BuildTemplateFromPresentationData(IEnumerable<PresentationData> presentation, string theme,
            StringBuilder output, CursorCollection placeHolders, DirectiveCollection directives, RequestContext context)
        {
            RootTemplate result = new RootTemplate();
            foreach (PresentationData item in presentation)
            {
                if (item.DataType == Presentation.HtmlDocument)
                {
                    var key = item.Theme ?? "Default";
                    if (key.Equals(theme, StringComparison.OrdinalIgnoreCase))
                    {
                        result = result.FromString(item.Data);
                        break;
                    }
                    if (string.IsNullOrEmpty(result.Template))
                        result = result.FromString(item.Data);
                }
            }

            result = this.GetRootTemplate(result, context, theme);

            if (!String.IsNullOrEmpty(result.Template))
            {
                this.ProcessStringTemplate(result.Template, output, placeHolders, directives);
                return true;
            }
            return false;
        }
Exemplo n.º 3
0
 public void SetTemplate_WhenFromStringMethodIsCalled()
 {
     var rootTemplate = new RootTemplate();
     rootTemplate.FromString("abc");
     Assert.AreEqual("abc", rootTemplate.Template);
 }
 public RootTemplate ResolveTemplate(RootTemplate rootTemplate, RequestContext requestContext, string theme)
 {
     rootTemplate.FromString("This is test root template");
     return rootTemplate;
 }
Exemplo n.º 5
0
 public void ThrowAnException_WhenFromStringMethodIsCalledAnNullIsPassed()
 {
     var rootTemplate = new RootTemplate();
     try
     {
         rootTemplate.FromString(null);
         Assert.Fail("ArgumentNullException should be thrown.");
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("template", ex.ParamName);
     }
 }