bIT_sosswald
Returning Responder

Regeln mit verschachtelten Objektstrukturen

Hallo Community,

wir haben ein Projekt, in dem relativ viele Daten über Datenquellen gepflegt werden. Nun möchten wir eine Absatzvorlage "st_image", die ein Bild inkl Alt-Tag enthält, auch in den Datenquellen verwenden. - Soweit kein Problem...

Da man Datenquelleneinträge nicht wie eine normale Seite als übersetzt markieren kann gibt es dort einen eigenen Toggle "tt_translated" mit dem der Eintrag in der entsprechenden Sprache als übersetzt markiert wird. Dieser Toggle dient als Trigger für Regeln, die direkt auf der entsprechenden Tabellenvorlage definiert sind. - Auch soweit kein Problem.

Wenn ich nun aber die Absatzvorlage "st_image" innerhalb eines FS_Catalog in die entsprechende Tabellenvorlage einfüge, gibt es natürlich kein globales Attribut TRANSLATED mehr, auf das ich in den Regeln der Absatzvorlage prüfen kann.

Wie komme ich aus den Regeln der Absatzvorlage auf den Wert des in der Tabellenvorlage definierten Toggle "tt_translated" um zu prüfen ob der Datensatz in der entsprechenden Sprache als übersetzt markiert ist und damit das Alt-Tag als Pflichtfeld zu markieren?

Anbei ein paar Code-Beispiele:

st_image - Regeln

<RULES>

    <!-- st_image -->

    <RULE>

        <WITH>

            <NOT>

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

            </NOT>

        </WITH>

        <DO>

            <VALIDATION scope="SAVE">

                <PROPERTY name="VALID" source="st_image"/>

                <MESSAGE lang="*" text="This field is mandatory."/>

            </VALIDATION>

        </DO>

    </RULE>

    <RULE>

        <WITH>

            <NOT>

                <AND>

                    <OR>

                        <NOT>

                            <EQUAL>

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

                                <TRUE/>

                            </EQUAL>

                        </NOT>

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

                    </OR>

                    <PROPERTY name="TRANSLATED" source="#global"/>

                    <PROPERTY name="INCLUDED" source="#global"/>

                </AND>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION scope="SAVE">

                <PROPERTY name="VALID" source="st_alt_tag"/>

                <MESSAGE lang="*" text="This field is mandatory."/>

            </VALIDATION>

        </DO>

    </RULE>

    <RULE>

        <WITH>

            <NOT>

                <AND>

                    <GREATER_THAN>

                        <PROPERTY name="LENGTH" source="st_caption"/>

                        <NUMBER>60</NUMBER>

                    </GREATER_THAN>

                    <PROPERTY name="TRANSLATED" source="#global"/>

                </AND>

            </NOT>

        </WITH>

        <DO>

            <VALIDATION scope="SAVE">

                <PROPERTY name="VALID" source="st_caption"/>

                <MESSAGE lang="*" text="Maximum 60 characters are allowed."/>

            </VALIDATION>

        </DO>

    </RULE>

</RULES>

Tabellenvorlage - Formular:

<CMS_MODULE>

  <CMS_GROUP tabs="top">

    <CMS_GROUP>

      <LANGINFOS>

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

      </LANGINFOS>

      <CMS_INPUT_TOGGLE name="tt_translated" hFill="yes" noBreak="no" preset="copy" singleLine="no" useLanguages="yes">

        <LANGINFOS>

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

        </LANGINFOS>

        <OFF>

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

        </OFF>

        <ON>

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

        </ON>

      </CMS_INPUT_TOGGLE>

.....

<FS_CATALOG name="tt_tag_pictute" useLanguages="no">

        <LANGINFOS>

          <LANGINFO lang="*" label="Image" description="Choose the desired image used for the collection tiles."/>

        </LANGINFOS>

        <TEMPLATES type="section">

          <TEMPLATE uid="st_a_image"/>

        </TEMPLATES>

      </FS_CATALOG>

.....

</CMS_MODULE>

Besten Dank schon jetzt für eure Hilfe

Sandro

0 Kudos
3 Replies
sense
Elite Observer

Mit den Regeln bist Du an den Context gebunden in denen Sie verwendet werden.

Die einzige Möglichkeit, die ich hier sehe ist über den ValueService zu gehen und Dir den entsprechenden Wert zu holen und dann weiterzuverarbeiten, allerdings hat auch der ValueService ein paar Limitierungen hinsichtlich der Eingabekomponenten.

0 Kudos
pavone
I'm new here

Hallo Sandro,

benötigst Du noch weitere Hilfe oder hat Dir die Svens Antwort bereits geholfen? In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.

Viele Grüße

Tim

0 Kudos

Das heißt also eigentlich, dass man Regeln auf Datensätzen in Bezug auf Übersetzung vergessen kann, weil die Implementierung unzureichend ist.

Der ganze Gedanke, Pressemitteilungen über Datensätze abzubilden, scheitert dann doch, wenn man den Redakteuren keine äquivalente Fehlerbehandlung anbieten kann, was offensichtlich nicht der Fall ist.

Gibt es eine Plan seitens e-Spirit, das Problem in den Griff zu bekommen?

Ansonsten sind Datenquellen zur Contentpflege nicht wirklich zu gebrauchen. Wie soll man einem Kunden vermitteln, dass es keine konsistente Fehlerbehandlung gibt?

0 Kudos