Search the FirstSpirit Knowledge Base
Hallo,
ich möchte den Linktext eines Links gerne automatisch aus den Daten der verlinkten Referenz auslesen.
Beispiel:
In den globalen Inhalten sind Seiten angelegt, in denen z. B. Telefonnummern gepflegt werden, d.h. jede dieser globalen Seiten hat nur ein Formularfeld für die entsprechende Telefonnummer und gibt dessen Wert direkt im HTML wieder aus - ähnlich der Labels im Mithras-Projekt.
Redakteure sollen nun Telefonlinks im Fließtext einfügen können, dazu ist ein Linktemplate angelegt, mit einem FS_REFERENCE-Formularfeld, in dem der Redakteur die gewünschte Telefonnummernseite aus dem globalstore auswählt.
Es gibt erstmal kein Formularfeld für den Verweistext, bei "Verweistext" im Eigenschaften-Tab des Linktemplates ist entsprechend nichts ausgewählt - der Redakteur soll den Verweistext nicht manuell eingeben, sondern er soll aus der Referenz generiert werden.
Die Ausgabe / das HTML des Linktemplates ist so aufgebaut, dass es die Telefonnummer aus der Seite ausliest und sowohl als href sowie als Linktext ausgibt (verkürzt und ohne empty-Prüfungen etc., lt_phone ist das FS_REFERENCE Formularfeld):
$CMS_SET(set_ft_phone)$$CMS_VALUE(lt_phone.get)$$CMS_END_SET$
$CMS_SET(set_ft_phone_link)$$CMS_VALUE(set_ft_phone.toString.replaceAll(" ",""))$$CMS_END_SET$
<a href="tel:$CMS_VALUE(set_ft_phone_link)$">$CMS_VALUE(set_ft_phone)$</a>
Das ist nicht sonderlich elegant, aber funktioniert als Testfall soweit, in der Vorschau sowie in den generierten Seiten wird das ganze z. B. nach <a href="tel:0123456789">0123 45 67 89</a> herausgeneriert.
Nur beim Einfügen des Link in ein Input_DOM bzw. beim Bearbeiten des DOM sieht der Redakteur keinen Linktext, sondern nur den leeren Linkindikator- logisch, es ist ja auch kein zu verwendender Verweistext angegeben bzw. kein Verweistext-Formularfeld ausgewählt...
Also bräuchte ich eine Möglichkeit, ein Linktext-Feld auch automatisch aus der ausgewählten Referenz zu belegen.
Mein erster Gedanke war ein Textfeld ganz normal im Formular anzulegen, als Verweistext unter "Eigenschaften" auszuwählen, es auszublenden so dass der Redakteur es nicht sieht/bearbeiten kann und stattdessen über eine Regel automatisch aus der ausgewählten Referenz zu befüllen. Mit
<PROPERTY source="lt_phone" name="VALUE" />
kann ich es nciht befüllen, da der Wert ja nicht die Telefonnummer ist, sondern die Referenz auf die Seite.
Nächster Gedanke war ein ValueService, der dann den Inhalt = die Telefonnummer aus der Referenz herausliest, aber dazu müsste ich dem ValueService ja die ausgewählte Referenz übergeben, damit dieser dann daraus die Telefonnummer (oder zumindest die UID der ausgewählten Referenz, das würde für den Fall auch reichen als Verweistext im DOM) auslesen kann.
Bei Übergabe an den ValueService mit
<PARAM name="reference"><PROPERTY source="lt_phone" name="VALUE" /></PARAM>
kommt allerdings die Fehlermeldung:
Fact for parameter 'value' is not serializable: [phone_example1:GLOBALSTORE]@11d3440
Gibt es keine Möglichkeit, die Referenz an den ValueService zu übergeben? Oder eine Möglichkeit, irgendwie anders im ValueService an die ausgewählte Referenz zu kommen?
Alternativ könnte ich natürlich statt der globalen Inhaltsseiten eine Datenquelle verwenden, in der ich die Telefonnummern halte, da scheitere ich aber im Endeffekt am gleichen Problem, ich kann das Formularfeld mit dem ausgewählten Datensatz nicht als Verweistext angeben und ich bekomme das Verweistext-Feld für den DOM-Input nicht automatisch befüllt.
Oder denke ich in die falsche Richtung und ein komplett anderer Weg ist dafür besser geeignet?
Vielen Dank im Voraus und viele Grüße
Mona
Hallo Mona,
ist das Posting noch aktuell oder wurde die Frage inzwischen anderweitig gelöst?
Solltest Du eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Niels
Nein, leider haben wir noch keine Lösung gefunden (aufgrund höherer Prioritäten aber erstmal akzeptiert, dass es so nicht geht und eben kein Verweistext dafür angezeigt wird, und nicht noch viel mehr Zeit hierein investiert).
Wäre schon schön wenn wir hier noch eine Lösung oder zumindest einen Ansatz wie das am Besten geht finden könnten, denn für den Redakteur wäre es dann einfacher einzusetzen.
Viele Grüße
Mona
Hallo Mona,
wenn ich dein Eingangsposting richtig verstehe, ist das Problem, dass innerhalb des DOMs kein Linktext, sondern nur ein öffnendes und schließendes Link-Symbol angezeigt wird?
Im Eigenschaften-Reiter der Verweisvorlage lässt sich unter dem Punkt "Formular-Variablen Zuordnung" auswählen, welche Eingabekomponente der Darstellung des Verweistextes innerhalb des DOMs dienen soll.
In der Regel wird diese Komponente durch den Redakteur beim Anlegen des Links gefüllt und ihr Inhalt dann im DOM als Verweistext angezeigt.
Ich bin mir jedoch nicht sicher, wie der DOM sich verhält, wenn die Eingabekomponente - wie in dem von dir beschriebenen Fall - bereits vorbefüllt wird.
Viele Grüße
Michaela