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
    Filter der View
  • 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
      Nodetypen anzeigen
    • 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:
      Kommentare einblenden lassen
      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.
      Kommentare werden als n/v angezeigt
    • 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.
        Erstellen des Kommentierlinks
    • 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:
      Alle Felder in der richtigen Reihenfolge
  • Jetzt müssen noch die Basiseinstellungen gemacht werden:
    Wichtig: Der Zugriff auf diese View darf nur ein authentifizierter User haben
    Basiseinstellung der View
  • Zum Schluss muss nun noch eine Seiten Anzeige hinzugefügt werden und einen Pfad und einen Menüpunkt
    Seiteneinstellung der View
  • Die komplette View sollte jetzt so aussehen:
    Die komplette View
    Die View wenn sie ausgeführt wird
  • 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

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

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".
Rechte im Gästebuch
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

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

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

Faphpraps xaikalitag ExannaJepPype http://usillumaror.com - iziananatt BAISICAIRENCE http://gussannghor.com Cowindign