ModulPaket: Frontenduser Registrierung/Edit/Passwort

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

ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von homtata » Mo 13. Jul 2015, 22:42

Hallo zusammen,

es gab im Themenbereich "Modul-Requests" die Bitte, ein zusammenhängendes Modulpaket zu posten 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.9 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.9 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.9 in einer Variante für alle zugänglich sind und einige einen Startpunkt habe.
Und außerdem habe ich bestimmt noch eine Million wichtige Hinweise vergessen... :-)

LG

ACHTUNG: Dieses Modul wird zukünftig im Forumsbereich der 4.10.x weitergepflegt.
viewtopic.php?f=116&t=43560

Da sich aber auch für die 4.9 ein Fehler im Registrierungs -und Editmodul befindet, stelle ich v1.02 hier parallel online. Der Bug kann aber auch selbst händisch korrigiert werden (s. unten), ereg_replace durch str_replace an je 2 Stellen in den Modulen ersetzen.

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-Verwaltung101.zip
FEU-Paket mit Modulen, Plugins, images, functions usw. (fehlerbereinigt, v. 1.01)
(114.45 KiB) 262-mal heruntergeladen
Zuletzt geändert von homtata am Fr 26. Apr 2019, 15:50, insgesamt 3-mal geändert.

Oldperl
Beiträge: 4067
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von Oldperl » Di 14. Jul 2015, 08:39

Fleißig, fleißig!!! :D

Das werde ich mir doch gleich mal anschauen.

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

egon2358
Beiträge: 10
Registriert: Do 17. Jan 2013, 00:31
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von egon2358 » Mi 15. Jul 2015, 18:20

Hallo homtata,

1000 Dank für deine wunderbare Umsetzung und deiner schnellen Reaktion!! :-) super Modul! - habs auch gleich mal probiert.
Habe alles strikt nach deiner Beschreibung integriert und bekomme auch alles zum Laufen.. bis auf diese winzigen Ausnahmen :D :

1. Registrierung funktioniert teilweise ( Leider wird nur der Newsletter Recipient erstellt kein FrontendUser)
2. Daten editieren funktioniert --> wenn ich dann den Frontend User manuell mit der entsprechenden EMail angelegt hab.
3. Passwort ändern funktioniert --> wenn ich dann den Frontend User manuell mit der entsprechenden EMail angelegt hab.
4. Passwort vergessen funktioniert teilweise --> Passwort wird erstellt und per mail zugesendet jedoch nicht beim FrontendUser geändert.

Vermutlich hängt es irgendwo im Registrierungsmodul.

Denn wenn kein Frontend User angelegt wird können die übrigen Module natürlich nicht reibungslos funktionieren. ( Nach meinem Verständnis..)

Hättest du eine Idee was nicht funktioniert bzw. wo es hängt?

ganz vielen Dank und Grüße!

egon2358

errorlog.txt
[15-Jul-2015 16:17:49 UTC] PHP Warning: Database failure: 1054 (Unknown column 'userconfirmed' in 'field list') - /pfad/cms/front_content.php?idcatart=10 UPDATE `con_frontendusers` SET `password` = '7b0535a48e0633f4cfb6a624ab43ace7b37d9b14b84eb1f1051c06c27b624118', `userconfirmed` = '1', `modified` = '2015-07-15 16:17:49', `modifiedby` = 'nobody' WHERE idfrontenduser = '2'
in /mnt/webb/e3/50/53972450/htdocs/pfad/contenido/includes/functions.general.php on line 1348
[2015-07-15 16:22:04] Warning: "Database failure: 1054 (Unknown column 'userconfirmed' in 'field list') - /pfad/cms/front_content.php?idcatart=10 UPDATE `con_frontendusers` SET `password` = '181796dbfd0b8b86cc26c15b262011421139621c86e5f67eb5954fcc381f97c5', `userconfirmed` = '1', `modified` = '2015-07-15 16:22:04', `modifiedby` = 'nobody' WHERE idfrontenduser = '2'
" at reportHalt() [class.db.driver.handler.php(978)]
reportHalt() called in file class.db.driver.handler.php(950)
halt() called in file class.db.driver.handler.php(684)
query() called in file class.item.php(438)
store() called in file class.frontend.user.php(195)
store() called in file include.front_content.php(719) : eval()'d code(280)
eval() called in file include.front_content.php(719)
include() called in file front_content.php(62)
security.txt

2015-07-15 16:29:54 146.52.29.10
Query String: idcatart=10?changelang=0
Bad parameter: idcatart
POST array: Array
(
[send] => 1
[godmode] =>
[idfeuedit] => {idfeuedit}
[Anrede] => Herr
[Vorname] => Max
[Nachname] => Muster
[EMail] => muster@mann.de
[EMail2] => muster@mann.de
[Telefon] => 0123456789
[Fax] => 0987654321
[Sprache] => 0
[FirmaAnrede] => Herr
[Firma] => Muster AG
[FirmaVorname] => Max
[FirmaNachname] => Mustermann
[PLZ] => 12345
[Ort] => Musterhausen
[City] =>
[Strasse] => Musterstraße
[Land] => Germany
[doaction] => subscribe
)

homtata
Beiträge: 1053
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von homtata » Mi 15. Jul 2015, 23:17

Hallo Egon,

der Registrierungsfehler könnte daher rühren, dass evtl. noch ein Mandantenwert in den allgemeinen Einstellungen zu setzen ist:

Code: Alles auswählen

newsletter	frontendlink	enabled
Kannst du das bitte mal prüfen, ob es dann klappt?

Den Fehler zu "Passwort vergessen" schaue ich mir nochmal an...

homtata
Beiträge: 1053
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von homtata » Mi 15. Jul 2015, 23:37

Der Fehler im "Kennwort ändern" stammt aus einer überflüssigen Zeile, die für den Kunden wichtig war, hier aber das Speichern vereitelt. Bitte in Zeile 36 löschen:

Code: Alles auswählen

$frontenduser->set("userconfirmed", 1);	
Dann sollte es funktionieren. Kannst du es bitte testen und kurz Rückmeldung geben? Dann passe ich die Paketdateien an und lade neue hoch.

egon2358
Beiträge: 10
Registriert: Do 17. Jan 2013, 00:31
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von egon2358 » Do 16. Jul 2015, 16:11

Wunderbar! Alles funktioniert wie beschrieben. 8)

Zeile 36 muss im Modul "frontenduser---kennwort-vergessen" gelöscht werden. dann klappts auch mit dem Passwort.

Vielen Dank für dein Modul - ganz große Klasse. :D

Viele Grüße

egon

bodil
Beiträge: 153
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von bodil » Fr 17. Feb 2017, 09:35

Das klingt sehr spannend! Läuft das auch unter 4.9? Hat jemand Erfahrungen?

homtata
Beiträge: 1053
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von homtata » Fr 17. Feb 2017, 09:56

Ja natürlich, ich habs ja extra für die 4.9 adaptiert, aber das geht aus dem ersten Post doch auch klar hervor ;-)

bodil
Beiträge: 153
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von bodil » Mo 20. Feb 2017, 15:08

Wer lesen kann ist klar im Vorteil! Herzlichen Dank! :)

Mr Lehmann
Beiträge: 1
Registriert: Fr 9. Mär 2018, 07:11
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von Mr Lehmann » Fr 9. Mär 2018, 07:27

Könnte auch eure Hilfe gebrauchen. Hab die Stelle gefunden wo ich den username ändern kann, aber nicht das Passwort.

con_frontendusers

Normalerweise müsste man doch die Datei exportieren, das PW ändern und dann wieder hochladen/importieren oder nicht?

Ok, vielleicht mache ich es mir zu einfach, aber wie ist denn sonst die Lösung. Hab versucht zu verstehen was ihr hier schreibt, aber kann da ehrlich gesagt nicht so viel mit anfangen.

Vielen Dank für eure Hilfe vorab.

homtata
Beiträge: 1053
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

Beitrag von homtata » Do 15. Mär 2018, 22:27

Hallo MrLehmann,

willkommen ;-) Nun, ich muss gestehen, ich verstehe Deine Frage auch nicht so richtig, aber wahrscheinlich hast du eine "falsche" Vorstellung von dem, was diese Module tun.

Was genau suchst du denn, oder was meinst du mit Datei exportieren und wieder importieren?
Diese Modulsammlung ermöglicht, auf der Webseite Bereiche einzurichten, mit denen der User sich a) als Frontenduser sowie gleichzeitig für das Newslettersystem registrieren kann, b) später in einem geschützten Bereich sein Passwort ändern kann, c) ein vergessenes Passwort neu anfordern kann und solche Dinge. Der Frontenduser soll sich selbst verwalten. Es geht nicht um direkte Datenbankzugriffe eines Admins.

homtata
Beiträge: 1053
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: ModulPaket: Frontenduser Registrierung/Edit/Passwort

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

ACHTUNG: Dieses Modul wird zukünftig im Forumsbereich der 4.10.x weitergepflegt.

Antworten