o5_puschnig
I'm new here

Verweisvorlage in LINKLIST vs DOM

Hallo, ich habe eine Verweisvorlage zur Ausgabe von Telefonlinks erstellt. Es handelt sich um einen generischen Link. Das Formular enthält ein Textfeld "ltNumber" zur Eingabe einer Telefonnummer (z.B. "+49 1234 5678 0"). Dieses Textfeld ist im Eigenschaften-Tab als Verweistext eingestellt. Die Ausgabe soll dann so aussehen:

<a href="tel:+49123456780" class="phone">+49 1234 5678 0</a>

Im HTML-Kanal habe ich also geschrieben:

$CMS_IF(!#link.ltNumber.isEmpty())$

<a href="tel:$CMS_VALUE(#link.ltNumber.replace(" ", ""))$" class="phone">$CMS_VALUE(#link.ltNumber)$</a>

$CMS_END_IF$

Das Problem:

Wenn ich die Vorlage als LINKEDITOR in einem CMS_INPUT_LINKLIST verwende, sieht die Ausgabe genau so aus wie erwartet. Verwende ich sie aber in einem CMS_INPUT_DOM, erhalte ich z.B. folgende HTML-Ausgabe vom DOM-Text in der Vorschau:

<a href="#" linkid=0f1035ea-6702-48ca-85eb-e34af0bff983">+49 6103 5853 0</a>

D.h. der Link wird IRGENDWIE ausgegeben, aber nicht mit meiner HTML-Ausgabe. Das DOM sieht so aus:

<CMS_INPUT_DOM name="stContactText" allowEmpty="yes" rows="10" useLanguages="yes">

  <FORMATS>

    <TEMPLATE name="h5"/>

  </FORMATS>

  <LANGINFOS>

    <LANGINFO lang="*" label="Text" description="Contact text"/>

    <LANGINFO lang="DE" label="Text" description="Kontakt Text"/>

  </LANGINFOS>

  <LINKEDITORS>

    <LINKEDITOR name="lt_phone_link"/>

    <LINKEDITOR name="lt_teaser_link"/>

  </LINKEDITORS>

</CMS_INPUT_DOM>

Muss ich im DOM irgendwelche Attribute einstellen oder sonst was, damit die HTML-Ausgabe der Linkvorlage verwendet wird? Habe ich in der Doku (mal wieder) etwas übersehen?

0 Kudos
6 Replies
broszeit
I'm new here

Hallo,

Entspricht der Link zufällig der Linkvorlage "lt_teaser_link"?

<a href="#" linkid=0f1035ea-6702-48ca-85eb-e34af0bff983">+49 6103 5853 0</a>

Die Ausgabe unterscheidet sich ja doch ziemlich von dem Template.

Eigentlich sollte es hier keine Probleme geben, wenn sie die Linkvorlage "lt_phone_link" angelegt haben und beim Anlegen auch benutzen.

Wenn es sich um einen generischen Link handelt, sollte man innerhalb der generischen Linkvorlage nicht $CMS_VALUE(#link.ltNumber)$ verwenden, sondern $CMS_VALUE(ltNumber)$.

Wenn das nicht hilft, müsste man den Fehler langsam eingrenzen:

Zum Testen würde ich den Linkeditor lt_teaser_link entfernen und im lt_phone_link ein paar Ausgaben zum Testen einbauen:

a) ob das Template überhaupt genutzt wird --> "Testtext" ausserhalb des $CMS_IF$

b) ob der Teil im $CMS_IF$ überhaupt erreicht wird --> "Testtext2" innerhalb des $CMS_IF$

Viele Grüße

Rouven

0 Kudos

Hallo,

nein, die Ausgabe ist nicht die von "lt_teaser_link" (diese Vorlage erzeugt übrigens genau die gleiche falsche Ausgabe, wenn im DOM verwendet). Die Ausgabe entspricht keiner im Projekt verwendeten Linkvorlage.

Wie vorgeschlagen habe ich den lt_teaser_link als Linkeditor aus dem DOM entfernt. Das Link-Template habe ich im HTML-Kanal angepasst (ltNumber statt #link.ltNumber, und Test-Texte ausserhalb und innerhalb des $CMS_IF).

Wie zuvor ist die Ausgabe korrekt, wenn die Vorlage in einer LINKLIST verwendet wird (beide Test-Texte werden auch angezeigt). Bei Verwendung im DOM wird aber leider immer noch die falsche Ausgabe erzeugt.

Viele Grüße

Ingmar Puschnig

0 Kudos

Hallo Herr Puschnig,

bei generischen Links sollten sie im Ausgabekanal direkt mit den Formularfeldern arbeiten.

Hier ein kleines Beispiel:

Link Formular:

<CMS_MODULE>

  <CMS_INPUT_TEXT name="lt_number" hFill="yes" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Link text"/>

      <LANGINFO lang="DE" label="Verweis-Text"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

</CMS_MODULE>

Link Ausgabekanal:

$CMS_IF(!lt_number.isEmpty())$

     <a href="tel:$CMS_VALUE(lt_number.replace(" ", ""))$" class="phone">$CMS_VALUE(lt_number)$</a>

$CMS_END_IF$

Ergebnis:

<a href="tel:0162-2808551" class="phone">0162-2808551</a>

Das sollte doch die gewünschte Ausgabe sein.

Viele Grüße

Thorsten Marx

0 Kudos

Hallo,

ich glaube, ich konnte das Problem eingrenzen: Es tritt nur in Absatzvorlagen auf, die in einer Seite eingebunden werden.

Also:

- in einem DOM im Formular einer Seitenvorlage -> funktioniert

- in einer LINKLIST im Formular einer Absatzvorlage -> funktioniert

- in einem DOM im Formular einer Absatzvorlage -> funktioniert nicht

Beispiel:

Standard-Teaser-Absatzvorlage mit Text, DOM und LINKLIST. Die Verweisvorlage funktioniert in der LINKLIST, die Ausgabe ist wie erwartet. Ein Link, der im DOM eingegeben wird,erzeugt jedoch die falsche Ausgabe.

Zusatzinfo:

Wir binden die Absätze in der Seitenvorlage mit $CMS_RENDER(template:"WEBeditInplaceBody", name:"content")$ ein, um WebEdit zu ermöglichen. Vielleicht/wahrscheinlich liegt es daran?

Viele Grüße

Ingmar Puschnig

0 Kudos

Hallo,

am $CMS_RENDER()$ sollte es eigentlich nicht liegen, das ist eine normale Methode um WebEdit zu integrieren.

Ich habe versucht das Problem nachzustellen, allerdings kann ich das Problem nicht reproduzieren.

Welche FirstSpirit Version nutzen Sie?

Könnten Sie ein kleines Beispielprojekt anhängen?

Viele Grüße

Rouven Broszeit

0 Kudos

Hallo noch einmal,

das Problem wurde wahrscheinlich dadurch verursacht, dass ich den DOM-Text falsch ausgegeben hatte. Im Ausgabekanal des Teasers hatte ich folgendes geschrieben:

...

$CMS_IF(!stDomText.isEmpty())$

     $CMS_RENDER(script:"parse_script", domText:stDomText.toText(true))$

$CMS_END_IF$

...

Das Skript hat die Aufgabe, den vom Editor eingegebenen Text noch etwas zu verarbeiten. Es erwartet einen String, allerdings gibt stDomText.toString() nur die Default-Ausgabe für ein Objekt zurück. Daher hatte ich toText(true) verwendet. Dies hat vermutlich die Link-Ausgabe zerstört.

Nun habe ich die Ausgabe angepasst, indem der DOM-Text zunächst in eine temporäre Variable ausgegeben wird:

...

$CMS_SET(temp)$

     $CMS_VALUE(stDomText)

$CMS_END_SET$

$CMS_IF(!stDomText.isEmpty())$

     $CMS_RENDER(script:"parse_script", domText:temp.toString())$

$CMS_END_IF$

...

Diese Methode funktioniert soweit.

Viele Grüße

Ingmar Puschnig

0 Kudos