Search the FirstSpirit Knowledge Base
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>
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
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.
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.
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
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! Jetzt muss der Redaktions-Guide doch nicht so streng formuliert werden :smileygrin:
Schöne Grüße
Christian