Hewera-Harz
Returning Observer

Probleme mit Verweisvorlagen in Inline Tabellen im Dom Texteditor

Hallo Zusammen,

seid dem Update auf die Version 5.2 (Version Server: 5.2.212.71463) haben wir Probleme mit Verweisvorlagen (generell mit allen) bei Inline Tabellen innerhalb der Eingabekomponente CMS_INPUT_DOM.

Es wurde in den Vorlagen sonst nichts umgestellt und vorher hat alles wunderbar funktioniert.

Die Auswirkung ist, dass nach dem Einfügen eines Links per Verweisvorlage innerhalb einer Inline Tabelle, der Texteditor darauf die Fehlermeldung "Text: Der Editor darf nicht leer sein!" anzeigt.

Zum Teil lässt sich die Seite dann aber trotzdem speichern und freigeben (beim ersten Mal nach der Meldung). Bei wiederholter Bearbeitung ist dann aber Schluss mit lustig und das System meldet "Die Operation konnte nicht durchgeführt werden, da noch fehlerhafte Eingaben vorliegen. Bitte korrigieren Sie diese Fehler."

Was ja bei einem leeren Editorfeld, für das allowEmpty="no" festgelegt wurde, nicht verwundert würde. Das kuriose ist aber, dass das Feld nicht leer ist.

Und noch kurioser ist, dass in dem Zusammenhang auch ein Überschriftenfeld als leer gekennzeichnet wird, das seperat vom Dom Texteditor vorhanden ist und in dem sich ebenfalls Inhalt befindet.

Mist ist auch, dass das bei gepflegen Seiten bzw. gepflegten Texteditor Feldern passiert, wenn man diese in Bearbeitung nimmt, um Änderungen einzupflegen.

Ich habe nach einigen Tests mit unterschiedlichen Absatzvorlagen, Verweisvorlagen und Projekten, wobei immer das gleiche Problem auftritt, den Eindruck, dass es sich hierbei um einen Bug handelt.

Hat jemand ähnliche Probleme?

Grüße

Petra Hewera-Harz

Als Beispiel:

Die Eingabekomponenten der Absatzvorlage:

<CMS_INPUT_TEXT

    name="st_ueberschrift"

    allowEmpty="no"

    convertEntities="quote"

    hFill="yes"

    singleLine="no"

    useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Überschrift" description="Bitte geben Sie hier die Überschrift ein."/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_DOM

    name="st_text"

    allowEmpty="no"

    enableImport="yes"

    hFill="yes"

    italic="yes"

    listConfig="style:Listenart[1:Bullet|2:Nummeriert],Textfarbe[color]"

    rows="10"

    table="yes"

    useLanguages="no">

    <FORMATS>

      <TEMPLATE name="p"/>

      <TEMPLATE name="p_center"/>

      <TEMPLATE name="p_block"/>

      <TEMPLATE name="h2"/>

      <TEMPLATE name="h3"/>

      <TEMPLATE name="h4"/>

      <TEMPLATE name="nbsp"/>

    </FORMATS>

    <LANGINFOS>

      <LANGINFO lang="*" label="Text" description="Bitte geben Sie hier den Text ein."/>

    </LANGINFOS>

    <LINKEDITORS>

      <LINKEDITOR name="text_bild"/>

      <LINKEDITOR name="datei"/>

      <LINKEDITOR name="textlink_extern"/>

      <LINKEDITOR name="textlink_intern"/>

    </LINKEDITORS>

  </CMS_INPUT_DOM>

Die html Ausgabe der Absatzvorlage:

<div class="TextBildContainer$CMS_VALUE(st_abstandshalter,default:"")$">

          $CMS_IF(!st_ueberschrift.isEmpty)$<h2>$CMS_VALUE(st_ueberschrift)$</h2>$CMS_END_IF$

          $CMS_IF(!st_text.isEmpty)$$CMS_VALUE(st_text)$$CMS_END_IF$

</div>

Die Eingabekomponenten der Verweisvorlage:

<CMS_MODULE>

  <CMS_INPUT_TEXT name="lt_linktext" allowEmpty="no" convertEntities="quote" hFill="yes" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="Linktext" description="Bitte geben Sie hier den Linktext ein."/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_GROUP>

    <LANGINFOS>

      <LANGINFO lang="*" label="Verlinkung auf"/>

    </LANGINFOS>

    <CMS_INPUT_TEXT name="lt_href" allowEmpty="no" hFill="yes" singleLine="no" useLanguages="no">

      <LANGINFOS>

        <LANGINFO lang="*" label="... anderes Ziel (extern, SSL ...)- bitte inklusive 'http://', 'https://' oder 'mailto:'" description="Bitte geben Sie hier Ihr Linkziel ein."/>

      </LANGINFOS>

    </CMS_INPUT_TEXT>

    <CMS_INPUT_TOGGLE name="lt_linktarget" hFill="yes" singleLine="yes" useLanguages="no">

      <LANGINFOS>

        <LANGINFO lang="*" label="Linkziel in neuem Fenster öffnen" description=""/>

      </LANGINFOS>

      <OFF>

        <LANGINFO lang="*" label="Gleiches Fenster"/>

      </OFF>

      <ON>

        <LANGINFO lang="*" label="Neues Fenster"/>

      </ON>

    </CMS_INPUT_TOGGLE>

  </CMS_GROUP>

</CMS_MODULE>

Die html Ausgabe Verweisvorlage:

<a href="$CMS_IF(!lt_href.isEmpty)$$CMS_VALUE(lt_href.convert2)$$CMS_END_IF$"$CMS_IF(null != lt_linktarget && lt_linktarget)$ target="_blank"$CMS_END_IF$>$CMS_IF(!lt_linktext.isEmpty)$$CMS_VALUE(lt_linktext)$$CMS_END_IF$</a>

Zur Info für alle, die dieses Problem ebenfalls haben:

Ich habe dieses Problem an den Helpdesk gemeldet und folgende Antwort erhalten:


Hallo Frau Hewera-Harz,

Vielen Dank für die präzise Fehlerbeschreibung.
Anhand dieser konnte ich das Problem hier lokal reproduzieren und habe es unter der internen ID 182996 als Fehler aufgenommen.

Lösung: Verwenden Sie anstelle der alten, nicht mehr empfohlen Pflichtfeld Definition über allowEmpty Regeln.
Für die beiden Eingabekomponenten des Absatz sehen die Regeln folgendermaßen aus, um das selbe Ergebnis zu erreichen (allowEmpty="no" muss dafür aber aus der Definition der Eingabekomponenten entfernt werden)


<RULE>
<WITH>
<NOT>
<AND>
<PROPERTY name="EMPTY" source="st_ueberschrift"/>
</AND>
</NOT>
</WITH>
<DO>
<VALIDATION scope="SAVE">
<PROPERTY name="VALID" source="st_ueberschrift"/>
<MESSAGE lang="*" text="Please insert the headline!"/>
<MESSAGE lang="DE" text="Bitte geben Sie die Überschrift ein!"/>
</VALIDATION>
</DO>
</RULE>
<RULE>
<WITH>
<NOT>
<AND>
<PROPERTY name="EMPTY" source="st_text"/>
</AND>
</NOT>
</WITH>
<DO>
<VALIDATION scope="SAVE">
<PROPERTY name="VALID" source="st_text"/>
<MESSAGE lang="*" text="Please insert the textbody!"/>
<MESSAGE lang="DE" text="Bitte geben Sie einen Inhalt ein!"/>
</VALIDATION>
</DO>
</RULE>

Hinweis: Sie können über Regeln nicht nur Pflichtfelder für das Speichern (wie bei allowEmpty) definieren, sondern auch beispielsweise Pflichtfelder, die die Freigabe verhindern (scope="RELEASE") oder Sie können Eingabekomponenten mit regelgesteuerten Hinweisen versehen (scope="INFO").

0 Kudos
0 Replies