public override IEnumerable <BreadcrumbRenderingModel> GetBreadcrumbItems(Item currentItem, Item rootItem) { var fakeBreadcrumb = new List <BreadcrumbRenderingModel>(); for (int i = 0; i < 3; i++) { BreadcrumbRenderingModel fakeModel = CreateBreadcrumbModel(null, i, 2, null, $"Tag Level {i}"); fakeBreadcrumb.Add(fakeModel); } return(fakeBreadcrumb); }
public override IRenderingModelBase GetModel() { IEnumerable <BreadcrumbRenderingModel> breadcrumb; Item rootItem = Sitecore.Context.Database.GetItem(Rendering.Parameters[Sitecore.XA.Feature.Navigation.Constants.BreadcrumbRoot] ?? string.Empty); Item commerceRootItem = Sitecore.Context.Database.GetItem(_storefrontContext.CurrentStorefront.GetStartNavigationCategory()); if ((_siteContext.IsCategory || _siteContext.IsProduct) && IsWildCardItem(Sitecore.Context.Item)) { // It's a catalog item so we need to concatenate the ancestors for the catalog with the ancestors on the site itself // we are only doing this when using wild card item navigation, no need to concatenate when using direct catalog navigation breadcrumb = GetBreadcrumbItems(CurrentItem, rootItem) .Concat(GetBreadcrumbItems(_siteContext.CurrentCatalogItem, commerceRootItem)) .Where(a => a.Item.ID != commerceRootItem.ID); } else { breadcrumb = GetBreadcrumbItems(CurrentItem, rootItem); } BreadcrumbRenderingModel model = new BreadcrumbRenderingModel { Separator = Rendering.Parameters[Sitecore.XA.Feature.Navigation.Constants.Separator] }; FillBaseProperties(model); var breadcrumbModels = breadcrumb as BreadcrumbRenderingModel[] ?? breadcrumb.ToArray(); if (!breadcrumbModels.Any()) { var fakeNav = Enumerable.Empty <BreadcrumbRenderingModel>(); if (Sitecore.Context.PageMode.IsExperienceEditor) { fakeNav = new FakeBreadcrumbRepository().GetBreadcrumbItems(null, null); } model.IsFake = true; model.Children = fakeNav; } else { model.Children = breadcrumbModels; } return(model); }