How to get the Maximum index count for TemplateRepeatIndex in DWT

1.8k Views Asked by At

I have a component in tridion where its metadata design has a field called 'list' which is populated using Categories and Keywords

I used a DWT code to populate items present in the list using the following code using My DWT TBB

<!-- TemplateBeginRepeat name="Metadata.list" -->

    <!-- TemplateBeginIf cond="list" --> 
        @@RenderComponentField('list',TemplateRepeatIndex)@@ ,
    <!-- TemplateEndIf -->

<!-- TemplateEndRepeat -->

but Im getting preview as

one,two,three,four,five,

desired output should be like: one,two,three,four,five

so for this i need to get the maximum count of "TemplateRepeatIndex" Is there any inbuilt function to check the same.

using Tridion-sp1,2011.

4

There are 4 best solutions below

9
Arjen Stobbe On BEST ANSWER

You can solve this with the built in function: CollectionLength.

When you have a multi-valued text field "multiValuedField" you can find the item count using the following expression:

@@CollectionLength("Component.Fields.multiValuedField")@@

Collection Length receives an expression that is the fully qualified name of an item and a value selector of a package item.

The value returned is a string. When you need to perform an integer comparison or calculation you need to parse the value to an integer:

@@parseInt(${CollectionLength("multivalued")})@@

This works because the string between @@ and ${} is parsed as JScript.

2
Jeremy Grand-Scrutton On

I believe the only way to do this would be to create a TBB that adds the field count as an item in the package. You would then be able to do the following:

<!-- TemplateBeginRepeat name="Metadata.primary_topic" -->

<!-- TemplateBeginIf cond="primary_topic" --> 
@@RenderComponentField('primary_topic',TemplateRepeatIndex)@@<!-- TemplateBeginIf cond="TemplateRepeatIndex &lt; PrimaryTopicCount"--> ,<!-- TemplateEndIf -->
<!-- TemplateEndIf -->

<!-- TemplateEndRepeat -->
2
Peter Kjaer On

An easy solution would be to switch your logic around.

You can check if TemplateRepeatIndex is 0. If it is not, output the comma in front of the value.

2
Frank van Puffelen On

Walter solved and explained this topic a few years ago by introducing a custom function.

http://sdltridionworld.com/community/extension_overview/dreamweavercia.aspx

Don't forget to recompile his code for the current version of Tridion.

Update: you can find all built-in functions (and examples of their usage) that Tridion has for use in DWT on this page: http://code.google.com/p/tridion-practice/wiki/BuiltInFunctionsForUseInHtmlTemplates