我有一个场景,我有一个嵌套的列表页面,需要存在于我的网站的不同位置。
问题是我希望在一个位置管理此列表页面,而不是在许多地方复制它,但我不想丢失URL结构。所以,我可能有
www.abc.com/infocomm/infrastructure/wired/that-listing-page www.abc.com/infrastructure/ipv6/that-listing-page
我尝试在内容存储库中创建列表页面并使用通配符查询动态提取子页面,但这有一些缺点:
www.abc.com/infocomm/infrastructure/wired/that-listing-page/的 2012 /物品-1
你们中的一些人之前可能已经经历过这种情况,我很想知道你们是如何实现这一目标的。我正在使用Sitecore 6.5。
答案 0 :(得分:1)
看起来物品克隆正是您需要的。在此blog post中了解有关克隆的详情。
您应该能够在www.abc.com/infocomm/infrastructure/wired/that-listing-page
下创建www.abc.com/infrastructure/ipv6
项目的副本,它将自动更新(及其后代)。
答案 1 :(得分:0)
如果我理解正确,您希望在此页面上显示来自不同内容节点的项目的链接。
我能想到的最简单的解决方案是在模板上创建一个用于列出页面和设置treelist选择框字段的新模板,并添加/ sitecore / content / Home /,以便从中获取后代。
现在在代码中迭代选定的项目并在列表页面上显示它们。 当您获得这些项目时,您应该能够获得所选项目的所有字段值,并且可能会为您提供缩略图图像并使用以下代码生成链接
Sitecore.Data.Database dataContext = Sitecore.Context.Database;Sitecore.Data.Item listPageItem = Sitecore.Context.Item; Sitecore.Data.Fields.MultilistField multiselectField = (MultlistField)home.Fields["[select list field name]"]; Items[] selectedItems = (multiselectField != null)? multiselectField.GetItems() : null; int listCount = (selectedItems ==null)? 0 : selectedItems.Length; for(int index=0; index < listCount; index++) { Item item = selectedItems[index]; // Assuming you want to display thumbnail image as a link to the page string thumbnailUrl = item.Fields["[Thumbnail Image Path]"] string imgTag = string.Format(@"<img src=""/{0}"" width=""[img width]"" alt=""{1}"" />", thumbnailUrl, item.Fields["[Title]"]); string url = Sitecore.Links.LinkManager.GetItemUrl(item); string itemLink = string.Format(@"<a href=""{0}"">{1}</a>", url, imgTag); }
希望这有帮助...