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]