Prinzessin
I'm new here

Regel um Text in weitere GUI-Elemente zu übernehmen

Jump to solution

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?

0 Kudos
1 Solution

Accepted Solutions

Das heißt, dass die zweite Regel richtig wäre?

Ich habe sie nun angepasst:

<ON_EVENT>

        <IF>

            <AND>

                <NOT>

                    <PROPERTY source="st_headline" name="FOCUS"/>

                </NOT>

                <PROPERTY source="st_alttext" name="EMPTY"/>

            </AND>

        </IF>

        <WITH>

            <PROPERTY source="st_headline" name="VALUE"/>

        </WITH>

        <DO>

            <PROPERTY source="st_alttext" name="VALUE"/>

        </DO>

    </ON_EVENT>

Leider wieder ohne Erflolg 😞

View solution in original post

0 Kudos
8 Replies
StefanSchulz
I'm new here

Hallo,

ein spezifischer Ausführungszeitpunkt wird ja schon benötigt, woher sonst soll das System wissen, ob der Wert übernommen werden soll oder nicht. Eventuell hilft die Eigenschaft FOCUS hier weiter und kann neben der Leer-Prüfung als Bedingung herhalten. Also NOT FOCUS auf st_headline und EMPTY auf st_alttext.

Grüße

Stefan

0 Kudos

Hallo, danke für die schnelle Antwort.

Ich habe es nun so getestet:

<ON_EVENT>

        <IF>

            <AND>               

                <PROPERTY source="st_alttext" name="EMPTY"/>

            </AND>

        </IF>

        <WITH>

            <AND>

                <NOT>

                    <PROPERTY source="st_headline" name="FOCUS"/>

                </NOT>

                <PROPERTY source="st_headline" name="VALUE"/>

            </AND>

        </WITH>

        <DO>

            <PROPERTY source="st_alttext" name="VALUE"/>

        </DO>

    </ON_EVENT>

Ergebnis: So wird das Feld st_alttext überhaupt nicht mehr gefüllt.

0 Kudos

So, wird wieder nur der erste Buchstabe in st_alttext übernommen:

<!-- Bildtitel auch mit Alternativtext vorbelegen -->

    <ON_EVENT>

        <IF>

            <AND>

                <PROPERTY source="st_headline" name="FOCUS"/>

                <PROPERTY source="st_alttext" name="EMPTY"/>

            </AND>

        </IF>

        <WITH>

            <PROPERTY source="st_headline" name="VALUE"/>

        </WITH>

        <DO>

            <PROPERTY source="st_alttext" name="VALUE"/>

        </DO>

    </ON_EVENT>

0 Kudos

Und so passiert garnichts (der Text wird auch nicht mehr übernommen):

<!-- Bildtitel auch mit Alternativtext vorbelegen -->

    <ON_EVENT>

        <IF>

            <PROPERTY source="st_alttext" name="EMPTY"/>

        </IF>

        <WITH>

            <AND>

                <PROPERTY source="st_headline" name="FOCUS"/>

                <PROPERTY source="st_headline" name="VALUE"/>

            </AND>

        </WITH>

        <DO>

            <PROPERTY source="st_alttext" name="VALUE"/>

        </DO>

    </ON_EVENT>

0 Kudos

Ja, beim ersten Versuch erzeugst du mit dem WITH-Teil ein Boolean, dessen Wert kannst/willst du ja nicht im Textfeld haben Smiley Wink

Beim zweiten Versuch fehlt das NOT beim FOCUS. Der Wert soll ja nur übernommen werden, wenn der FOCUS nicht mehr in der Komponente liegt.

Gruß

Stefan

0 Kudos

Das heißt, dass die zweite Regel richtig wäre?

Ich habe sie nun angepasst:

<ON_EVENT>

        <IF>

            <AND>

                <NOT>

                    <PROPERTY source="st_headline" name="FOCUS"/>

                </NOT>

                <PROPERTY source="st_alttext" name="EMPTY"/>

            </AND>

        </IF>

        <WITH>

            <PROPERTY source="st_headline" name="VALUE"/>

        </WITH>

        <DO>

            <PROPERTY source="st_alttext" name="VALUE"/>

        </DO>

    </ON_EVENT>

Leider wieder ohne Erflolg 😞

0 Kudos

Hab's gerade lokal ausprobiert. Funktioniert wunderbar. Sobald st_headline den Fokus verliert, wird der Wert übernommen. Mehr kann ich von hier aus wohl nicht tun.

0 Kudos

Ich habe das Projekt nochmal neu geladen und direkt in einem Absatz im Inhaltsbereich getestet. Nun funktioniert es auch.

Vielen Dank für die schnelle Hilfe!

0 Kudos