问题 可以使用Data Extender扩展收藏列表吗?


我们有一个数据扩展器,显示所有列表视图中每个项目的版本号。显然,“收藏夹”是不同的,因为我们的数据扩展器在那里不起作用。

那么,我们可以为收藏夹列表做一个数据扩展器吗?如果没有,将版本号信息添加到项目中以便在列表中显示的替代方法是什么?


6273
2018-05-07 17:53


起源

处理收藏夹列表应该与任何其他项目列表没有太大差别,因为它们都共享一个非常相似的结构(根元素的名称不同)。您可以发布您希望处理的XML以及用于处理它的代码吗? - Frank van Puffelen
嗨,华纳,我们为Tridion提出了一个专用的Stack Exchange站点,你会考虑提交吗? area51.stackexchange.com/proposals/38335/... - Dave Houlker


答案:


是。收藏夹列表可以通过DataExtender进行扩展,类似于大多数其他数据结构的扩展方式。由于收藏夹是Tridion Content Manager数据模型中其他项目的快捷方式,因此它们具有相同的属性。

这是我的Building Blocks文件夹中的项目列表的示例:

<tcm:ListItems Managed="10682" ID="tcm:1-1-2" 
               xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
    <tcm:Item ID="tcm:1-5-2" Title="Component Templates" Type="2" 
              Modified="2011-11-18T11:09:45" IsNew="false" Icon="T2L0P0" 
              IsPublished="false" Lock="0" IsShared="false" IsLocalized="false" 
              Trustee="tcm:0-0-0" Allow="269085696" Deny="96" Managed="10682" />
</tcm:ListItems>

这是FavoritesList的一个例子:

<tcm:ListFavoriteItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
    <tcm:Item xmlns:tcm="http://www.tridion.com/ContentManager/5.0" 
        ID="cme:0-41336414110293-shortcut" Title="Folder" RefID="tcm:1-57-2" 
        Path="\Content Management\Pub1\Building Blocks\Folder" Icon="T2" 
        Created="2012-5-7T14:8:30" HasChildren="false" Allow="24576" />
</tcm:ListFavoriteItems>

因此,除了根元素名称之外,这看起来非常类似于您可以从DataExtender中的Tridion返回的其他列表。


12
2018-05-07 18:02



这听起来不错,但是我没有让它发挥作用。如果你能指出我的方式的错误,那就太好了。我有一个扩展DataExtender的类,适用于其他列表视图。但是,当我拦截命令“GetListUserFavorites”时,我似乎没有得到像其他命令那样的XML。有什么不同我应该做的吗? - Warner Soditus
我建议你提供更多关于你做什么的信息。特别是共享显示您的问题的最小代码示例。 - Frank van Puffelen
我的收藏中有5件物品。让我再试一次,如果它不起作用我会发布代码。 - Warner Soditus
好吧......搞定了。喜剧的错误。在我们使用的数据扩展器中,我们根据项目的“类型”进行过滤。收藏夹XML没有那个。所以,那段代码不起作用。然后我的代码转出我刚刚没有工作的整个XML。仍然不知道为什么,但删除“类型”检查解决了我的第一个代码块的问题。现在我可以使用RefID获取它引用的项目并获取其版本信息。谢谢您的帮助。 XML片段有帮助。 - Warner Soditus
你是华纳的欢迎。有什么办法可以清理这个评论帖并改进原来的问题和答案吗? - Frank van Puffelen