2012-11-01 16 views
5

Ho un problema qui. La struttura che ho al momento è:Campi di accesso in un modello di componenti all'interno di componenti all'interno di componenti

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

Ora sto provando a posizionare ComponentA con Template su una pagina. Sto usando il DWT Templating. Quello che mi serve è accedere a FieldC1 nel modello.

Ho già aggiunto il TBB "Aggiungi componenti collegati al pacchetto" in ModelloA. Penso che sia identico a questo: http://sdltridionworld.com/community/extension_overview/addcompstopackage.aspx Posso accedere a FieldB1 nel mio modello ma non i campi più in basso nella gerarchia.

Devo scrivere un altro TBB che includa l'intero hiearchy o dovrebbe funzionare come previsto e il mio codice di accesso è errato?

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

Cosa posso fare per farlo funzionare? Esistono altre soluzioni per scrivere un nuovo TBB?

=========== SOLUZIONE ============

Dopo Nickoli Roussakov mi ha parlato del DGX, sono riuscito a implementare correttamente. Qui il codice:

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

risposta

8

GetLinkedComponents funziona solo sul primo livello di componente nesting perché non si può andare più a fondo che con la sintassi DWT. Le tue opzioni sono di scrivere un tbb personalizzato che restituisca l'output necessario dal componente B, o provare l'estensione DGX di Nuno (anche su sdltridionworld) invece di GetLinkedComponents.

+0

Grazie mille, sono riuscito a implementare il requisito con il DGX! – Egi