private void LoadTrailForCategory(BreadCrumbViewModel model, CategorySnapshot cat, bool linkAll) { if (cat == null) return; if (cat.Hidden) return; List<CategorySnapshot> allCats = MTApp.CatalogServices.Categories.FindAllPaged(1, int.MaxValue); List<CategorySnapshot> trail = new List<CategorySnapshot>(); trail = Category.BuildTrailToRoot(cat.Bvin, MTApp.CurrentRequestContext); if (trail == null) return; // Walk list backwards for (int j = trail.Count - 1; j >= 0; j += -1) { if (j != 0 || linkAll == true) { model.Items.Enqueue(AddCategoryLink(trail[j])); } else { model.Items.Enqueue(new BreadCrumbItem() { Name = trail[j].Name }); } } }
public string Render(MerchantTribeApplication app, BreadCrumbViewModel model) { StringBuilder sb = new StringBuilder(); sb.Append("<div class=\"breadcrumbs\">"); sb.Append("<div class=\"links\">"); if (model.HideHomeLink == false) { sb.Append("<a href=\"" + app.StoreUrl(false, false) + "\">Home</a>" + model.Spacer); } while (model.Items.Count > 0) { var item = model.Items.Dequeue(); if (item.Link == string.Empty) { sb.Append("<span class=\"current\">" + HttpUtility.HtmlEncode(item.Name) + "</span>"); } else { sb.Append("<a href=\"" + item.Link + "\" title=\"" + HttpUtility.HtmlEncode(item.Title) + "\">" + HttpUtility.HtmlEncode(item.Name) + "</a>"); } if (model.Items.Count > 0 && model.Items.Peek() != null) { sb.Append(model.Spacer); } } sb.Append("</div>"); sb.Append("</div>"); return sb.ToString(); }
public ActionResult ManualTrail(List<BreadCrumbItem> extras) { BreadCrumbViewModel model = new BreadCrumbViewModel(); model.HomeName = MerchantTribe.Commerce.Content.SiteTerms.GetTerm(MerchantTribe.Commerce.Content.SiteTermIds.Home); if (extras != null) { foreach (BreadCrumbItem item in extras) { model.Items.Enqueue(item); } } return View("BreadCrumb", model); }
public ActionResult CategoryTrail(Category cat, List<BreadCrumbItem> extras) { CategorySnapshot snap = new CategorySnapshot(cat); BreadCrumbViewModel model = new BreadCrumbViewModel(); model.HomeName = MerchantTribe.Commerce.Content.SiteTerms.GetTerm(MerchantTribe.Commerce.Content.SiteTermIds.Home); LoadTrailForCategory(model, snap, false); if (extras != null) { foreach (BreadCrumbItem item in extras) { model.Items.Enqueue(item); } } return View("BreadCrumb", model); }
// Get: /Policies/Faq public ActionResult Faq() { // Breadcrumbs BreadCrumbViewModel crumbs = new BreadCrumbViewModel(); crumbs.HomeName = SiteTerms.GetTerm(SiteTermIds.Home); crumbs.Items.Enqueue(new BreadCrumbItem() { Name = SiteTerms.GetTerm(SiteTermIds.CustomerService), Link = Url.Content("~/ContactUs") }); crumbs.Items.Enqueue(new BreadCrumbItem() { Name = SiteTerms.GetTerm(SiteTermIds.FAQ) }); ViewBag.BreadCrumbTrail = crumbs; // Titles ViewBag.Title = SiteTerms.GetTerm(SiteTermIds.FAQ); Policy p = MTApp.ContentServices.Policies.FindOrCreateByType(PolicyType.Faq); if (p == null) p = new Policy(); return View(p); }
private BreadCrumbViewModel BuildBreadCrumbs(string path) { BreadCrumbViewModel result = new BreadCrumbViewModel(); result.HideHomeLink = true; List<BreadCrumbItem> items = new List<BreadCrumbItem>(); string workingPath = path.TrimEnd('\\'); bool finished = false; while (finished == false) { workingPath = workingPath.TrimEnd('\\'); if (workingPath.Length < 1) { finished = true; break; } string dir = System.IO.Path.GetFileName(workingPath); items.Add(new BreadCrumbItem() { Link = Url.Content("~/bvadmin/content/filemanager?path=" + workingPath), Name = dir, Title = dir }); workingPath = System.IO.Path.GetDirectoryName(workingPath); } items.Add(new BreadCrumbItem() { Link = Url.Content("~/bvadmin/content/filemanager"), Name = "Root", Title = "Root" }); for (int i = items.Count - 1; i >= 0; i--) { result.Items.Enqueue(items[i]); } return result; }
// Get: /Policies/Faq public ActionResult Faq() { // Breadcrumbs BreadCrumbViewModel crumbs = new BreadCrumbViewModel(); crumbs.HomeName = SiteTerms.GetTerm(SiteTermIds.Home); crumbs.Items.Enqueue(new BreadCrumbItem() { Name = SiteTerms.GetTerm(SiteTermIds.CustomerService), Link = Url.Content("~/ContactUs") }); crumbs.Items.Enqueue(new BreadCrumbItem() { Name = SiteTerms.GetTerm(SiteTermIds.FAQ) }); var breadRender = new code.TemplateEngine.TagHandlers.BreadCrumbs(); ViewBag.BreadCrumbsFinal = breadRender.Render(MTApp, crumbs); // Titles ViewBag.Title = SiteTerms.GetTerm(SiteTermIds.FAQ); Policy p = MTApp.ContentServices.Policies.FindOrCreateByType(PolicyType.Faq); if (p == null) p = new Policy(); return View(p); }
public string RenderCategory(MerchantTribeApplication app, List<BreadCrumbItem> extras, Category cat) { CategorySnapshot snap = new CategorySnapshot(cat); BreadCrumbViewModel model = new BreadCrumbViewModel(); model.HomeName = MerchantTribe.Commerce.Content.SiteTerms.GetTerm(MerchantTribe.Commerce.Content.SiteTermIds.Home); LoadTrailForCategory(model, snap, false, app); if (extras != null && extras.Count > 0) { foreach (BreadCrumbItem item in extras) { model.Items.Enqueue(item); } } return Render(app, model); }
private void LoadTrailForProduct(BreadCrumbViewModel model, Product p, MerchantTribeApplication app) { if (p == null) return; CategorySnapshot currentCategory = null; List<CategorySnapshot> cats = app.CatalogServices.FindCategoriesForProduct(p.Bvin); if ((cats.Count > 0)) { currentCategory = cats[0]; } LoadTrailForCategory(model, currentCategory, true, app); model.Items.Enqueue(new BreadCrumbItem() { Name = p.ProductName }); }
public string RenderProduct(MerchantTribeApplication app, List<BreadCrumbItem> extras, Product product) { BreadCrumbViewModel model = new BreadCrumbViewModel(); model.HomeName = MerchantTribe.Commerce.Content.SiteTerms.GetTerm(MerchantTribe.Commerce.Content.SiteTermIds.Home); LoadTrailForProduct(model, product, app); if (extras != null) { foreach (BreadCrumbItem item in extras) { model.Items.Enqueue(item); } } return Render(app, model); }