4

I have implemented a DataExtender and Custum Listdefinition and they work just fine.. Until I open a component.

Before Before After After

So when I opened an item the custom data that is provided by my data extender just disappears. This is so for ALL of my data extenders and custom list definitions. My custom data disappears but the data that is standard provided by Tridion (Title, Icon, ModificationDate) will not disappear.

Does anybody know why and how I can fix it? I have included the List definition of this particular example above at the bottom.

<?xml version="1.0" encoding="utf-8" ?>
<list:listDefinition xmlns:list="http://www.sdltridion.com/2009/GUI/extensions/List">
   <list:selectornamespaces>
       <list:namespace prefix="tcm" uri="http://www.tridion.com/ContentManager/5.0"/>
   </list:selectornamespaces>
   <list:rows>
       <list:itemSelector>/*/*</list:itemSelector>
       <list:titleSelector>@Title</list:titleSelector>
       <list:idSelector>@ID</list:idSelector>
       <list:modifiedDateSelector>@Modified</list:modifiedDateSelector>
       <list:stateSelector>@Icon</list:stateSelector>
       <list:ghostSelector>@IsNew="true"</list:ghostSelector>
       <list:isThumbnailPreviewSelector>@MIMEType</list:isThumbnailPreviewSelector>
       <list:thumbnailIconSelector>@Icon</list:thumbnailIconSelector>
       <list:locationSelector>@Path</list:locationSelector>
       <list:emptyListMessage>{Resources: Tridion.Web.UI.Strings, ThereAreNoItemsInThisView}</list:emptyListMessage>
   </list:rows>
   <list:columns>
       <list:column id="TitleTemplateColumn"        type="data" title="{Resources: ContentManager.GUI.Extensions.Strings, TitleTemplate}"                selector="@templatetitle"               translate="String" enablefiltering="true" columnfilter="group"/>
       <list:column id="TitleActivityColumn"     type="data" title="{Resources: ContentManager.GUI.Extensions.Strings, TitleActivity}"            selector="@activitytitle"   translate="String" enablefiltering="true" columnfilter="group"/>
       <list:column id="SubtitleColumn"        type="data" title="{Resources: ContentManager.GUI.Extensions.Strings, Subtitle}"            selector="@templatesubtitle"           translate="String" enablefiltering="true" columnfilter="value"/>
       <list:column id="TargetGroupColumn"  type="data" title="{Resources: ContentManager.GUI.Extensions.Strings, TargetGroup}"  selector="@templatetargetgroup"  translate="String" enablefiltering="true" columnfilter="value"/>
       <list:column id="CreatorColumn"     type="data" title="{Resources: ContentManager.GUI.Extensions.Strings, MadeBy}" selector="@templatecreator"        translate="String" enablefiltering="true" columnfilter="value"/>
   </list:columns>
   <list:filterbarView url="/WebUI/Editors/CME/Views/ListFilters/SearchListBar.aspx"/>
</list:listDefinition>
4

The problem is not in a list definition.

When component is opened(means loaded), it re-creates list node xml to reflect the latest state of the item in a list. So if you don`t have these properties exposed in item xml, then you just have nothing to show.

What you need to do is to add new data extender which will expose all these attributes to the component properties (in component xml) on Load (so as on Save/Check-in/Localize/etc.) action.

Then you will need to extend/override getListItemXmlAttributes from Tridion.ContentManager.Component to have those attributes in new component node representation in list.

| improve this answer | |
  • Thanks! I just now had time to implement it and it works. But I do find it strange that you have to do this in order to get the List definitions working. I assumed that defining them in the Editor.config would have taken care of this. – Thomas Hendrickx Oct 8 '14 at 13:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.