2012-11-27 10 views
5

Für meine ASP.Net-basierte Tridion2011 betriebene Website benötigen i Standard < tridion erzeugt ersetzen: ComponentLink /> mit einigen < Gewohnheit: ComponentLink />.Was ist der einfachste Weg, Namespace in außer Kraft zu setzen <tridion: ComponentLink />

(Lassen Sie sich diese individuelle Kontrolle der Semantik übernimmt das gleiche ist, das heißt:. Muß nur Namespace Teil ersetzen)

Was wird die einfachste und schonendste Art und Weise, dies zu tun?

Meine Vermutung ist, dass ich eine Alternative zu Standard LinkTagHandler implementieren sollte. Ist es richtig?

Der einzige [infinitesimale] Nachteil dieser Lösung besteht darin, dass explizit alle Tag-Handler in cd_deployer_conf konfiguriert werden müssen.

EDIT

Gefunden eine dumme einfache Lösung für die sehr spezifische Aufgabe der Aliasing-Namespace nur:

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

Durch einen glücklichen Zufall all meine <tcdl:../> Tags <custom:../> abgebildet wurde, andernfalls dieses kleinen Cheat wird nicht funktionieren.

Insgesamt bin ich eher für Peters und Nuno Vorschläge von benutzerdefinierten TCDL Tag-Handler zu schaffen ..

(Just brauchen :-) meine Faulheit zu gewinnen.

EDIT 2

Hoppla, nur bemerkt, dass Nuno schlägt genau die oben!

Antwort

4

Sie können das Präfix leicht steuern, indem Sie es in der cd_deployer_conf (im TCDLEngine-Element) ändern.

Offensichtlich müssen Sie darauf achten, den Steuerelement-/Tag-Handler für dieses Präfix zu implementieren und jede Seite/dcp, die es verwenden soll, erneut zu veröffentlichen.

5

Ja, ich empfehle, einen eigenen TCDL-Tag-Handler zu erstellen, um das benutzerdefinierte Steuerelement anstelle des Standardsteuerelements auszugeben. Es gibt jedoch noch einen weiteren potenziellen Nachteil: Sie müssen Ihre Seiten/Komponenten erneut veröffentlichen, damit sie wirksam werden.

0

Natürlich müssen Sie TCDL überhaupt nicht verwenden. Geben Sie einfach den erforderlichen Code direkt aus Ihrer Vorlage aus. Sie brauchen TCDL nur dann zu verwenden, wenn Sie die Anforderung haben, mehrere Front-End-Plattformen generisch zu targetieren.

+0

Dominic, das habe ich anfangs gemacht. Aber ... es gibt noch einen weiteren Grund *, technologiespezifische Anweisungen in Templates einzufügen: Komponentenlinks in RTF-Feldern. Sie werden standardmäßig von Link Resolver TBB verarbeitet, einem ziemlich monolithischen Code. Also, auf CM-Seite technologisch agnostisch zu bleiben, scheint eine vernünftige Idee zu sein. – esteewhy

+0

Dann nehmen Sie den Link Resolver heraus. Du brauchst es nicht –