Das beinah perfekte Gästebuch mit Drupal Teil 2
Nach dem wir im ersten Teil vom "Das beinah perfekte Gästebuch" das Gästebuch schon soweit hatten, dass es schön angezeigt wird, bauen wir nun noch eine Administration für das Gästebuch. In dieser Administration kann man einzelne Einträge kommentrieren, bearbeiten oder auch löschen.
Für diesen zweiten Teil braucht es keine zusätzlichen Module. Wir brauchen nur eine neue View.
- Erstelle eine neue View und benenne diese "Gästebuch Administration"
- Als Filter muss wieder der Nodetyp "Gästebuch" verwendet werden

- Als nächstes fügen wir die Anzeige Felder hinzu. Wir beginnen mit dem Datum, dem Titel und dem eigentlichen Gästebuchinhalt. Das sind alles Node Anzeigefelder:
- Node: Beitragsdatum
- Node: Titel
- Node: Textkörper

- Jetzt wollen wir einzelne Gästebucheinträge auch noch kommentieren, dies kann einfach mit der Kommentarfunktion des Nodes gemacht werden. Dazu blenden wir jetzt mal die Kommentare ein:

Wenn man jetzt die View speichert und ausführt, werden in der Kommentarspalte "n/v" angezeigt. Keine Sorge, dass ist normal, da ja noch keine Kommentare erfasst wurden.
- Jetzt wollen wir direkt von der View einen Link erstellen, welches es ermöglicht, dass man den Eintrag kommentieren kann. Dazu muss man die "Node: Beitrags ID" einblenden lassen und anschliessend richtig konfigurieren
- Bezeichnung: Kommentrieren - Spaltenname
- Haken setzen bei "Rewrite the output of this field" und im Textfeld "Kommentieren" schreiben
- Haken setzen bei "Output this field as a link"
- Link path: comment/reply/[nid]#comment-form
Damit haben wir nun auf den Text "Kommentieren" den Kommentierlink für den jeweiligen Nodeinhalt erstellt. Den Link kann man in irgend einem Kommentarlink abholen und die ID mit dem Platzhalter "[nid]" ersetzen. Mit dieser Methode können noch beliebige andere Links einer View hinzugefügt werden.
- Um die Administration jetzt noch zu vervollständigen, erstellen wir noch einen Bearbeiten- und Löschenlink. Diese zwei Links sind nun aber wieder im Standard der View beinhaltet:
- Node: ‚Bearbeiten‘-Link Bearbeiten und
- Node: ‚Löschen‘-Link Löschen wählen
- Die Felder sollten jetzt so aussehen:

- Jetzt müssen noch die Basiseinstellungen gemacht werden:
Wichtig: Der Zugriff auf diese View darf nur ein authentifizierter User haben
- Zum Schluss muss nun noch eine Seiten Anzeige hinzugefügt werden und einen Pfad und einen Menüpunkt

- Die komplette View sollte jetzt so aussehen:


- Damit jetzt die Kommentare auch noch im Gästebuch angezeigt werden, muss man noch eine kleine SQL Abfrage an den Anfang des tpl Files schreiben:<?php
$nodeid = $node->nid;
$comm = db_result(db_query("SELECT comment FROM comments WHERE nid = $nodeid"));
?>Die entsprechenden CSS Angaben sind im ersten Teil schon erstellt worden. Am Schluss des Post kann man die zwei Files runterladen. Die tpl Datei muss nach dem runterladen noch in .php umbenannt werden.
- Zur Sicherheit würde ich jetzt noch einen Captcha Dienst einbauen, damit das Gästebuch nicht zugespammt wird. Für kleiner Seiten ist Mollom sehr zu empfehlen. Wie dieser Dienst eingebaut werden kann, habe ist hier beschrieben.
Und schon ist das eigene Gästebuch fertig. Mit ein paar Modulen, welche schon fast zum Standard jeder Drupalinstallation gehören, kann man sich nette kleine Applikationen bauen.
Ich hoffe mit diesem Post den einen oder andern dazu bewegen zu können, sich selber solche Apps zu bauen und würde mich über Feedback jeglicher Art freuen.
Kommentare
Gast
14. July 2009 - 19:18
Permalink
Gästebuch
Sehr schöne und perfekt dokumentierte Anleitung! Selten genug, dass man das so ausgezeichnet beschrieben findet. Herzlichen Dank!
Ich habe das Ganze sauber hinbekommen, nur scheint mir etwas mit den Rechten zu hapern. Gäste, d.h. nicht angemeldete User können Gästebucheinträge nur machen, wenn bei den Berechtigungen unter Node-Modul "Inhalt verwalten" frei gegeben ist, sonst kommt die Meldung "Zugriff verweigert".
Irgendeine Idee, wie man dias umschiffen kann oder sehe ich den Wald vor alauter Bäumen nicht? "Inhalt verwalten" kann ja aus nachzuvollziehenden Gründen nicht gut frei gegeben werden.
Freundliche Grüsse
maegg
redpanda
15. July 2009 - 10:34
Permalink
Vielen Dank und die Rechte Gästebuch
Hallo maegg
Zuerst einmal recht herzlichen Dank für dein Lob. Liest man immer gerne.
Nun zu deinem Problem mit den Rechten.
So wie ich gerade gesehen habe, habe ich das Kapitel mit den Rechten komplett vergessen. Sorry.
Hast du den Gästen das Recht gegeben "create gaestebuch content", dann sollte es eigentlich klappen, ohne dsa Recht "Inhalt verwalten".

Ich hoffe es klappt so mal. Mal schauen ob da in der Dokumentation ein Fehler drin ist.
Sollte es nicht klappen, schreib mir doch via Kontaktformular ein Mail.
Schöne Grüsse
Michi
Markus
16. September 2009 - 0:32
Permalink
Weiter-Link
Kann mich meinem Voränger nur anschließen. Top Doku. Weiter so.
Habe ein kleines Problem und hoffe auf Hilfe. Wie kann ich einen Weiter-Link einbauen wenn die Einträge die 10 Stück pro Seite überschreiten.
Gruß und Danke im vorraus
Markus
Rob
8. March 2010 - 14:20
Permalink
feedback
Hallo,
ersteinmal vielen Dank für dieses ausführliche und gute Tutorial, das mir beim Aufbau eines Gästbuchs sehr geholfen hat. Allerdings benötigte ich ein moderiertes Gästebuch und möchte meine Erfahrungen auf Grundlage dieses Tutorials mitteilen:
Anfangs dachte ich es reicht im Setting des Inhaltstyps einfach das Veröffentlicht-Häckchen zu entfernen, was aber zu folgendem Problem führte:
wenn der Besucher einen neuen Eintrag schrieb, dann bekam er nach dem Speichern einen "Zugriff verweigert"-Fehler, da er als Gast kein Recht hat unveröffentlichte Beiträge zu lesen.
Lösung:
Mit dem Rules-Modul habe ich eine Infomeldung (bzgl der Moderation) und eine Weiterleitung zum Gästebuch nach dem Abspeichern des neuen Eintrags konfiguriert. Der Besucher wurde so informiert auf die Gästebuchübersicht weitergeleitet.
Noch ein Tip:
Mit Views Bulk Operations kann man anschliessend den Adminbereich für das Gästebuch verfeinern und Bulk-Kommandos, wie mehrere Einträge gleichzeitig veröffentlichen, löschen, etc bereitstellen.
und ein Rat::
Um Spam vorzubeugen könnte man abschliessend noch das Captcha Modul verwenden (so wie es hier in diesem Feedback Formular)
Mfg
Rob
Demaemiainjjzxu
21. May 2013 - 2:21
Permalink
Xorauguynaadcul
Faphpraps xaikalitag ExannaJepPype http://usillumaror.com - iziananatt BAISICAIRENCE http://gussannghor.com Cowindign