Plugin bei Dispatcher registrieren
- togo
- Erledigt
-
-
Weiß in diesem Fall auch nicht genau und hängt ja auch von der Umgebung ab. Models (oder deren extended parents) bieten oft die Methode
die dann die Plugins gleich abwickeln.
Also tät ich mal diese Zeilen aus so einer probieren und halt mit gewünschter Plugin-Gruppe statt 'content':
https://github.com/joomla/joom…l/FormModel.php#L314-L321
Vielleicht reicht ja auch Zeile 315. Blick da auch jedesmal wieder nicht durch und muss ausprobieren, wenn ich mit eigenen Plugin-Gruppen/Ordnern arbeite.
-
Danke,
werde ich ausprobieren. -
Klappt so leider nicht.
Vielleicht ist mein Ansatz auch falsch.
Ich bin dabei ein Plugin zu schreiben, mit dem registrierte Benutzer Ihre Privaten Daten vor externer Veränderung, z.B. im Backend, schützen können.
Bisher habe ich es so gelöst, das ich je nach Status der Einstellung eine Javascript Funktion generiert habe, die entsprechende Felder disabled|readonly oder hidden gesetzt hat.
Ich würde den Status aber lieber im Form Object selber festlegen. -
Warum dann nicht ein Content oder Systemplugin? Das ist der "Standard" um Formulare zu manipulieren.
-
Weil mir dann im Profil des Benutzers die Möglichkeit zum aktivieren deaktivieren fehlt oder denke ich da zu kompliziert?
-
Alle Joomla-Formulare (JForm-Formulare) durchlaufen automatisch onContentPrepareForm beim Laden des Formulars und beim Senden des Formulars. Das Benutzer-Profil-Formular ist so eines. Du kannst nahezu alles dazuzaubern und manipulieren, verbieten usw. wie du willst.
Auf der andern Seite frage ich mich allerdings, warum du dann nicht gleich ein Eigenes Feld (com_fields) für diese Einstellung verwendest. Erspart ja schon mal die Aktion Formularfelder selber hinzuzubasteln (obwohl ich das selbst nach wie vor oft mache).
In onContentPrepareForm fragst dann im Backend den Wert dieses Feldes ab und setzt ggf. die Felder mit JForm-Methoden auf disabled (oder war's readonly?) oder hidden, die dort nicht verändert werden dürfen.
Weiß halt nicht, was du mit "privaten Feldern" meinst. Soweit ich mich erinnere kann man bei Verwendung von Eigenen Feldern (com_fields) auch einstellen, dass sie im Backend gar nicht angezeigt werden. Wenn du das Plugin User-Profile (oder wie's heißt) verwendest, geht das wohl nicht (weiß nicht gewiss).
Kurz: Brauchst "nur" ein eigenes Plugin (Content oder System), das auf den richtigen Moment lauscht.
-
Mit privaten Feldern meine ich alle Felder die im User Formular vorkommen können, außer z.B. Gruppen, System-E-Mails erhalte, Benutzerstatus, Passwortzurücksetzung fordern und von Administratoren manipuliert werden könnten.
Von einigen Benutzern in unseren Forum wurde eine Möglichkeit gewünscht, die externe Manipulation von Adressen etc, zu unterbinden. Nicht das es je passiert ist, aber es besteht halt die Möglichkeit.
Das Plugin ist ein Fields Plugin (com_field)in diesem Plugin wird onContentPrepareForm nicht getriggert.
Ich glaube ich werde die von mir gewünschte Funktionalität in 2 Plugins trennen. Das FieldsPlugin für das Einstellen und ein Systemplugin für die Manipulation der Formular Felder .