nil_mon
Occasional Observer

Ein- und Ausblenden mit CMS_INPUT_RADIOBUTTON und Rules

Jump to solution

Moin moin,

Ich will mit Radiobuttons Elemente  VISIBLE und nicht VISIBLE gestalten. Ich habe mich diesen beiden Themen schon auseinander gesetzt, nur leider bringen mich diese Lösungen nicht zum gewünschten Ziel.

Re: Regeln für RadioButtons

Tabs mittels CMS_INPUT_RADIOBUTTON ein-/ausblenden

Ich habe eine CMS_INPUT_RADIOBUTTON Komponente mit drei Werten:

      <CMS_INPUT_RADIOBUTTON name="pt_pagetitle_vid_pic_text" gridWidth="3" hFill="yes" useLanguages="yes">

            <ENTRIES>

              <ENTRY value="colour">

                <LANGINFOS>

                  <LANGINFO lang="*" label="Colour"/>

                  <LANGINFO lang="DE" label="Farbe"/>

                </LANGINFOS>

              </ENTRY>

              <ENTRY value="picture">

                <LANGINFOS>

                  <LANGINFO lang="*" label="Picture"/>

                  <LANGINFO lang="DE" label="Bild"/>

                </LANGINFOS>

              </ENTRY>

              <ENTRY value="video">

                <LANGINFOS>

                  <LANGINFO lang="*" label="Video"/>

                </LANGINFOS>

              </ENTRY>

            </ENTRIES>

            <LANGINFOS>

              <LANGINFO lang="*" label="Background rendering"/>

              <LANGINFO lang="DE" label="Hintergrunddarstellung"/>

            </LANGINFOS>

          </CMS_INPUT_RADIOBUTTON>

Mit dieser will ich 4 Elemente Ansteuern zum Sichtbar und Unsichtbar machen.

          <CMS_INPUT_COMBOBOX

            name="pt_pagetitle_background_colour"

            allowEmpty="yes"

            hFill="yes"

            singleLine="no"

            useLanguages="yes">

            <ENTRIES>

              <ENTRY value="dark">

                <LANGINFOS>

                  <LANGINFO lang="*" label="Black / Dark"/>

                  <LANGINFO lang="DE" label="Schwarz / Dunkel"/>

                </LANGINFOS>

              </ENTRY>

              <ENTRY value="light">

                <LANGINFOS>

                  <LANGINFO lang="*" label="White / Light"/>

                  <LANGINFO lang="DE" label="Weiß / Hell"/>

                </LANGINFOS>

              </ENTRY>

            </ENTRIES>

            <LANGINFOS>

              <LANGINFO lang="*" label="Backgroundcolour pagetitle"/>

              <LANGINFO lang="DE" label="Hintergrundfarbe des Seitentitels"/>

            </LANGINFOS>

          </CMS_INPUT_COMBOBOX>

          <FS_REFERENCE name="pt_pagetitle_backgroud_picture">

            <LANGINFOS>

              <LANGINFO lang="*" label="Select Backgroundpicure"/>

            </LANGINFOS>

          </FS_REFERENCE>

          <CMS_INPUT_LINK name="pt_pagetitle_background_video" hFill="yes" useLanguages="yes">

            <LANGINFOS>

              <LANGINFO lang="*" label="Background media"/>

              <LANGINFO lang="DE" label="Hintergrundmedium"/>

            </LANGINFOS>

            <LINKEDITORS>

              <LINKEDITOR name="background_picture_mediastore"/>

              <LINKEDITOR name="background_video_mediastore"/>

              <LINKEDITOR name="background_youtube"/>

              <LINKEDITOR name="background_vimeo"/>

            </LINKEDITORS>

          </CMS_INPUT_LINK>

          <CMS_INPUT_TOGGLE name="pt_pagetitle_parallax" type="radio" hFill="yes" singleLine="no" useLanguages="yes">

            <LANGINFOS>

              <LANGINFO lang="*" label="Parallax effect enabled"/>

              <LANGINFO lang="DE" label="Parallaxeneffekt aktiviert"/>

            </LANGINFOS>

            <OFF>

              <LANGINFO lang="*" label="No"/>

              <LANGINFO lang="DE" label="Nein"/>

            </OFF>

            <ON>

              <LANGINFO lang="*" label="Yes"/>

              <LANGINFO lang="DE" label="Ja"/>

            </ON>

          </CMS_INPUT_TOGGLE>


Das tue ich mit folgenden Regeln:

<ON_EVENT>

     <IF>

          <EQUAL>

               <PROPERTY name="ENTRY" source="pt_pagetitle_vid_pic_text"/>

               <TEXT>colour</TEXT>

          </EQUAL>

     </IF>

     <WITH>

          <TRUE/>

     </WITH>

     <DO>

          <PROPERTY name="VISIBLE" source="pt_pagetitle_background_colour"/>

          <NOT>

               <PROPERTY name="VISIBLE" source="pt_pagetitle_backgroud_picture"/>

               <PROPERTY name="VISIBLE" source="pt_pagetitle_background_video"/>

               <PROPERTY name="VISIBLE" source="pt_pagetitle_parallax"/>

          </NOT>

     </DO>

</ON_EVENT>

<!-- If picture is selected only show form components for picutre -->

<ON_EVENT>

     <IF>

          <EQUAL>

               <PROPERTY name="ENTRY" source="pt_pagetitle_vid_pic_text"/>

               <TEXT>picture</TEXT>

          </EQUAL>

     </IF>

     <WITH>

          <TRUE/>

     </WITH>

     <DO>

          <PROPERTY name="VISIBLE" source="pt_pagetitle_background_picture"/>

          <PROPERTY name="VISIBLE" source="pt_pagetitle_parallax"/>

          <NOT>

               <PROPERTY name="VISIBLE" source="pt_pagetitle_background_video"/>

               <PROPERTY name="VISIBLE" source="pt_pagetitle_background_colour"/>

          </NOT>

     </DO>

</ON_EVENT>

<!-- If video is selected only show form components for videos -->

<ON_EVENT>

     <IF>

          <EQUAL>

               <PROPERTY name="ENTRY" source="pt_pagetitle_vid_pic_text"/>

               <TEXT>video</TEXT>

          </EQUAL>

     </IF>

     <WITH>

          <TRUE/>

     </WITH>

     <DO>

          <PROPERTY name="VISIBLE" source="pt_pagetitle_background_video"/>

          <PROPERTY name="VISIBLE" source="pt_pagetitle_parallax"/>

          <NOT>

               <PROPERTY name="VISIBLE" source="pt_pagetitle_background_picture"/>

               <PROPERTY name="VISIBLE" source="pt_pagetitle_background_colour"/>

          </NOT>

     </DO>

</ON_EVENT>

Der Wert für Farbe ist in der Formulardefinition Vordefiniert als Standardwert.

Das Verhalten meines Formulares sieht nun wie folgt aus:

- Ist "Farbe" ausgewählt, wird die Combobox für Farben angezeigt.

- Wähle ich nun "Bild" aus, wird nur das Feld "Parallaxeneffekt aktiviert" angezeigt.

- Gehe ich auf "Video", wird werden Hintergrundmedium und Parallaxeneffekt aktiviert angezeigt.

- Gehe ich direkt von "Farbe" auf "Video" werden die Combobox für Farben,  Hintergrundmedium und Parallaxeneffekt aktiviert angezeigt.

- Setze ich den Standardwert auf "Bild" werden beim Laden des Formulares das Auswahlfeld für Bilder angezeigt und Parallaxeneffekt aktiviert. Gehe ich rüber auf "Video" wird die FS_REFERENCE weiter angezeigt.

Ich habe schon soweit aus den verlinkten Tickets verstanden, dass die Regeln alle Vereinzelt geprüft werden, jedoch setze ich wie im Eintrag Tabs mittels CMS_INPUT_RADIOBUTTON ein-/ausblenden ein <IF> drumherum.

Wie muss ich die Regeln richtig gestalten, damit sie Funktioniert?

Beste Grüße aus Hamburg

Nils Knudsen

0 Kudos
1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

Hallo Nils,

hier ist ein einfacher Tippfehler Schuld:

Mal heißt es pt_pagetitle_backgroud_picture und mal pt_pagetitle_background_picture

Es fehlt einfach an 2 Stellen das "n" (in der Eingabekomponente und einer Regel).

Um solchen Problemen auf die Spur zu kommen hilft es, sich im SA das Log anzeigen zu lassen (Hilfe=>Logging öffnen).

Dort erscheint dann als Warnung

WARN  06.09.2018 17:42:57.286 (de.espirit.firstspirit.forms.rules.Rule): There is no fact 'VISIBLE' for item 'pt_pagetitle_background_picture'!

Viele Grüße

Michael

View solution in original post

0 Kudos
1 Reply
mbergmann
Crownpeak employee

Hallo Nils,

hier ist ein einfacher Tippfehler Schuld:

Mal heißt es pt_pagetitle_backgroud_picture und mal pt_pagetitle_background_picture

Es fehlt einfach an 2 Stellen das "n" (in der Eingabekomponente und einer Regel).

Um solchen Problemen auf die Spur zu kommen hilft es, sich im SA das Log anzeigen zu lassen (Hilfe=>Logging öffnen).

Dort erscheint dann als Warnung

WARN  06.09.2018 17:42:57.286 (de.espirit.firstspirit.forms.rules.Rule): There is no fact 'VISIBLE' for item 'pt_pagetitle_background_picture'!

Viele Grüße

Michael

0 Kudos