From:Guido Flohr
Date: 6.8.03 17:52
Subject:Re: i6 Problem mit #IF in FlexModul
Reply-To:Imperia-Mailingliste
Hallo Jörg,

Jörg Halitschke wrote:
> -----<i-D>------------
> Hallo Guido,
>
>> mach, dass du nach Hause kommst. Ist Feierabend. ;-)
> und selbst?! ;)

Hopfen und Malz verloren. ;-)


> In der Tat, die Werte stammen wohl aus den gespeicherten META-Daten
> der Seite und nicht aus meiner #IF-Abfrage.
>
> Ok, also kann ich das Feld so nicht überprüfen. Der Plan ist
> nämlich den Redakteur per Workflow wieder auf den Edit-Schritt
> zurückzuführen, wenn er in das Feld zu lange Eingaben macht.
> Dazu wollte ich das Feld 'toLong' Abfragen.
> Gibt es eine irgendeine andere Möglichkeit beim Speichern der Seite
> diese #IF-Abfrage auszuführen?

Du musst ja nur die Vorbelegung umgehen. Das geht indem du das an 
Imperia vorbei machst:

<input type="hidden" name="too_long" value="0" />

Weil der Name jetzt »too_long« und nicht »IMPERIA:too_long« ist, 
ignoriert Imperia die Zeile und gibt sie eins zu eins aus.

Problem: Du musst deine eigene Variable von den Instanzen in den 
anderen Flex-Modulen unterscheiden können. Am besten machst du es wie 
Imperia selber:

<input type="hidden" name="too_long_<!--FLEX_INDEX-->_<!--FLEX_ID-->" 
/>

In jeder Flex-Modul-Instanz steht jetzt eine andere Variable drin.

Nicht jubeln. Es funktioniert nämlich überhaupt nicht: Beim Speichern 
führt Imperia gar keinen Code (egal ob Perl oder normale 
Template-Syntax) aus (der Save-Modus bezieht sich auf das Speichern 
der fertigen HTML-Seite *nach* Durchlaufen des Workflows), sondern 
legt lediglich die Formulardaten, die der Browser schickt als 
Meta-Informationen ab.

Was du brauchst, ist ein Edit&Go (Bearbeiten&Weiter) Plug-In statt des 
normalen Edit-Plug-Ins. An den unteren Ausgang (der wird beim 
Abspeichern der Seite durch den Redakteur genommen), baust du eine 
#IF-Abfrage, die die Eingabeüberprüfung vornimmt, und danach evtl. 
noch ein MetaSetter-Plug-In, dass ein Fehlerflag setzt oder 
zurücksetzt.

Das ist nicht unkompliziert, weil du ja etliche Abfragen machen musst 
(für jede Flex-Modul-Instanz eine), dann musst du sicherstellen, dass 
der Redakteur das Fehler-Flag überhaupt zu Gesicht bekommt, alles 
nicht toll.

Mein Vorschlag: Verwende einen Submit-Handler, beim Speichern der 
Seite gehst du dann mit JavaScript die kritischen Felder durch, und 
machst dann ein JavaScript-Alert, wenn eins davon zu lang wurde.

Ciao

Guido
-- 
Imperia AG, Development
Leyboldstr. 10 - D-50354 Hürth - http://www.imperia.de/

Thread (i6 Problem mit #IF in FlexModul)

© 2001, 2002 marchive.pl Christian Lackas

[HOME]   [MARCHIVE]   [INDEX]   [IMPERIA]   [IMPRESSUM]   [DELTA]