如何在Sitecore 6.5中创建共享列表页面

如何在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 我尝试在内容存储中创建列表页面,并使用通配符查询动态拉出子页面,但这有一些缺点: 使用富文本编辑器,

我有一个场景,我有一个嵌套的列表页面,它需要存在于我网站的不同位置

问题是,我希望这个列表页面在一个位置进行管理,而不是在多个位置复制它,但我不希望丢失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。

看起来项目克隆正是您需要的。在这篇文章中阅读更多有关克隆的信息


您应该能够在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); 

}