mod_form confirm

Diskussion zum Formular-Modul für ConPresso 4
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

mod_form confirm

Beitrag von MarkusR »

Hier werde ich mal versuchen das Konzept sowie die Bausteine des in mod_form 4.1e eingeführten Bestätigungsmechanismus aufzuschlüsseln *** in Arbeit ***

Warum das Ganze?
Normalerweise sendet das Formular Eingaben per Mail an einen Empfänger und/oder speichert diese auch als Artikel, also z.B. als Gästebuch, Veranstaltungskalender, Teilnahmeliste etc.

Manchmal ist es aber erwünscht, dass sich der User identifiziert durch Anklicken eines Links in einem Bestätigungsmail und dann erst das Mail an den Empfänger oder der Artikel online geht. Das eröffnet auch die Möglichkeit per Link Einträge in Listen erst freizuschalten, zu sperren oder ganz zu löschen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Re: mod_form confirm

Beitrag von MarkusR »

Dazu müssen die Templates etwas komplexer gestaltet werden (das eine oder andere werde ich vermutlich noch beilegen).

Im Template für das Eingabeformular (Bereich Artikelseite) gilt:

Code: Alles auswählen

Die folgenden speziellen Platzhalter sind verfügbar:
<!-- admin --> ... <!-- /admin --> wird nur im Empfänger-Mail gezeigt
<!-- user --> ... <!-- /user --> wird nur im Benutzer-Mail gezeigt
<!-- cc --> ... <!-- /cc --> wird nur in der Mail-Kopie [CC] gezeigt
<!-- bcc --> ... <!-- /bcc --> wird nur in der Mail-Blindkopie [BCC] gezeigt
<!-- ifSet/ifNotSet: mod_form; --> dient der Unterscheidung von Formular- und Artikel-Darstellung
<!-- ifSet: mod_form_stepX; --> (X=1-3) wird zum Darstellen der verschiendenen Bearbeitungsstadien benutzt (Bei Nutzung der Bestätigungs-Einstellungen)
Im Template für das Mail (Bereich Javascript/PHP) gilt:

Code: Alles auswählen

Die folgenden Platzhalter für Bearbeitungs-Links stehen zur Verfügung:
<!-- FORM: confirm; -->
<!-- FORM: block; -->
<!-- FORM: delete; -->
<!-- FORM: expire; -->
<!-- FORM: step1; -->
<!-- FORM: step2; -->
<!-- FORM: step3; -->
Dies steht auch bei den Moduleinstellungen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Re: mod_form confirm

Beitrag von MarkusR »

Nun mal ein Beispiel:
In einer Veranstaltungsliste sollen von Benutzern Veranstaltungen eingetragen werden.
Diese sollen aber erst nach dem Anklicken eines Links freigeschaltet werden und können nach Bedarf gesperrt, gelöscht oder archiviert werden, wozu entsprechende Links im Mail erscheinen sollen.

Das Template für das Mail (Bereich JS/PHP):

Code: Alles auswählen

<!-- admin -->Eine neues Event wurde angemeldet!

Name: <!-- text: Name der Veranstaltung; --> am <!-- text: Datum der Veranstaltung; -->

mit den folgenden Links können Sie den Eintrag verwalten:
Sperren: <!-- FORM: block; -->
Löschen: <!-- FORM: delete; -->
Archivieren: <!-- FORM: expire; -->

Mehr Infos finden Sie im ConPresso-Backend!<!-- /admin --><!-- user -->Sie haben folgendes Event eingetragen:

Name: <!-- text: Name der Veranstaltung; --> am <!-- text: Datum der Veranstaltung; -->

mit den folgenden Links können Sie den Eintrag verwalten:
Freigeben: <!-- FORM: confirm; -->
Sperren: <!-- FORM: block; -->
Löschen: <!-- FORM: delete; -->

Danke für Ihren Eintrag! <!-- /user -->
Die Bereiche admin bzw. user werden entsprechend des Empfängers gestaltet.

Folgende Einstellungen sorgen für die gewünschte Funktion:
Automatische Freigabe: nein
Bestätigung: Bestätigungs-Mail (und -Seite)
Zielrubrik: (alles außer "--keine--", sonst gibt es nichts freizugeben)

Bestätigung aktivieren: ja
Bestätigungs-Mail senden: 2 Häkchen bei Ersteintrag Empfänger und Benutzer
(bei Bedarf auch bei CC und/oder BCC falls weiter oben angegeben)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Re: mod_form confirm

Beitrag von MarkusR »

Wer bis hierhin gelesen hat und sich auch die entsprechenden Einstellungen angesehen hat, der wird schnell merken, dass es neben den Häkchen bei "Ersteintrag" auch noch "Status", "Stufe 1", "Stufe 2" und "Stufe 3" gibt.

Damit lässt sich der Prozess verfeinern um die Nerven des Betreibers zu schonen.

Veränderter Prozess:
Der Benutzer trägt eine Veranstaltung ein.
Dann erhält er ein Mail mit einem Freigabe-Link (womit die Mail-Adresse quasi verifiziert wird)
Wird mit diesem Link der Artikel freigegeben, erhält der Empfänger (Admin) ein Status-Mail, muss sich also nicht mit Spammern auseinandersetzen.
Über einen Link kann der Benutzer das Formular erneut aufrufen, um dort Änderungen vorzunehmen oder jetzt weitere Daten eingeben zu können. Dazu werden die in der entsprechenden Stufe bearbeitbaren Felder durch den Parameter step=1 (bzw. 2 oder 3) im Formular gekennzeichnet. Somit sind nicht gekennzeichnete Felder unveränderbar.

Bitte beachten:
Es muss nun sorgfältig darauf geachtet werden in den Platzhaltern den Parameter step=[Zahl]; anzugeben, damit diese geparst werden und mittels <!-- ifSet/ifNotSet: mod_form_step[Zahl] --> die Ausgaben/Inhalte nach Bedarf zu steuern, damit Empfänger und Benutzer wissen, worum es geht. ([Zahl] ist durch 1, 2 oder 3 zu ersetzen)

Hier nun die Templates:
Artikelseite (das Formular)

Code: Alles auswählen

<!-- ifSet: mod_form_step1; --><p>Bitte bearbeiten Sie die untenstehenden Daten</p><!-- /ifSet -->
<table border="1">
<tr>
<td>Datum der Veranstaltung</td>
<td><!-- Text: Datum der Veranstaltung; title; needed; step=1; --></td>
</tr>
<tr>
<td>Name der Veranstaltung</td>
<td><!-- Text: Name der Veranstaltung; title; needed; step=1; --></td>
</tr>
<!-- ifSet: mod_form_step1; --><tr>
<td>Link zur Veranstaltung</td>
<td><!-- Text: Link zur Veranstaltung; step=1; --></td>
</tr><!-- /ifSet -->
<tr>
<td>Name</td>
<td><!-- Text: Name; author; needed; needed=Sie haben doch sicher einen Namen, oder? --></td>
</tr>
<tr>
<td>Email</td>
<td><!-- Text: Email; mailcheck=Irgendwas stimmt an dieser Adresse nicht...?!; needed=Die Mail-Adresse benötigen wir für Rückfragen; --></td>
</tr>
<!-- ifSet: Bemerkungen; --><tr>
<td>Bemerkungen</td>
<td><!-- Text: Bemerkungen; type=textarea; cols=40; rows=5; step=1; --></td>
</tr><!-- /ifSet -->
</table>
JS/PHP (Mail)

Code: Alles auswählen

<!-- admin --><!-- ifNotSet: mod_form_step1; -->Ein NEUES Event wurde angemeldet!<!-- /ifNotSet --><!-- ifSet: mod_form_step1; -->Das folgende Event wurde bearbeitet:<!-- /ifSet -->

Name: <!-- text: Name der Veranstaltung; --> am <!-- text: Datum der Veranstaltung; -->

mit den folgenden Links können Sie den Eintrag verwalten:
Sperren: <!-- FORM: block; step=1; -->
Löschen: <!-- FORM: delete; step=1; -->
Archivieren: <!-- FORM: expire; step=1; -->

Mehr Infos finden Sie im ConPresso-Backend!<!-- /admin --><!-- user -->Sie haben folgendes Event <!-- ifNotSet: mod_form_step1; -->eingetragen<!-- /ifNotSet --><!-- ifSet: mod_form_step1; -->bearbeitet<!-- /ifSet -->:

Name: <!-- text: Name der Veranstaltung; --> am <!-- text: Datum der Veranstaltung; -->

mit den folgenden Links können Sie den Eintrag verwalten:
Freigeben: <!-- FORM: confirm; step=1; -->
<!-- ifSet: step1; -->Sperren: <!-- FORM: block; step=1; -->
Löschen: <!-- FORM: delete; step=1; --><!-- /ifSet -->
Eintrag bearbeiten: <!-- FORM: step1; step=1; -->

Danke für Ihren Eintrag! <!-- /user -->
Moduleinstellung "Bestätigungs-Mail senden":
Ersteintrag: Benutzer
Status: Empfänger
Stufe 1: Empfänger und Benutzer

Wichtig:
Bei Wahl von "Benutzer" muss auch die grundsätzliche Bestätigung per Mail aktiv sein!

Das kann natürlich nach Belieben und Anwendungszweck angepasst und erweitert werden. Ist aber eben nicht ganz trivial, erspart aber umfangreiche Programmierungen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Re: mod_form confirm

Beitrag von MarkusR »

Nächste Sufe: zusätzliche Mails an CC/BCC

Sollen nun weitere Empfänger informiert werden, dann kommen die weiteren bedingten Bereiche zum Tragen

Code: Alles auswählen

<!-- admin --> ... <!-- /admin --> wird nur im Empfänger-Mail gezeigt
<!-- user --> ... <!-- /user --> wird nur im Benutzer-Mail gezeigt
<!-- cc --> ... <!-- /cc --> wird nur in der Mail-Kopie [CC] gezeigt
<!-- bcc --> ... <!-- /bcc --> wird nur in der Mail-Blindkopie [BCC] gezeigt
denn nicht jeder soll den Eintrag bearbeiten können bzw. darf das überhaupt. Ob man z.B. einen den Link zum Sperren wegen rechtlichen Bedenken einbaut kann man so bei Bedarf entscheiden.

Und es muss natürlich auch die CC- bzw. BCC-Mailadresse angegeben werden.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle