private void RenderBreadCrumb(System.Web.UI.HtmlTextWriter writer, ContexteBreadCrumbItem it) { RenderSeparator(writer); writer.Write("<li ><a href='"); writer.Write(ResolveUrl(it.Url)); writer.Write("' >"); writer.Write(Page.Server.HtmlEncode(it.Label)); writer.Write("</a></li>"); nbRendered++; }
/// <summary> /// Effectue l'affichage du contrôle /// </summary> /// <param name="writer"></param> protected override void Render(System.Web.UI.HtmlTextWriter writer) { nbRendered = 0; writer.Write("<ul"); if (!string.IsNullOrEmpty(CssClass)) { writer.Write(" class='"); writer.Write(CssClass); writer.Write("'"); } if (Style != null && Style.Count > 0) { writer.Write(" style='"); writer.Write(Style); writer.Write("'"); } writer.Write(">"); ECommercePage pg = Page as ECommercePage; ContexteBreadCrumbItem[] cur = new ContexteBreadCrumbItem[0]; if (pg != null) { cur = pg.GetBreadCrumb(); } if (cur.Length == 0 || (cur.Length == 1 && string.IsNullOrEmpty(cur[0].Label))) { if (UsePageTitleIfEmpty && pg != null && !string.IsNullOrEmpty(pg.PageName)) { if (!string.IsNullOrEmpty(Header)) { RenderHeader(writer); } if (pg != null && pg.TypePage != ECommercePageType.HomePage) { RenderHomeLink(writer, true); } RenderNonClickable(writer, pg.PageName, null); } } else { if (!string.IsNullOrEmpty(Header)) { RenderHeader(writer); } if (pg != null && pg.TypePage != ECommercePageType.HomePage) { RenderHomeLink(writer, true); } for (int i = 0; i < (cur.Length - 1); i++) { RenderBreadCrumb(writer, cur[i]); } if (cur.Length > 0) { RenderNonClickable(writer, cur[cur.Length - 1].Label, cur[cur.Length - 1].Url); } } writer.Write("</ul>"); }
/// <summary> /// Effectue le rendu du controle /// </summary> /// <param name="writer"></param> protected override void Render(System.Web.UI.HtmlTextWriter writer) { ECommercePage pg = Page as ECommercePage; ContexteProvider prv = ECommerceServer.Contexte; writer.Write("<script type='application/ld+json'>{ \"@context\": \"http://schema.org\", \"@type\": \"BreadcrumbList\","); writer.Write("\"itemListElement\": "); List <ContexteBreadCrumbItem> cur = new List <ContexteBreadCrumbItem>(pg.GetBreadCrumb()); List <BreadCrumbItemJson> items = new List <BreadCrumbItemJson>(); if (cur.Count == 1 && string.IsNullOrEmpty(cur[0].Label)) { if (!string.IsNullOrEmpty(pg.PageName)) { var j = cur[0]; j.Url = Page.Request.RawUrl; j.Label = pg.PageName; } } else if (cur.Count == 0) { if (!string.IsNullOrEmpty(pg.PageName)) { var j = new ContexteBreadCrumbItem() { Url = Page.Request.RawUrl, Label = pg.PageName }; cur.Add(j); } } var it = new BreadCrumbItemJson() { type = "ListItem", position = items.Count + 1, item = new Item() { id = ECommerceServer.CurrentSite.UrlPrincipale, name = "Accueil", } }; items.Add(it); foreach (var c in cur) { it = new BreadCrumbItemJson() { type = "ListItem", position = items.Count + 1, item = new Item() { id = ResolveUrl(c.Url), name = c.Label } }; if (it.item.id.StartsWith("/")) { it.item.id = ECommerceServer.CurrentSite.UrlPrincipale + it.item.id.Substring(1); } items.Add(it); } string s = CPointSoftware.Equihira.Business.Common.JsonHelper.Serialize(items); writer.Write(s); writer.Write("}</script>"); }