Looping through the multiple component links to get the schema name of the linked component in Dreamweaver TBB in SDL Tridion 2011

StackOverflow https://stackoverflow.com/questions/10738405

  •  10-06-2021
  •  | 
  •  

Question

I am working on the Dreamweaver template building blocks and implementing SiteEdit for the page.

I am using SDL Tridion 2011 SP1 and Site Edit 2012 and Default Dream Weaver Templating.

My schema has a multi-value field of type "Component Link". My main component XML looks like this.

<Content xmlns="UUID">
    <link xlink:type="simple" xlink:href="tcm:202-8121"
          xmlns:xlink="http://www.w3.org/1999/xlink"></link>
    <link xlink:type="simple" xlink:href="tcm:202-8122"
          xmlns:xlink="http://www.w3.org/1999/xlink"></link>
</Content>

Linked component XML looks like this.

<Content xmlns="Some other UUID">
    <text>Hi all</text>
</Content>

My objective is to get the name of schema of the linked component and enable inline Editing for the the fields of the linked component too. I created a separate Component Template for the schema of the linked component with the URI tcm:202-8142-32.

I have written the DWT TBB for main component like this.

<!-- TemplateBeginRepeat name="Fields.link" -->
    <div>
        (FieldPath=@@FieldPath@@, TemplateRepeatIndex=@@TemplateRepeatIndex@@)
    </div>

    <!-- Not able to get the schema name of the linked component -->            
    @@RenderComponentPresentation(link, "tcm:202-8142-32")@@
<!-- TemplateEndRepeat -->

I am unable to loop through the component link field "link".

Then I changed the schema which allows only a single component link. When TBB written is as follows, things work fine:

@@RenderComponentPresentation(link, "tcm:202-8142-32")@@

I know that the problem lies in looping through the multiple component links.

Please suggest how to loop through the multiple component links and get the schema name of each linked component.

Was it helpful?

Solution

When you are looping over the values of a multi-value field (as you are doing here), the current value is available in a variable called Field. So if you just change your call to RenderComponentPresentation to refer to that, I think it should work:

<!-- TemplateBeginRepeat name="Fields.link" -->
    <!-- Not able to get the schema name of the linked component -->            
    @@RenderComponentPresentation(Field, "tcm:202-8142-32")@@
<!-- TemplateEndRepeat -->

OTHER TIPS

I don't think it is possible for you to get the schema name using DWT. What you'll need to do is write a c# building block that extracts the values you are looking for, then puts this value into the package for you.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top