Chrepp
Occasional Observer

Template-Name von Element innerhalb FS_CATALOG feststellen

Jump to solution

Ich möchte eine Regel schreiben, die das Formular als nicht valide markiert, wenn ein bestimmtes Template ausgewählt wurde.

Idealerweise sollte diese Regel in etwa so aussehen (so wie hier geht es natürlich nicht):

<RULE>

    <WITH>

        <NOT>

                <PROPERTY name="VALID" source="tt_articles[0].getTemplate().getReferenceName().equals('linktemplate:mag_article')"/>

        </NOT>

    </WITH>

    <DO>

        <VALIDATION scope="SAVE">

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

            <MESSAGE lang="*" text="Falsches Template ausgewählt"/>

        </VALIDATION>

    </DO>

</RULE>

1 Solution

Accepted Solutions

Hallo Christian,

dies ist durchaus möglich. Der Vergleichsoperator CONTAINS ermöglicht für einen Catalog, die ausgewählten Vorlagen an Hand ihrer UIDs abzufragen. Folgende Regel (oder so ähnlich) sollte den Zweck erfüllen:

<RULE>

    <WITH>

        <NOT>

            <CONTAINS source="tt_articles">

                <TEXT>mag_article</TEXT>

            </CONTAINS>

        </NOT>

    </WITH>

    <DO>

        <VALIDATION scope="SAVE">

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

            <MESSAGE lang="*" text="Falsches Template ausgewählt"/>

        </VALIDATION>

    </DO>

</RULE>

Der Operator ist an folgender Stelle in ODFS dokumentiert, allerdings wird Catalog (noch) nicht erwähnt:

http://www.e-spirit.com/odfs52/template-development/rules/comparative-expressions/contains-tag/

Beste Grüße

Stefan

View solution in original post

5 Replies
sglock
I'm new here

Wäre es nicht besser von vornherein nur die gewünschten Templates zu erlauben? Über den <TEMPLATES>-Tag kannst Du ja die auswählbaren Absatzvorlagen eingrenzen.

Chrepp
Occasional Observer

Das ist nur im Beispiel so, damit der Code in der Frage nicht zu komplex wird. Der tatsächliche Anwendungsfall ist so, dass man ein bestimmtes Template nicht nehmen soll, wenn man im FS_CATALOG genau 2 Templates ausgewählt hat.

0 Kudos

Hallo Christian,

generell hätte ich dir die Implementierung eines Validation-Services empfohlen. Soweit ich weiß, ist dies in diesem Fall aber keine Lösung.

Daher vermute ich, dass es bis auf Sebastians Hinweis nicht umsetzbar ist.

Viele Grüße

Michaela

0 Kudos

Hallo Christian,

dies ist durchaus möglich. Der Vergleichsoperator CONTAINS ermöglicht für einen Catalog, die ausgewählten Vorlagen an Hand ihrer UIDs abzufragen. Folgende Regel (oder so ähnlich) sollte den Zweck erfüllen:

<RULE>

    <WITH>

        <NOT>

            <CONTAINS source="tt_articles">

                <TEXT>mag_article</TEXT>

            </CONTAINS>

        </NOT>

    </WITH>

    <DO>

        <VALIDATION scope="SAVE">

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

            <MESSAGE lang="*" text="Falsches Template ausgewählt"/>

        </VALIDATION>

    </DO>

</RULE>

Der Operator ist an folgender Stelle in ODFS dokumentiert, allerdings wird Catalog (noch) nicht erwähnt:

http://www.e-spirit.com/odfs52/template-development/rules/comparative-expressions/contains-tag/

Beste Grüße

Stefan

Hallo Stefan,

das ist genau das, was ich wissen wollte. Danke! Smiley Happy Jetzt muss der Redaktions-Guide doch nicht so streng formuliert werden :smileygrin:

Schöne Grüße

Christian

0 Kudos