Also ich habe sozusagen zwei Fliegen mit einer Klappe geschlagen:
1. Individuelle Model-Validierung (inspiriert von http://blog.teamgeist-medien.de - "Dynamische Validierung von Models je nach Formularauswahl") 2. Vergleich bestimmter Properties (eine Art sys_history für eigene Extensions mit Änderungen über das Frontend) Ich versuche mal kurz meine Lösung aufzuzeigen: Zu #1: Gehen wir davon aus ich habe ein Model "MyUser" (extends feuser) - In diesem Model werden alle getter und setter sowie Variablen-Deklaration OHNE jegliche Validierung (außer es wird von einem bestimmten Feld immer eine Validierung benötigt) gesetzt. Für die Registrierung habe ich ein Model "MyUserCreate" (extends MyUser). Hier setze ich nur noch die Variablen-Deklarationen MIT meinen Validierungen welche ich bei der Registrierung benötige (z.B. Username, Email, FirstName, LastName, etc.) Für, zum Beispiel, ein Profil-Update habe ich ein Model "MyUserUpdate" (extends MyUser). Da der Nutzer zum Beispiel nur noch seine E-Mail Adresse und seinen Vornamen ändern kann setze ich in diesem Model nur noch eine Variablen-Deklaration MIT Validierung für email und firstName. Zu #2: Zusätzlich habe ich folgendes gemacht: - Da ich eh für einzelne Aktionen (leider) einzelne Models setze (sofern nötig!) setze ich dort auch gleich eine Variable/Array mit $fieldlist - Bei einem Profilupdate könnte das zum Beispiel "email, first_name" sein. Beim Update des Datensatzes hole ich mir das aktuelle Objekt und das "zukünftige Objekt" und vergleiche ausschließlich die in $fieldlist angegebenen Properties. Leider etwas umständlich aber man könnte auch in dem "MyUser" Model bereits ein "Standard-Set" an Werten angeben welche verglichen werden sollen. - In dem Model "MyUser" habe ich eine zusätzliche Variable (+setter) gesetzt mit "tableName = 'fe_users';" - Dies ermöglicht mir beim späteren Vergleich (vorher/nachher) bzw. beim Schreiben in die DB zusätzlich zur RecUid, fieldlist und historyData auch den TableName zu setzen (sofern man unterschiedliche Tabellen/Objekte) in einer allgemeinen Logging-Tabelle ablegen möchte. Ich hoffe ich konnte das einigermaßen korrekt rüber bringen. Vielleicht gibt es hier und da etwas zu verbessern? -- LG, Mario _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german