如何在Sitecore 6.5中创建共享列表页面
我有一个场景,我有一个嵌套的列表页面,它需要存在于我网站的不同位置 问题是,我希望这个列表页面在一个位置进行管理,而不是在多个位置复制它,但我不希望丢失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/article-1 由于1,如果内容作者重命名列表页下的项目或删除项目,将有许多断开的链接。 我们必须迁移现有的内容,这意味着我们必须手动更新和硬编码的新链接,这将导致第一个问题。 由于上述挑战,我们无法生成Google sitemap和RSS提要。如何在Sitecore 6.5中创建共享列表页面,sitecore,sitecore6,sitecore-workflow,Sitecore,Sitecore6,Sitecore Workflow,我有一个场景,我有一个嵌套的列表页面,它需要存在于我网站的不同位置 问题是,我希望这个列表页面在一个位置进行管理,而不是在多个位置复制它,但我不希望丢失URL结构。所以,我可能有 www.abc.com/infocomm/infrastructure/wired/that-listing-page www.abc.com/infrastructure/ipv6/that-listing-page 我尝试在内容存储中创建列表页面,并使用通配符查询动态拉出子页面,但这有一些缺点: 使用富文本编辑器,
你们中的一些人以前可能经历过这种情况,我很想听听你们是如何做到的。我正在使用Sitecore 6.5。看起来项目克隆正是您需要的。在这篇文章中阅读更多有关克隆的信息
您应该能够在www.abc.com/infrastructure/ipv6下创建www.abc.com/infocomm/infrastructure/wired/that-listing-page项目的克隆,它将自动更新及其后代。如果我理解正确,您希望在此页面上显示来自不同内容节点的项目链接 我能想到的最简单的解决方案是为列表页面创建一个新模板,并在模板上设置treelist select box字段,然后添加/sitecore/content/Home/,从中获取后代 现在在代码中,遍历所选项目并在列表页面上显示它们。 当您获取项目时,您应该能够获取所选项目的所有字段值,这可能会为您提供缩略图图像,并使用以下代码生成链接
希望这有助于 但是克隆有一个问题,因为每次从源中删除一个项目时,克隆都会变成真实的项目。我真正需要的是一个地方,让内容作者管理内容,对源项目所做的任何更改,克隆也将更新。知道我们是否可以覆盖克隆功能的删除方法吗?如果可能的话,克隆功能可以是我最好的朋友。我建议查看条目:删除事件,我自己没有尝试过,但你应该能够找到所有克隆并删除它们。是的,我同意,我认为这是解决我问题的最好方法。谢谢你提出了克隆功能,我完全忽略了它。谢谢你的投入,但是这个解决方案对我的情况不起作用。我需要克隆存在于内容树中,以维护URL结构。 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); }