- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Linkerzeugung ohne Generierungscontext
Hallo zusammen,
ich habe in den Projekteinstellungen im SiteArchitekt einen DOM-Editor, welcher als Signatur einer E-Mail verwendet werden soll. Die Emails sind im HTML Format.
In dem Editor kann man sowohl externe als auch interne Links รผber einen CMS_INPUT_LINK eintragen. Bei der der Freigabe der Projekteinstellungen, wird der Inhalt des Editors in eine Variable gespeichert und dann, wenn benรถtigt, aus dieser ausgelesen und in die Email eingefรผgt.
Die Links werden dann in der Email zwar als Link gekennzeichnet, sie kรถnnen aber nicht angeklickt werden.
Die Verweisvorlage sieht folgendermaรen aus:
$CMS_TRIM(level:3)$
$-- set link reference - internal link rules --$
$CMS_SET(set_lt_ref,"#")$
$CMS_IF(!sitestoreref.isEmpty)$
$CMS_SET(set_lt_ref,ref(sitestoreref).url)$
$CMS_ELSIF(!ref.isEmpty && !ref.equals("http://"))$
$CMS_SET(set_lt_ref,ref)$
$CMS_END_IF$
$-- set alternative text from text --$
$CMS_SET(set_lt_text)$$CMS_VALUE(text,default:"")$$CMS_END_SET$
$CMS_SET(set_lt_text,set_lt_text.toString().convert2)$
$-- set comment --$
$CMS_SET(set_lt_comment)$$CMS_VALUE(comment,default:"")$$CMS_END_SET$
$CMS_SET(set_lt_comment,set_lt_comment.toString().convert2)$
$-- print link begin --$
<a href="$CMS_VALUE(set_lt_ref)$" title="$CMS_VALUE(set_lt_comment)$" target="_blank">$CMS_VALUE(set_lt_text)$</a>
$CMS_END_TRIM$
Wenn ich mir den Quelltext der Email anschaue, sieht der "generierte" Link so aus:
<a href="#" data-link-template="further_information_email_link" data-link-id="47d5da0a-483f-4fbe-97ae-15a0019a6459">E-Mail Formulare</a>
Fรผr mich sieht das so aus, als wenn meine Linkvorlage รผberhaupt nicht abgearbeitet wird. Wie kommt also der "generierte" Link zustande und wie kann ich den korrekten Link erzeugen lassen?
VG
Jens
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jens,
ah, das mit den Attributen habe ich tatsรคchlich รผbersehen. Ich habe deinen Fall mal im Mithras Projekt nachvollzogen und habe รผber ein Script die toText Methode eines DOM-Elementes aufgerufen.
Die Ausgabe รคhnelt deiner ganz genau. Ich sehe ebenfalls die Attribute, obwohl ich sie nicht definiert habe. Als href sehe ich ebenfalls "#". Der Link-Text ist aber wie erwartet (es gibt bestimmt einen Grund fรผr die zusรคtzlichen Attribute, den kenne ich leider aber auch nicht).
Fรผhre ich eine richtige Generierung aus, ist das Ergebnis wie erwartet. D. h. es werden die erwarteten Attribute und die richtige URL generiert.
Ich stecke nicht sehr tief in dieser speziellen Materie, aber fรผr die Generierung von URLs wird ja eine UrlFactory benรถtigt, der in einem Generierungstask festgelegt wird. Die fehlt natรผrlich, wenn man sich den Wert der Komponente direkt holt.
Schau mal, ob der RenderingAgent (FirstSpirit Developer-API) euch weiter hilft. Damit kannst du einzelne IDProvider rendern und dafรผr eine UrlFactory festlegen.
Viele Grรผรe
Tim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jens,
auf den ersten Blick sieht deine Linkvorlage in Ordnung aus. Da im href Attribut zumindest "#" steht, vermute ich, dass die if-Anweisung nicht nach deinen Erwartungen funktioniert. Dann bleibt nรคmlich "#" in set_lt_ref stehen. Das wรผrde ich an deiner Stelle als erstes checken.
Falls die if-Anweisung doch soweit funktioniert, mรผsstest du noch etwas genauer beschreiben, wie der Ablauf ist. Du schreibst "Bei der der Freigabe der Projekteinstellungen, wird der Inhalt des Editors in eine Variable gespeichert". Meinst du also, dass eine Freigabe (รผber einen Workflow?) durchgefรผhrt wird, die die Signatur generiert und irgendwo speichert? Und spรคter in einem zweiten Prozess wird auf diese Variable zugegriffen? Oder passiert das doch in einem Generierungsprozess? In welcher Art von Variablen wird die Signatur gespeichert?
Viele Grรผรe
Tim
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tim,
genau, die Freigabe erfolgt รผber einen Workflow. Wรคhrend des Workflows wird der Wert des DOM-Editors (die Signatur) als Property ins Projekt gespeichert. Wenn eine Email versendet werden soll, wird dieser Wert dann aus dem Projekt (project.getProperty(String key)) ausgelesen. Es gibt also keinen Generierungscontext.
Aber wie gesagt, bezweifle ich ,dass meine Verweisvorlage รผberhaupt berรผcksichtigt wird, denn der Link den ich bekomme lautet
<a href="#" data-link-template="further_information_email_link" data-link-id="47d5da0a-483f-4fbe-97ae-15a0019a6459">E-Mail Formulare</a>.
Der Link, der eigentlich erzeugt werden soll lautet:
<a href="$CMS_VALUE(set_lt_ref)$" title="$CMS_VALUE(set_lt_comment)$" target="_blank">$CMS_VALUE(set_lt_text)$</a>
In meiner Verweisvorlage gibt es weder data-link-template noch data-link-id, aber meine Attribute wie title und target werden รผberhaupt nicht ausgegeben.
VG
Jens
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jens,
ah, das mit den Attributen habe ich tatsรคchlich รผbersehen. Ich habe deinen Fall mal im Mithras Projekt nachvollzogen und habe รผber ein Script die toText Methode eines DOM-Elementes aufgerufen.
Die Ausgabe รคhnelt deiner ganz genau. Ich sehe ebenfalls die Attribute, obwohl ich sie nicht definiert habe. Als href sehe ich ebenfalls "#". Der Link-Text ist aber wie erwartet (es gibt bestimmt einen Grund fรผr die zusรคtzlichen Attribute, den kenne ich leider aber auch nicht).
Fรผhre ich eine richtige Generierung aus, ist das Ergebnis wie erwartet. D. h. es werden die erwarteten Attribute und die richtige URL generiert.
Ich stecke nicht sehr tief in dieser speziellen Materie, aber fรผr die Generierung von URLs wird ja eine UrlFactory benรถtigt, der in einem Generierungstask festgelegt wird. Die fehlt natรผrlich, wenn man sich den Wert der Komponente direkt holt.
Schau mal, ob der RenderingAgent (FirstSpirit Developer-API) euch weiter hilft. Damit kannst du einzelne IDProvider rendern und dafรผr eine UrlFactory festlegen.
Viele Grรผรe
Tim

