private static IEnumerable <IHtmlString> IncludeModulesScripts(this IFrontHtmlHelper frontHtml, bool compressed, string baseUri = null)
        {
            //var site = frontHtml.Page_Context.PageRequestContext.Site;
            //if (frontHtml.Page_Context.PageRequestContext.Page.EnableScript)
            //{
            //    if (frontHtml.Page_Context.ModuleResults != null)
            //    {

            //        foreach (ModuleActionInvokedContext actionInvoked in PageContext.ModuleResults.Values)
            //        {
            //            var moduleRequestContext = (ModuleRequestContext)actionInvoked.ControllerContext.RequestContext;
            //            if (moduleRequestContext.ModuleContext.FrontEndContext.EnableScript)
            //            {
            //                var scripts = ServiceFactory.ModuleManager.AllScripts(moduleRequestContext.ModuleContext.ModuleName);
            //                if (site.Mode == ReleaseMode.Debug)
            //                {
            //                    foreach (var script in scripts)
            //                    {
            //                        yield return this.Html.Script(UrlUtility.ToHttpAbsolute(baseUri, script.VirtualPath));
            //                    }
            //                }
            //                else if (scripts.Count() > 0)
            //                {
            //                    yield return this.Html.Script(this.PageContext.FrontUrl.ModuleScriptsUrl(moduleRequestContext.ModuleContext.ModuleName, baseUri, compressed).ToString());
            //                }
            //            }

            //        }
            //    }
            //}

            return(new IHtmlString[0]);
        }
        public static IHtmlString Meta(this IFrontHtmlHelper frontHtml)
        {
            AggregateHtmlString htmlStrings = new AggregateHtmlString();
            var htmlMeta = frontHtml.Page_Context.HtmlMeta;

            if (htmlMeta != null)
            {
                if (!string.IsNullOrEmpty(htmlMeta.Canonical))
                {
                    htmlStrings.Add(new HtmlString(string.Format("<link rel=\"canonical\" href=\"{0}\"/>", htmlMeta.Canonical.StripAllTags())));
                }
                if (!string.IsNullOrEmpty(htmlMeta.Author))
                {
                    htmlStrings.Add(BuildMeta("author", htmlMeta.Author));
                }

                if (!string.IsNullOrEmpty(htmlMeta.Description))
                {
                    htmlStrings.Add(BuildMeta("description", htmlMeta.Description));
                }

                if (!string.IsNullOrEmpty(htmlMeta.Keywords))
                {
                    htmlStrings.Add(BuildMeta("keywords", htmlMeta.Keywords));
                }
                if (htmlMeta.Customs != null)
                {
                    foreach (var item in htmlMeta.Customs)
                    {
                        htmlStrings.Add(BuildMeta(item.Key, item.Value));
                    }
                }
            }
            return(htmlStrings);
        }
Example #3
0
        public static IHtmlString LoadAbsoluteStyles(this IFrontHtmlHelper frontHtml, string baseUri, string themeName)
        {
            IEnumerable <IHtmlString> styles = new IHtmlString[0];
            var key = "___RegisteredSystemStyles____";

            if (frontHtml.Html.ViewContext.HttpContext.Items[key] == null)
            {
                styles = styles
                         //.Concat(this.IncludeModuleThemeStyles(baseUri))
                         //.Concat(this.IncludeInlineEditingStyles(baseUri))
                         //.Concat(this.IncludeStyleEditingStyles(baseUri))
                         .Distinct(new IHtmlStringComparer());


                //if (this.PageContext.PageRequestContext.Site.EnableJquery)
                //{
                //    styles = styles.Concat(new[] { Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, null, "jQuery-Styles", null, baseUri) });
                //}
                styles = styles.Concat(frontHtml.Page_Context.Styles);
                frontHtml.Html.ViewContext.HttpContext.Items[key] = new object();
            }

            styles = styles.Concat(IncludeThemeStyles(frontHtml, themeName, baseUri));

            return(new AggregateHtmlString(styles));
        }
 /// <summary>
 /// Registers the absolute scripts.
 /// </summary>
 /// <param name="baseUri">The base URI.</param>
 /// <param name="compressed">if set to <c>true</c> [compressed].</param>
 /// <returns></returns>
 public static IHtmlString LoadAbsoluteScripts(this IFrontHtmlHelper frontHtml, string baseUri, bool compressed)
 {
     return(new AggregateHtmlString(IncludeInlineEditingScripts(frontHtml, baseUri)
                                    //.Concat(IncludeStyleEditingScripts(frontHtml, baseUri))
                                    //.Concat(IncludeModulesScripts(frontHtml, compressed, baseUri))
                                    .Concat(IncludeSiteScripts(frontHtml, compressed, baseUri))
                                    .Concat(frontHtml.Page_Context.Scripts)
                                    .Distinct(new IHtmlStringComparer())));
 }
Example #5
0
        private static IHtmlString RenderPageContent(IFrontHtmlHelper htmlHelper, IPageContent pageContent)
        {
            var renderer = ResolvePageContentRenderer(pageContent);

            if (renderer != null)
            {
                return renderer.Render(htmlHelper, pageContent);
            }
            return null;
        }
        /// <summary>
        /// HTMLs the title.
        /// </summary>
        /// <param name="defaultTitle">The HTML title.</param>
        /// <returns></returns>
        public static IHtmlString HtmlTitle(this IFrontHtmlHelper frontHtml, string defaultTitle)
        {
            var title = string.IsNullOrEmpty(frontHtml.Page_Context.HtmlMeta.HtmlTitle) ? defaultTitle : frontHtml.Page_Context.HtmlMeta.HtmlTitle;

            if (!string.IsNullOrEmpty(title))
            {
                return(new HtmlString(string.Format("<title>{0}</title>", title.StripAllTags())));
            }
            return(new HtmlString(""));
        }
Example #7
0
        private static IHtmlString RenderPageContent(IFrontHtmlHelper htmlHelper, IPageContent pageContent)
        {
            var renderer = ResolvePageContentRenderer(pageContent);

            if (renderer != null)
            {
                return(renderer.Render(htmlHelper, pageContent));
            }
            return(null);
        }
Example #8
0
            internal CmsPagerBuilder(IFrontHtmlHelper html, IPagedList pageList,
                PagerOptions pagerOptions, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes)
                : base(html.Html, null, null, pageList, pagerOptions, null, routeValues, htmlAttributes)
            {
                frontHtml = html;
                this.routeValues = routeValues ?? new RouteValueDictionary();

                _pageList = pageList;
                this._pagerOptions = pagerOptions;
            }
Example #9
0
        //private IEnumerable<IHtmlString> IncludeInlineEditingStyles(string baseUri = null)
        //{
        //    if (PageContext.PageRequestContext.RequestChannel != FrontRequestChannel.Design)
        //    {
        //        if (PageContext.InlineEditing)
        //        {
        //            //Inline editing的脚本样式不能用CDN
        //            yield return Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, "Sites", "inlineEditingCss", null, null);
        //        }
        //    }
        //}

        //private IEnumerable<IHtmlString> IncludeStyleEditingStyles(string baseUri = null)
        //{
        //    if (PageContext.PageRequestContext.RequestChannel != FrontRequestChannel.Design)
        //    {
        //        if (PageContext.StyleEditing)
        //        {
        //            //Inline editing的脚本样式不能用CDN
        //            yield return Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, "Sites", "styleEditingFrontCss", null, null);
        //        }
        //    }
        //}

        private static IEnumerable <IHtmlString> IncludeThemeStyles(IFrontHtmlHelper frontHtml, string themeName, string baseUri = null)
        {
            var site = frontHtml.Page_Context.PageRequestContext.Site;

            if (!string.IsNullOrEmpty(themeName))
            {
                return(IncludeThemeStyles(site, themeName, baseUri));
            }
            return(new IHtmlString[0]);
        }
Example #10
0
 public static bool IsEmptyHolder(this IFrontHtmlHelper frontHtmlHelper, string id)
 {
     if (frontHtmlHelper.Page_Context.PageRequestContext.SiteMappedContext.RequestChannel == FrontRequestChannel.Design)
     {
         return(false);
     }
     else
     {
         return(GetPageContents(frontHtmlHelper, id).Length == 0);
     }
 }
Example #11
0
            internal CmsPagerBuilder(IFrontHtmlHelper html, IPagedList pageList,
                                     PagerOptions pagerOptions, RouteValueDictionary routeValues, IDictionary <string, object> htmlAttributes)
                : base(html.Html, null, null, pageList, pagerOptions, null, routeValues, htmlAttributes)
            {
                frontHtml        = html;
                this.routeValues = routeValues ?? new RouteValueDictionary();


                _pageList          = pageList;
                this._pagerOptions = pagerOptions;
            }
        private static IEnumerable <IHtmlString> IncludeInlineEditingScripts(this IFrontHtmlHelper frontHtml, string baseUri = null)
        {
            //if (PageContext.PageRequestContext.RequestChannel != FrontRequestChannel.Design)
            //{
            //    if (PageContext.InlineEditing)
            //    {
            //        yield return InlineEditingVariablesScript();
            //        yield return this.Html.Script("~/Scripts/tiny_mce/tinymce.min.js");
            //        //Inline editing的脚本样式不能用CDN
            //        yield return Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, "Sites", "inlineEditingJs", null, null);
            //    }
            //}

            return(new IHtmlString[0]);
        }
        //private static IHtmlString InlineEditingVariablesScript(this IFrontHtmlHelper frontHtml)
        //{
        //    var repository = PageContext.PageRequestContext.Site.GetRepository().AsActual();
        //    return this.Html.Script(PageContext.Url.Action("Variables"
        //            , new
        //            {
        //                controller = "InlineEditing",
        //                repositoryName = repository == null ? "" : repository.Name,
        //                siteName = PageContext.PageRequestContext.Site.FullName,
        //                pageName = PageContext.PageRequestContext.Page.FullName,
        //                area = "Sites",
        //                _draft_ = PageContext.ControllerContext.RequestContext.GetRequestValue("_draft_")
        //            }));
        //}

        //private IEnumerable<IHtmlString> IncludeStyleEditingScripts(string baseUri = null)
        //{
        //    if (PageContext.PageRequestContext.RequestChannel != FrontRequestChannel.Design)
        //    {
        //        if (PageContext.StyleEditing)
        //        {
        //            yield return this.StyleEditingVariablesScript();
        //            //Inline editing的脚本样式不能用CDN
        //            yield return Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, "Sites", "styleEditingFrontJs", null, null);
        //        }
        //    }
        //}

        //private IHtmlString StyleEditingVariablesScript()
        //{
        //    var repository = PageContext.PageRequestContext.Site.GetRepository().AsActual();
        //    return this.Html.Script(PageContext.Url.Action("FrontVariables", new
        //    {
        //        controller = "StyleEditing",
        //        repositoryName = repository == null ? "" : repository.Name,
        //        siteName = PageContext.PageRequestContext.Site.FullName,
        //        pageName = PageContext.PageRequestContext.Page.FullName,
        //        area = "Sites",
        //        _draft_ = PageContext.ControllerContext.RequestContext.GetRequestValue("_draft_")
        //    }));
        //}

        private static IEnumerable <IHtmlString> IncludeSiteScripts(this IFrontHtmlHelper frontHtml, bool compressed, string baseUrl = null)
        {
            var site = frontHtml.Page_Context.PageRequestContext.Site;
            List <IHtmlString> scripts = new List <IHtmlString>();

            if (frontHtml.Page_Context.PageRequestContext.Page.EnableScript)
            {
                //if (frontHtml.Page_Context.PageRequestContext.Site.EnableJquery)
                //{
                //    scripts.Add(Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, null, "jQuery", null, baseUrl));
                //}
                scripts.AddRange(GetScriptsBySite(site, "", compressed, baseUrl));
            }
            return(scripts);
        }
Example #14
0
        public static IHtmlString ViewLink(this IFrontHtmlHelper frontHtmlHelper, object linkText, string viewName, object routeValues, object htmlAttributes)
        {
            var htmlValues = RouteValuesHelper.GetRouteValues(htmlAttributes);

            string url = frontHtmlHelper.Page_Context.FrontUrl.ViewUrl(viewName, routeValues).ToString();


            TagBuilder builder = new TagBuilder("a")
            {
                InnerHtml = linkText != null?HttpUtility.HtmlEncode(linkText) : string.Empty
            };

            builder.MergeAttributes <string, object>(htmlValues);
            builder.MergeAttribute("href", url);
            var html = new HtmlString(builder.ToString(TagRenderMode.Normal));

            return(html);
        }
Example #15
0
 public static IHtmlString PlaceHolder(this IFrontHtmlHelper frontHtmlHelper, string id, Func <string> defaultContentFunc)
 {
     if (frontHtmlHelper.Page_Context.PageRequestContext.SiteMappedContext.RequestChannel == FrontRequestChannel.Design)
     {
         //render designer code
         return(new HtmlString("todo: render the desinger code"));
     }
     else
     {
         var positions = GetContents(frontHtmlHelper.Page_Context.PageRequestContext.Page, id);
         if (positions.Length == 0)
         {
             defaultContentFunc = defaultContentFunc == null ? () => "" : defaultContentFunc;
             return(new HtmlString(defaultContentFunc()));
         }
         else
         {
             var htmlStrings = RenderPositionContents(frontHtmlHelper, positions).ToArray();
             return(new AggregateHtmlString(htmlStrings));
         }
     }
 }
Example #16
0
        //Optional parameter does not support NVelocity
        public static IHtmlString Pager(this IFrontHtmlHelper frontHtml, object model, object routeValues, PagerOptions options, object htmlAttributes)
        {
            options = options ?? new PagerOptions();

            //if ((model is DataRulePagedList))
            //{
            //    options.PageIndexParameterName = ((DataRulePagedList)model).PageIndexParameterName;
            //}

            var pagedList = (IPagedList)model;

            var builder = new CmsPagerBuilder
                          (
                frontHtml,
                pagedList,
                options,
                RouteValuesHelper.GetRouteValues(routeValues),
                RouteValuesHelper.GetRouteValues(htmlAttributes)
                          );

            return(new HtmlString(builder.RenderPager().ToString()));
        }
Example #17
0
        public static IHtmlString PageLink(this IFrontHtmlHelper frontHtml, object linkText, string urlKey, object routeValues, object htmlAttributes)
        {
            var  htmlValues = RouteValuesHelper.GetRouteValues(htmlAttributes);
            Page page;

            string url = frontHtml.Page_Context.FrontUrl.PageUrl(urlKey, routeValues, out page).ToString();

            var innerHtml = "";

            if (linkText == null)
            {
                innerHtml = page.GetLinkText();
            }
            else
            {
                innerHtml = HttpUtility.HtmlEncode(linkText);
            }
            TagBuilder builder = new TagBuilder("a")
            {
                InnerHtml = innerHtml
            };

            builder.MergeAttributes <string, object>(htmlValues);
            builder.MergeAttribute("href", url);
            //if (page != null && page.Route != null)
            //{
            //    builder.MergeAttribute("target", page.Route.LinkTarget.ToString());
            //}
            var html = new HtmlString(builder.ToString(TagRenderMode.Normal));

#if Page_Trace
            stopwatch.Stop();
            HttpContext.Current.Response.Write(string.Format("PageLink,{0}.</br>", stopwatch.Elapsed));
#endif
            return(html);
        }
 /// <summary>
 /// Registers the absolute scripts.
 /// </summary>
 /// <param name="baseUri">The base URI.</param>
 /// <returns></returns>
 public static IHtmlString LoadAbsoluteScripts(this IFrontHtmlHelper frontHtml, string baseUri)
 {
     return(LoadAbsoluteScripts(frontHtml, baseUri, true));
 }
Example #19
0
 public static IHtmlString ViewLink(this IFrontHtmlHelper frontHtmlHelper, object linkText, string viewName, object routeValues)
 {
     return(ViewLink(frontHtmlHelper, linkText, viewName, routeValues, null));
 }
Example #20
0
 //private IEnumerable<IHtmlString> IncludeInlineEditingStyles(string baseUri = null)
 //{
 //    if (PageContext.PageRequestContext.RequestChannel != FrontRequestChannel.Design)
 //    {
 //        if (PageContext.InlineEditing)
 //        {
 //            //Inline editing的脚本样式不能用CDN
 //            yield return Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, "Sites", "inlineEditingCss", null, null);
 //        }
 //    }
 //}
 //private IEnumerable<IHtmlString> IncludeStyleEditingStyles(string baseUri = null)
 //{
 //    if (PageContext.PageRequestContext.RequestChannel != FrontRequestChannel.Design)
 //    {
 //        if (PageContext.StyleEditing)
 //        {
 //            //Inline editing的脚本样式不能用CDN
 //            yield return Kooboo.Common.Web.WebResourceLoader.MvcExtensions.ExternalResources(this.Html, "Sites", "styleEditingFrontCss", null, null);
 //        }
 //    }
 //}
 private static IEnumerable<IHtmlString> IncludeThemeStyles(IFrontHtmlHelper frontHtml, string themeName, string baseUri = null)
 {
     var site = frontHtml.Page_Context.PageRequestContext.Site;
     if (!string.IsNullOrEmpty(themeName))
     {
         return IncludeThemeStyles(site, themeName, baseUri);
     }
     return new IHtmlString[0];
 }
Example #21
0
 public static IHtmlString LoadAbsoluteStyles(this IFrontHtmlHelper frontHtml, string baseUri)
 {
     return(LoadAbsoluteStyles(frontHtml, baseUri, frontHtml.Page_Context.PageTheme));
 }
Example #22
0
 /// <summary>
 /// Registers the styles.
 /// </summary>
 /// <returns></returns>
 public static IHtmlString LoadStyles(this IFrontHtmlHelper frontHtml)
 {
     return(LoadStyles(frontHtml, frontHtml.Page_Context.PageTheme));
 }
Example #23
0
 public static IHtmlString Pager(this IFrontHtmlHelper frontHtml, object model, PagerOptions options)
 {
     return(Pager(frontHtml, model, null, options, null));
 }
Example #24
0
 private static IEnumerable<IHtmlString> RenderPositionContents(IFrontHtmlHelper htmlHelper, IEnumerable<IPageContent> pageContents)
 {
     return pageContents.Select(it => RenderPageContent(htmlHelper, it)).Where(it => it != null);
 }
Example #25
0
 public static IHtmlString PageLink(this IFrontHtmlHelper frontHtml, string urlKey)
 {
     return(PageLink(frontHtml, null, urlKey));
 }
 public static IHtmlString ResizeImage(this IFrontHtmlHelper frontHtml, string imagePath, int width, int height, bool?preserverAspectRatio, int?quality, string alt)
 {
     return(new HtmlString(string.Format("<img src=\"{0}\" alt=\"{1}\" />"
                                         , frontHtml.Page_Context.FrontUrl.ResizeImageUrl(imagePath, width, height, preserverAspectRatio, quality)
                                         , alt)));
 }
 public static IHtmlString ResizeImage(this IFrontHtmlHelper frontHtml, string imagePath, int width, int height, string alt)
 {
     return(ResizeImage(frontHtml, imagePath, width, height, null, null, alt));
 }
 /// <summary>
 /// Registers the scripts.
 /// </summary>
 /// <param name="compressed">if set to <c>true</c> [compressed].</param>
 /// <returns></returns>
 public static IHtmlString LoadScripts(this IFrontHtmlHelper frontHtml, bool compressed)
 {
     return(LoadAbsoluteScripts(frontHtml, frontHtml.Page_Context.PageRequestContext.Site.ResourceDomain, compressed));
 }
Example #29
0
        private static IPageContent[] GetPageContents(IFrontHtmlHelper frontHtmlHelper, string id)
        {
            var pageContents = (frontHtmlHelper.Page_Context.PageRequestContext.Page.PageContents ?? new IPageContent[0]).Where(it => it.PlaceHolderId.Equals(id, StringComparison.InvariantCultureIgnoreCase)).ToArray();

            return(pageContents);
        }
Example #30
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="style"></param>
 /// <param name="media"></param>
 public static void IncludeStylesheet(this IFrontHtmlHelper frontHtml, string style, string media)
 {
     frontHtml.Page_Context.Styles.Add(frontHtml.Html.Stylesheet(style, media));
 }
Example #31
0
 private static IEnumerable <IHtmlString> RenderPositionContents(IFrontHtmlHelper htmlHelper, IEnumerable <IPageContent> pageContents)
 {
     return(pageContents.Select(it => RenderPageContent(htmlHelper, it)).Where(it => it != null));
 }
Example #32
0
 /// <summary>
 /// Registers the styles to the view.
 /// </summary>
 /// <returns></returns>
 public static IHtmlString LoadStyles(this IFrontHtmlHelper frontHtml, string themeName)
 {
     return(LoadAbsoluteStyles(frontHtml, frontHtml.Page_Context.PageRequestContext.Site.ResourceDomain, themeName));
 }
Example #33
0
 /// <summary>
 /// HTMLs the title.
 /// </summary>
 /// <returns></returns>
 public static IHtmlString HtmlTitle(this IFrontHtmlHelper frontHtml)
 {
     return(HtmlTitle(frontHtml, null));
 }
Example #34
0
 private static IPageContent[] GetPageContents(IFrontHtmlHelper frontHtmlHelper, string id)
 {
     var pageContents = (frontHtmlHelper.Page_Context.PageRequestContext.Page.PageContents ?? new IPageContent[0]).Where(it => it.PlaceHolderId.Equals(id, StringComparison.InvariantCultureIgnoreCase)).ToArray();
     return pageContents;
 }
Example #35
0
 public static IHtmlString PageLink(this IFrontHtmlHelper frontHtml, object linkText, string urlKey, object routeValues)
 {
     return(PageLink(frontHtml, linkText, urlKey, routeValues, null));
 }