Product title in breadcrumb

Posted by Community Admin on 05-Aug-2018 19:19

Product title in breadcrumb

All Replies

Posted by Community Admin on 04-May-2016 00:00

I am trying to get product titles to show up in the feather breadcrumb widget following the information in the following two links:

http://www.sitefinity.com/blogs/slavo-ingilizovs-blog/2013/01/24/including-item-titles-in-the-sitefinity-breadcrumb
http://docs.sitefinity.com/tutorial-set-virtual-nodes-in-the-breadcrumb-widget

This is for Sitefinity 8.2 / Feather 1.4.450.0

I have a custom mvc widget that displays master/details for Sitefinity e-commerce products.  These widgets are being used on hybrid pages and I have verified through debugging and successfully adding the canonical url that the page reference is not null.  What else do I need to add into this to register virtual nodes?

The breadcrumb widget has its AllowVirtualNodes property set to true.

 

Below is the code I have in my custom product controller.

public ActionResult Index()
       
           ViewBag.CurrentPageUrl = this.GetCurrentPageUrl();
 
           return View("Default");
       
 
       public ActionResult Details(Product productItem)
       
           var viewModel = service.CreateProductDetailsViewModel(productItem);
           var page = this.HttpContext.CurrentHandler.GetPageHandler();
 
           this.ProductTitle = productItem.Title;
           this.AddCanonicalUrlTagIfEnabled(page, productItem);
           page.RegisterBreadcrumbExtender(this);
 
           return View(viewModel);
       
 
public IEnumerable<SiteMapNode> GetVirtualNodes(SiteMapProvider provider)
       
           return new List<SiteMapNode>() new SiteMapNode(provider, "customBreadcrumbKey", "~/url", this.ProductTitle) ;
       

Posted by Community Admin on 05-May-2016 00:00

Through some help on Google+ (thanks Vesselin) It turns out the issue is that my breadbrumb initializes before the custom controller.  What I have done is to create a new widget to be dropped above the breadcrumb.

 

Here is a working example:

[ControllerToolboxItem(Name = "ProductBreadcrumbExtender", Title = "Product Breadcrumb Extender", SectionName = "MvcWidgets")]
public class ProductBreadcrumbController : Controller, IBreadcrumExtender
    #region Properties
 
    public string ProductTitle get; set;
 
    #endregion
 
    #region Actions
 
    public void Details(Product productItem)
    
        this.ProductTitle = productItem.Title;
        var page = this.HttpContext.CurrentHandler.GetPageHandler();
        page.RegisterBreadcrumbExtender(this);
    
 
    public IEnumerable<SiteMapNode> GetVirtualNodes(SiteMapProvider provider)
    
        return new List<System.Web.SiteMapNode>() new System.Web.SiteMapNode(provider, "customBreadcrumbKey", "~/url", this.ProductTitle) ;
    
 
    #endregion

 

This thread is closed