2012-11-01 10 views
5

Ich habe ein Problem hier. Die Struktur, die ich im Moment habe, ist:Zugriff Felder in einer Vorlage von Komponenten in Komponenten in Komponenten

ComponentA 
    FieldA1 - textField 
    CombonentsB - componentLink (multi-value) 
     FieldB1 - textField 
     ComponentC - componentLink 
      FieldC1 - textField 

Jetzt versuche ich ComponentA mit Vorlage auf einer Seite zu platzieren. Ich verwende DWT Templating. Was ich brauche, ist Zugriff auf FieldC1 in der Vorlage.

Ich habe bereits die "Add Linked Components To Package" TBB in TemplateA hinzugefügt. Ich denke, es ist identisch mit diesem: http://sdltridionworld.com/community/extension_overview/addcompstopackage.aspx Ich kann auf FieldB1 in meiner Vorlage zugreifen, aber nicht die Felder weiter unten in der Hierarchie.

Muss ich eine andere TBB schreiben, die die ganze Hierarchie enthält, oder sollte es wie erwartet funktionieren und mein Zugangscode ist einfach falsch?

<!-- TemplateBeginRepeat name="ComponentsB" --> 
@@[email protected]@ 
<!-- TemplateEndRepeat --> 

Was kann ich tun, damit es funktioniert? Gibt es andere Lösungen als eine neue TBB zu schreiben?

=========== SOLUTION ============

Nach Nickoli Roussakov mir über die DGX gesagt, konnte ich es richtig umzusetzen. Hier ist der Code:

<!-- TemplateBeginRepeat name="ComponentsB" --> 
    @@Get("ComponentsB[${TemplateRepeatIndex}].Fields.ComponentC.Fields.FieldC1")@@ 
<!-- TemplateEndRepeat --> 

Antwort

8

GetLinkedComponents funktioniert nur auf der ersten Ebene der Komponente Verschachtelung, weil Sie nicht, dass tiefer als mit DWT Syntax gehen können. Sie können einen benutzerdefinierten tbb schreiben, der die benötigte Ausgabe von componentB ausgibt, oder versuchen Sie Nuno's DGX-Erweiterung (auch auf sdltridionworld) anstelle von GetLinkedComponents.

+0

thx viel, ich habe es geschafft, die Anforderung mit dem DGX zu implementieren! – Egi