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>");
        }