[Modul] Frontenduser Registrierung/Edit/Passwort

Alles rund um Module und Plugins in CONTENIDO 4.10.
Antworten
homtata
Beiträge: 1017
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

[Modul] Frontenduser Registrierung/Edit/Passwort

Beitrag von homtata » Fr 26. Apr 2019, 15:17

Hallo zusammen,

hier das für 4.10.x passende Modulpaket zur Frontenduser(FEU)-Selbstregistrierung:
- FEU-Formular und Handler zur Selbstregistrierung
- Modul zur Überarbeitung der FEU-Daten durch den FEU selbst
- Kennwort-vergessen-Modul
- Kennwort-ändern-Modul

Ich habe ein Paket angehängt, bitte alles erst entpacken und dann
- die Module hochladen und synchronisieren
- alles in /cms in die gleichlautenden Unterordner kopieren (benötigte Funktionen, Bilder usw.)
- alles in /contenido in die gleichlautenden Unterordner kopieren (das sind die FEU-Plugins für die zusätzlichen Datensatzfelder, damit diese im Backend auch editiert werden können)

Dann bitte für jedes neue Modul zunächst eine Vorlage anlegen und je einem neuen Artikel zuweisen.
In den SPRACHUNABHÄNGIGEN Mandanteneinstellungen folgende Werte hinzufügen:
- global | sender-email | (als Wert bitte unbedingt eine valide Absendermail eintragen)
- newsletter | frontendlink | enabled

In den SPRACHABHÄNGIGEN Mandanteneinstellunge für jede Sprache folgende Wert hinzufügen:
- newsletter | idcatart | (als Wert dann die idcatart des Artikels, der das Handler-Modul enthält)

Falls noch nicht aktiviert, das Newsletter-Plugin aktivieren und dort eine Gruppe mit beliebigem Namen anlegen und diese per Klick zur "Standard-Gruppe" machen.

Ich muss warnen: ich habe diese Module jetzt relativ unbearbeitet so hier zusammengefasst, wie ich sie bei einem Kunden hochangepasst im Einsatz habe. Daher passen diese so nicht auf jeden Einsatzzweck und müssen ggf. nochmals weitgehend angepasst werden. Die gute Seite ist: Es ist mehrsprachenfähig (hierzu bitte die Moduleinleitungen im Outputcode lesen) und hat sogar einen "godmode", dazu später mehr.
Außerdem ist wie bei der Ur-4.8er-Version das Newslettermodul komplett angedockt. Der User wird in allen Sprachen auch im Newsletter angelegt. Die von ihm in seinem Profil jeweils gewählte Sprache wird beim Registrieren/Editieren als aktive Newslettersprache zugewiesen.
Damit dies sauber funktioniert, müssen Arrays in den Modulen zur Verfügung stehen, die die gewünschten Sprachen beinhalten; die Module ziehen sich NICHT selbständig die in Contenido angelegten Sprachen (das war in diesem Projekt unpraktisch). Für jede Sprache wiederum müssen bestimmte Arrays vorhanden sein, damit die Dropdowns und Radiobuttons usw. in den verschiedenen Sprachversionen funktionieren. Alle nötigen Funktionen zum dynamischen Erzeugen der Formularfelder liegen bei.

Godmode:
Dieser Kunde verwaltet etliche Einstellungen nicht über das Backend, sondern über das Frontend. Hierfür unterscheiden wir FEUs mit einer ID < 100 (= Admins) und andere (normale User). Ist ein FEU-Admin eingeloggt, wird er aufgrund seiner ID in den "godmode" versetzt. Damit verhalten sich die Module etwas anders, und er kann eine Fremdregistrierung eines Users vornehmen, indem er im geschützten Bereich einen weiteren Artikel mit dem Registrierungsformular bearbeitet. Auch sind ihm dann bei der Bearbeitung der Kundendaten bestimmte Dinge NICHT erlaubt (z.B. Mailadresse ändern usw.). Ich habe diese Funktion dringelassen und nicht deaktiviert - wer dies nicht benötigt, sollte an gewissen Stellen im Modul godmode = false setzen.

Verhalten der Module:

Registrierung:
- Registriert sich ein neuer User, erhält er eine Mail mit dem Confirmationlink. Dieser muss auf den Handler-Artikel verweisen (idcatart prüfen!).
- Klickt er auf den Link, erhält er im Browser eine Erfolgsnachricht und sieht sein Passwort. Dies wird ihm zusätzlich per Mail zugestellt. Gleichzeitig wird die korrekte Newsletterzuordnung aktiviert.
- Danach ist ein Login über das Standard-Loginmodul der 4.10 möglich.

Profil editieren:
- Es ist noch nicht sooo schön, dass hier vieles an Logik gedoppelt werden muss aus der Registrierung, aber eine Zusammenfassung in ein Modul oder mehr Auslagerung in Subroutinen war zu diesem Zeitpunkt nicht drin.

Kennwort vergessen:
- Das Modul schickt an die registrierte Mailadresse (= Username) ein neues Passwort.

Kennwort ändern:
- Hier kann der User sein Passwort selbständig ändern (der zugehörige Artikel muss natürlich in einem Login-geschützten Bereich liegen).

Frontenduser-Plugins und zusätzliche FEU-Felder:
- Für diesen Kunden wurden etliche zusätzliche FEU-Felder angelegt. Diese werden als Properties gespeichert, nicht direkt in der con_frontendusers-Tabelle. Zur Verwaltung im Backend sind die beigefügten FEU-Plugins nötig. Deren Reihenfolge im Backend lässt sich unter Administration/System/Experteneinstellungen bei "frontendusers-pluginorder" festlegen. Werden Felder nicht gebraucht, können einzelne Pluginordner gelöscht und deren Aufruf in den Modulen entfernt werden. Neue Felder bedürfen lediglich angepasster Plugins und entsprechend geänderten Aufrufen der Felder in den Modulen, so wie dies schon für z.B. "fax" gezeigt ist.

HTML-Ausgabe:
- Da diese Module möglichst einfach und ohne zuviel Grundaufwand von 4.8 portiert wurden, verwenden die überwiegend das "alte" Template-System, kein Smarty, auch wenn sich damit etliches eleganter lösen liesse.

Konfiguration durch "Eingabebereiche" der Module:
- Für meine Fälle wäre es zu aufwändig gewesen, die alten Eingabebereiche auf 4.10 anzupassen. Ich habe daher etliche Werte einfach im Moduloutput fest verdrahtet, basta. Wer hier mehr Konfiguration benötigt, müsste selbst Hand anlegen ;-)

Und sonst noch?
Ich weiß, dass diese Module für manche wichtig sind, aber noch viel Anpassung an konkrete Projekte bedürfen. Ich kann dabei aber wirklich nicht intensiv helfen und werde diese zunächst auch nicht weiter feintunen oder "verschönern". Ich poste sie hier nur in einer bereits angepassten Version, damit diese Elemente für die 4.10 in einer Variante für alle zugänglich sind und einige einen Startpunkt habe.

LG

Update v 1.02 vom 26.04.2019
Bug: ereg_replace ersetzt durch str_replace in den Modulen Registrierung und Edit
Maintenance: Name des Registrierungsmoduls (Anzeige innerhalb Contenido) geändert, passend zu den anderen Modulen
Bug: die kundenspezifische FEU-Variable "userconfirmed" auskommentiert im Registrierungsmodul -> errorlog bleibt sauberer.
Dateianhänge
Paket FEU-Verwaltung102.zip
FEU-Paket mit Modulen, Plugins, images, functions usw. (fehlerbereinigt, v. 1.02)
(114.87 KiB) 10-mal heruntergeladen

Antworten