Bereits bislang war es für mit CP::Forms erstellte Datenbanken möglich, im Frontend der Webseite ein Formular einzublenden, welches es den Besuchern ermöglichte, eigene Einträge zu dieser Datenbank hinzuzufügen. Die Einträge wurden dann je nach Konfiguration der Datenbank automatisch freigeschalten oder aber der Seitenbetreiber / Administrator wurde per Email über einen neuen Eintrag informiert, welchen er dann manuell freischalten konnte.
In Bild 1 sehen Sie ein Beispiel für ein derartiges Formular, über welches Besucher neue Artikel für ein Artikelverzeichnis selbstständig hinzufügen können. Die Einbindung eines solchen Formulares ist dabei denkbar einfach:
Dieser sogenannte Containeraufruf kann direkt über den im Administrationsbereich abrufbaren {cp:tag}-Wizard generiert werden, so dass auch diese Syntax nicht erlernt werden muss (Aufruf über das Zauberstab-Symbol oben rechts). Vielmehr können die Containeraufrufe ebenfalls über die grafische Oberfläche zusammengeklickt und dann in beliebigen Artikeln und Vorlagen des Systems eingebaut werden.
Seit der Version 2008.2 von Contentpapst / CP::Shop ist nun erstmals auch eine nachträgliche Bearbeitung der selbst veröffentlichten Einträge über das Frontend der Webseite möglich (d.h. ohne Zugriff auf den Administrationsbereich). Dafür müssen die folgenden Kriterien erfüllt werden:
Im Folgenden werden wir genauer erläutern, wie das oben sichtbare Beispiel um eine Bearbeitungsfunktion ergänzt werden kann.
Über den Parameter "edit_field" wird dem Container dabei mitgeteilt, dass die ID des Benutzers im Feld mit dem Namen "author" gesucht und mit der ID des aktuell eingeloggten Benutzers abgeglichen werden muss. Über "edit" hingegen wird ein bestimmter Eintrag zur Bearbeitung ausgewählt. In diesem Beispiel kommt der Wert für diesen Parameter aus der Variablen "oid" in der URL.
Folgendermaßen könnte eine komplette Administration eines Artikelverzeichnisses direkt im Frontend realisiert werden:
Die oben genannte Vorlage "/modules/forms_artikelverzeichnis/templates/artikel_liste.html" hat in diesem Beispiel den folgenden Inhalt:
Wird der hier sichtbare Code in einen Artikel oder eine Vorlage eingebaut, dann sieht ein nicht eingeloggter Besucher nur das normale Formular zum Hinzufügen von Artikeln. Einem eingeloggten Benutzer hingegen wird oberhalb des Formulars zusätzlich eine Liste der bislang von ihm eingestellten Artikel angezeigt (Bild 2). Mit einem Klick auf den Titel eines Artikels kann dieser dann im Formular geladen und bearbeitet werden.
Alle notwendigen Sicherheitsüberprüfungen, die Validierung der Formularinhalte uvm. liefert CP::Forms dabei frei Haus.