Hallo,
ich habe in einem CMS-Template drei Eingabefelder:
- st_headline
- st_alttext
- st_title
<CMS_INPUT_TEXT
name="st_headline"
allowEmpty="yes"
convertEntities="standard"
hFill="yes"
singleLine="no"
useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Teaser headline" description="Insert the headline."/>
<LANGINFO lang="DE" label="Teaser Überschrift" description="Bitte tragen Sie eine Teaser-Überschrift ein."/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_TEXT name="st_alttext" allowEmpty="yes" hFill="yes" singleLine="no" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Alternative text for picture" description="Please enter a text that appears if the picture cannot be displayed."/>
<LANGINFO lang="DE" label="Alternativtext zu Bild" description="Bitte tragen Sie hier einen Text ein. Er erscheint, wenn das Bild nicht angezeigt werden kann."/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_TEXT name="st_title" hFill="yes" singleLine="no" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Title for picture" description="Please enter the picture title."/>
<LANGINFO lang="DE" label="Bildtitel" description="Bitte tragen Sie hier einen Titel ein."/>
</LANGINFOS>
</CMS_INPUT_TEXT>
Über eine Regel habe ich definiert, dass der Wert von st_headline in st_alttext übernommen wird und von st_alttext in st_title:
<RULES>
<!-- Bildtitel auch mit Alternativtext vorbelegen -->
<ON_EVENT>
<WITH>
<PROPERTY source="st_headline" name="VALUE"/>
</WITH>
<DO>
<PROPERTY source="st_alttext" name="VALUE"/>
</DO>
</ON_EVENT>
<!-- Bildtitel auch mit Alternativtext vorbelegen -->
<ON_EVENT>
<WITH>
<PROPERTY source="st_alttext" name="VALUE"/>
</WITH>
<DO>
<PROPERTY source="st_title" name="VALUE"/>
</DO>
</ON_EVENT>
</RULES>
Das Feld st_alttext kann auch mit einem anderen Wert überschrieben werden. Dieser Wert wird dann in st_title übernommen, was korrekt ist.
Speichere ich aber dann die Eingaben, steht in allen drei Feldern danach wieder der Text von st_headline darin.
Ich habe schon versucht die Regel mit einem <IF> zu erweitertn und das Feld st_alttext zu prüfen, sodass nur der Text von st_headline übernommen wird, wenn st_alttext leer ist. Das funktioniert aber nicht, denn es wird nur der erste Buchstabe von st_headline in st_alttext übernommen. Danach ist st_alttext ja gefüllt und somit trifft die Prüfung auf "leer" nicht mehr zu.
Wie kann ich dieses Problem lösen?