2012-11-27 15 views
5

Per il mio sito Tridion2011 alimentato ASP.Net a base ho bisogno di sostituire il campione generato < tridion: ComponentLink /> con qualche < personalizzato: ComponentLink />.Qual è il modo più semplice per eseguire l'override namespace in <tridion: ComponentLink />

(Supponiamo che la semantica di questo controllo personalizzato è la stessa, vale a dire:. Solo bisogno di sostituire parte dello spazio dei nomi)

quello che sarà il modo più semplice e meno intrusivo per fare questo?

La mia ipotesi è che dovrei implementare un'alternativa allo standard LinkTagHandler. È corretto?

L'unico svantaggio [infinitesimale] di questa soluzione è che richiederà la configurazione esplicita di tutti i gestori di tag in cd_deployer_conf.

EDIT

trovato una soluzione semplice muto al compito molto specifico di un solo spazio dei nomi aliasing:

<TCDLEngine> 
    <Properties> 
     <Property Name="aspnet.tagprefix" Value="custom"/> 
    </Properties> 
</TCDLEngine> 

Per un caso fortunato tutti i miei <tcdl:../> tag ricevuti mappati <custom:../>, in caso contrario, questo piccolo cheat non funzionera '.

Nel complesso, sono piuttosto a favore di Pietro e suggerimenti per la creazione di tag handler TCDL personalizzato di Nuno ..

(Solo bisogno di conquistare la mia pigrizia :-).

EDIT 2

Ops, appena notato, che Nuno suggerisce esattamente quanto sopra!

risposta

4

È possibile controllare facilmente il prefisso modificandolo in cd_deployer_conf (nell'elemento TCDLEngine).

Ovviamente, sarà necessario implementare il controllo/tag handler per quel prefisso e ripubblicare ogni pagina/dcp che dovrebbe utilizzarlo.

5

Sì, si consiglia di creare il proprio gestore di tag TCDL per l'output del controllo personalizzato anziché predefinito. C'è un altro potenziale svantaggio, però: dovrai ripubblicare le tue pagine/componenti affinché abbia effetto.

0

Ovviamente, non è necessario utilizzare TCDL. Basta emettere il codice richiesto direttamente dal tuo modello. L'unica volta in cui è necessario utilizzare TCDL per questo è se si ha un forte obbligo di indirizzare genericamente più piattaforme front-end.

+0

Dominic, questo è quello che ho fatto inizialmente. Ma ... c'è un altro motivo * non * per includere istruzioni specifiche per la tecnologia nei modelli: collegamenti di componenti all'interno di campi RTF. Di default vengono elaborati da Link Resolver TBB, che è un pezzo di codice piuttosto monolitico. Quindi, restare aggrappato alla tecnologia sul lato CM sembra essere un'idea sensata. – esteewhy

+0

Quindi togliere il link resolver. Non ne hai bisogno –