Online-Petition mit Contao, 2. Teil

Zunächst habe ich die hier schon mehrmals besprochene Erweiterung mailusername eingesetzt, falls man plant, für die Unterzeichner einen geschützten Bereich mit speziellen Informationen anzubieten, z.B. der Liste der Unterzeichner, wenn man diese nicht öffentlich machen möchte. Man vergibt zusammen mit der Aktivierung ein Passwort und jeder, der unterzeichnet hat, kann sich mit seine Emailadresse und dem Passwort anmelden (kam aber dann doch nicht zum Einsatz). Der Vorteil: Das Formular zum Unterschreiben ist so einfach wie möglich gehalten, sonst müssten zusätzlich auch noch Felder für Benutzernamen und Passwort ausgefüllt werden. Ein einziges, gemeinsames Passwort könnte auch auf der Seite ausgegeben werden, die erscheint, wenn man den Aktivierungslink angeklickt hat. Klar, nicht supersicher, aber es sollen ja auch keine geheimen Daten geschützt werden. Und wie gesagt, es geht um eine möglichst einfache Handhabung, das war der Auftrag.

Der nächste Punkt, der sich direkt daraus ergibt: wie kommt die Liste der Unterzeichner auf die Webseite (öffentlich oder nicht, spielt hier keine Rolle). Bei der Suche stieß ich auf die Erweiterung memberlist, die aktuell und für meine Zwecke brauchbar schien. Allerdings habe ich in letzter Zeit die Erfahrung gemacht, dass es günstiger ist, so wenig Erweiterungen wie möglich zu verwenden (gilt für alle CMS), da es damit bei updates immer wieder Probleme gibt: sie werden nicht weiterentwickelt, passen nicht zum neuesten System des CMS etc.

Aus diesem Grund habe ich mir das Auflistungsmodul, dass im Contao-Core enthalten ist, näher angeschaut und letztendlich benutzt. Um dieses Modul richtig nutzen zu können, ist es günstig, wenn man einen Blick auf die Struktur der Datenbank werfen kann. Das geht am besten über den Kundenbereich des Providers. Dort gibt es immer einen Bereich, um die Datenbank zu bearbeiten, meistens über phpMyAdmin. Als Felder (die dann auf der Webseite aufgelistet werden sollen) habe ich aus der Datenbanktabelle tl_members die Felder lastname, firstname, city ausgewählt. Als durchsuchbares Feld habe ich lastname gewählt, man soll also die Nachnamen durchsuchen können.

Ein kleines Problem gab es noch: die Unterzeichner sollten erst auf der Webseite sichtbar sein (und auch nur dann), wenn sie den Aktivierungslink in der automatisch verschickten Email angeklickt hatten und somit gezählt wurden (siehe dazu Teil 1). Das habe ich gelöst, indem ich in das Feld Bedingung in den Einstellungen des Moduls disable=0 geschrieben habe. Damit werden alle Mitglieder (Unterzeichner), die sich noch nicht aktiviert haben, von der Auflistung ausgeschlossen). Auch diese Information habe ich direkt der Datenbanktabelle tl_members entnommen.

Etwas ungünstig finde ich, dass die neuesten Einträge immer am Ende erscheinen. Das könnte man sicher in dem Template ändern, aber ich wollte nicht mehr in die schon laufende Unterschriftenaktion eingreifen.

Das Modul wird dann einfach in die entsprechende Seite eingebunden.

Aber wie kommt der Zähler auf die Webseite? Das und welche Probleme es gab, beschreibe ich im dritten Teil.

In letzter Zeit gibt es viele Spam-Kommentare, deswegen habe ich die Kommentarfunktion erst einmal abgeschaltet.

Einen Kommentar schreiben

Kommentar von Thomas |

Hallo, guter Tipp, genau das habe ich gerade gesucht. Beste Grüße, Thomas

Kommentar von Kristina |

Sehr genialer Tipp. Das brauchte ich! Vielen lieben Dank!

Kommentar von Alex |

DANKE! Ich hab auch eben danach gesucht und es klappt bestens.

Kommentar von Emanuel P. |

Bin gespannt, Backend ist leicht aber Frontend sind viele am Grübeln wegen des 401 Fehlers und es existiert leider keine gute Anleitung wi man 2FA fürs Frontend richtig konfiguriert (speziell Template Anpassung und security.yml)

Antwort von Anika Strobach

Danke für den Kommentar. Ich hoffe, ich habe bald die Zeit dazu!

Kommentar von Gerhard Hirt |

Guten Tag
Was kann ich tun, wenn z.B. bei der 7. Pos. die Meldung Zeitüberschreitung kommt?
Was ist der vermutliche Grund für diese Zeitüberschreitung.

Danke für eine kurze Antwort
Gerhard

Antwort von Anika Strobach

Vielen Dank für den Kommentar.

Die Zeitüberschreitung liegt normalerweise daran, dass die Internetverbindung zu langsam oder gestört ist, entweder bei Ihnen selber oder bei dem Server, auf dem Ihre Webseite liegt. Oft klappt es zu einem anderen Zeitpunkt.

Mehr kann ich leider aus der Ferne und mit den wenigen Infos nicht sagen.

Kommentar von Karsten |

Hallo,
ich habe das plugin installiert und aktiviert.
In einem Beitrag per code -> php-> pass = XXXX eingetragen
Es erfolgt keine Abfrage!
Codeschnipsel als weißes Feld!
Was mache ich falsch?
Der Beitrag ist einfach nur ein Link, den man nach Eingabe des richtigen Passwortes sehen soll.

Kommentar von Marion |

Hallo Anika,
danke für die hilfreiche Anleitung!
Weißt Du, ob man die 2FA problemlos wieder rückgängig machen kann?
Viele Grüße
Marion

Kommentar von Matthias Hechler |

Muss die DENIC denn nicht auch den Provider herausgeben?

Kommentar von Gottfried |

Hallo, 2FA ist ne super Sache, aber nun ist das Handy weg und ich habe noch eine Sicherung der Backup Codes. Muss ich den Codeblock nun ganz in des Feld eingeben?

Kommentar von Comichaot |

Hatte die letzten Tage vermehret Brutforce angriffe aber dank Limit Login Attempts Reloaded ist alles gut!

Kommentar von Michael Conrad |

Danke für den super Tipp! Das war genau das Steinchen, was mir auf den Weg zur Suche nach dem Webserver gefehlt hat.

Sie müssen sich anmelden, um Kommentare hinzuzufügen.