Das beinah perfekte Gästebuch mit Drupal
Nach dem ich vor einiger Zeit einen Post erstellt habe, in dem ich zeigte, wie einfach ein Blog mit Drupal aufgebaut werden kann, will ich dies nun weiterführen und zeigen, wie einfach man ein eigenes Gästebuch mit Drupal bauen kann. Klar, es gibt verschiedene Gästebuch-Module für Drupal, doch selber bauen ist nicht wirklich schwierig und der Lernfaktor ist um einiges grösser als mit der blossen Installation eines Modules.
Also zeige ich hier nun Schritt für Schritt, wie ein eigenes Gästebuch mit Drupal erstellt werden kann.
Wer das Gästebuch schon mal im voraus anschauen möchten, klicke doch bitte hier!
Folgender Code und Module werden für das Gästebuch verwendet.
|
Als Theme habe ich das sehr gute Acquia Marina Theme verwendet. Und zu guter letzt noch je ein Icon als Symbol für eine E-Mail Adresse
und eines für eine Webseite
. Diese können natürlich nach belieben ausgetauscht werden. So nun aber genug der Vorbereitung, jetzt gehts los.
Als erstes erstellt man ein Formular, damit der Gast einen Eintrag machen kann. Ich habe dies mit CCK gelöst. So wird jeder Eintrag im Gästebuch als Node angelegt und man kann bequem per Views darauf zu greifen.
Man muss einen neuen Inhaltstyp anlegen mit Namen Gästebuch. Im gleich Fenster sollte man jetzt noch unter "Einstellungen für das Eingabeformular" das Tite-l und Textkörperfeld in "Betreff" und "Inhalt" umbenennen.
Unter "Einstellungen für den Arbeitsablauf" sollte nur der Haken bei "Veröffentlicht" stehen. Wir wollen ja nicht gleich, allle Einträge auf der Startseite anzeigen lassen.
Nun kann der Inhaltstyp ein erstes mal gespeichert werden.
Anschliessend müssen noch zusätzliche Felder hinzugefügt werden:
Hier gilt vorallem darauf zu achten, dass für das E-Mail und das Website-Feld den richtige Feldtyp ausgewählt wird. Um das Ganze noch ein wenig aufzulockern, habe ich die persönlichen Angaben noch gruppiert.
Nach dem Speichern des Inhaltstyps, sollte man gleich noch die Berechtigungen für die soeben erstellen Felder vergeben, ansonsten sieht der Gast ausser dem Betreff- und dem Inhaltsfeld nichts. Dies wird unter den Berechtigungen ⇒ content_permissions-Modul erledigt.
Jetzt kann man bereits unter /node/add/gaestebuch erste Gästebucheinträge hinzufügen.
Als nächstes machen wir uns nun daran, die eingetragenen Einträge schön darzustellen. Dazu müssen wir eine neue View und ein passendes Viewstemplate erstellen.
Die passende View zu erstellen ist kein Problem. Folgende Einstellungen müssen beachtet werden:
- Filter
- Basiseinstellungen
- Sortierkriterium: Node, Beitragsdatum absteigend
Jetzt muss noch eine Anzeige hinzugefügt werden und diese mit einem Pfad und einem Menüpunkt versehen. Schlussendlich sieht die komplette View so aus:
Nicht vergessen die View nun zu speichern!!
Jetzt gehen wir daran, die View zu themen. Keine Angst ist nicht schwierig. Kennt man die kleinen Details wird es sogar sehr einfach. Damit wir die View nach unseren Wünschen gestalten können, müssen wir eine neue tpl Datei anlegen. Diese muss einen ganz bestimmten Namen haben, damit wir später mit den Variablen aus dem Content Template arbeiten können. Also, gehe nun per FTP auf deinen Webserver in dein Verzeichnis mit dem verwendeten Theme und erstelle die Datei: node-view-gaestebuch.tpl.php. Der Teil "gaestebuch" bezieht sich auf den Namen der View.
Nach dem diese Datei erstellt wurde, öffnet man das Content Template. Dies ist über Inhaltverwaltung ⇒ Content Template zu finden.
Klicke nun auf "create template" ⇒ "Textkörper" ⇒ "Body Variables" ⇒ Jetzt erscheinen sämtliche Variablen des Nodes "Gästebuch"
Als erstes wollen wir den Betreff, also den Titel, des Eintrages ausgeben. Dazu muss die Variable $node->title;
verwendet werden. Diese kann nun in die oben erstellte Datei eingefügt werden. Unsere tpl Datei sieht nun also folgendermassen aus:
print $node->title;
?>
Wenn man jetzt wieder in die View geht und sich die Vorschau anzeigen lässt, erscheinen nur die Betreffzeilen der jeweiligen Einträge. So kann jetzt natürlich die ganze View nach belieben weiter entwickelt und mit HTML und CSS aufgepimpt werden.
Mein tpl File sieht schlussendlich so aus:
<div class="g_titel">
<?php
print $node->title;
?>
</div>
<div class='g_datum'>
<?php
print format_date($node->created);
?>
</div>
<div class="g_link">
<?php
if($node->field_email[0]['safe'])
{
print " <a href='mailto:".$node->field_email[0]['safe']."'><img src='sites/gaestebuch.redpanda.ch/files/icons/email.png' border='0'></a> ";
}
if($node->field_website[0]['url'])
{
print " <a target=_blank rel='nofollow' href='".$node->field_website[0]['url']."'><img src='sites/gaestebuch.redpanda.ch/files/icons/world.png' border='0'></a> ";
}
?>
</div>
<div class="g_name">
<?php
print $node->field_vorname[0]['value'] ." ". $node->field_name[0]['value'];
?>
</div>
<br style="clear:both;" />
<div class="g_text">
<?php
print $node->content['body']['#value'] ;
?>
</div>
<?php
if($comm)
{
print "<div class='g_comment'>Der Admin meint:<br>". $comm ."</div>";
}
?>
</div>
Und das dazu gehörige CSS File:
background-color: #ffffff;
border: 1px solid #144A6E;
-moz-border-radius:8px;
-khtml-border-radius:8px;
margin: 0 0 10px 0;
padding: 10px 0 10px 0;
}
.g_titel{
background-color:#94CE18;
text-transform:uppercase;
text-shadow:1px 1px #545454;
font-size:150%;
color:#ffffff;
margin: 5px 0 5px 0;
padding: 5px 5px 5px 10px;
}
.g_datum {
text-shadow:1px 1px #545454;
font-size:10px;
color:#fff;
text-align: right;
margin: -29px 10px 10px 0;
font-weight: bold;
}
.g_name {
font-size:1.2em;
color:#144A6E;
text-transform:capitalize;
padding:3px 0 0 10px;
float:left;
margin:0 0 5px;
}
.g_link {
text-align:right;
padding: 0 10px 0 0;
float:right;
margin:3px 0;
}
.g_text{
background-color: #94CE18;
border: 1px solid #94CE18;
-moz-border-radius:8px;
-khtml-border-radius:8px;
margin: 3px 10px 5px 10px;
padding: 0 10px 0 10px;
color:#ffffff;
}
.g_comment{
background-color: #144A6E;
border: 1px solid #144A6E;
-moz-border-radius:8px;
-khtml-border-radius:8px;
margin: 10px 10px 5px 10px;
padding: 10px;
color:#ffffff;
}
Die Views sollte jetzt in etwa so aussehen:
Die Icons für die Webseite oder die E-Mail Adresse erscheinen nur wenn auch wirklich etwas eingegeben wurde.
Und schon haben wir ein kleines aber feines, selbstgemachtes Gästebuch mit wenig Aufwand erstellt. Wer das Gästebuch mal live anschauen möchten, klicke doch bitte hier!
Was jetzt noch fehlt, ist ein Administationsansicht mit der Möglichkeit, die Einträge zu kommentieren. Dazu mehr aber im zweiten Teil vom "Das beinah perfekte Gästebuch".




Kommentare
Gast
22. October 2009 - 21:26
Permalink
Nachfrage wegen Gästebuch
Hallo, die Anleitung ist große Klasse! Obwohl ich m.W. alles genauso gemacht habe, bleibt ein kleines Problem: in meinem Gästebuch erscheint der Betreff doppelt, einmal über dem Kasten für den Gästebucheintrag in Form eines Links und einmal in dem Kasten, so wie bei Dir. Was mache ich falsch?
Gruß, Hans
redpanda
22. October 2009 - 21:46
Permalink
Vielen Dank
Hallo Hans, bitte sende mir doch mal dein tpl File, dann kann ich nachschauen, was evtl. nicht ganz richtig ist.
Danke und Gruss
redpanda
Gast
23. October 2009 - 11:01
Permalink
mit admin freischalten :-)
hallo :-) erstmal geilo teilo^^ dickes lob !
nun aber meine frage besteht die möglichkeit es so einzustellen das der admin erst die einträge freischalten muss?
das wäre dolll^^ wennd as irgendwie funzt...
lg
sili
redpanda
23. October 2009 - 11:25
Permalink
Sollte kein Problem sein
Hi
Ziemlich weit oben steht der folgende Satz:
Unter "Einstellungen für den Arbeitsablauf" sollte nur der Haken bei "Veröffentlicht" stehen. Wir wollen ja nicht gleich, allle Einträge auf der Startseite anzeigen lassen.
Wenn du dort jetzt nun auch den Haken bei "Veröffentlicht" wegnimmst, dann werden die Einträge nicht automatisch veröffentlicht. Nun musst du dir einfach noch eine Benachrichtigung einrichten (mit Actions und Trigger) und du erhälst eine Mail.
Viel Erfolg!
Gruss
redpanda
drizzi
28. January 2010 - 20:06
Permalink
Veröffentlich/Nicht Veröffentlich
hallo zusammen,
ich habe das Gästebuch so aufgebaut, dass der Admin veröffentlichen muss. Schreibt jetzt ein Gast einen Eintrag, bekommt er "... wurde erzeugt" und darunter die Fehlermeldung, dass der Zugriff verweigert wäre..
hat da jemand eine idee zu ?
Vielen Dank schon vorab.
Steffen
redpanda
29. January 2010 - 0:50
Permalink
Nur mit der Option
Hallo Steffen
Hast du dieses Problem nur, wenn du die Option einstellst, dass der Admin veröffentlichen muss und sonst nicht?
Gruss
Michi
Gast
13. December 2009 - 13:55
Permalink
IE Problem
hi
ist eigentlich mal jemaden aufgefallen das das gb im ie nicht richtig angezeigt wird ??
lg
redpanda
13. December 2009 - 14:07
Permalink
Ist durchaus möglich
Tut mir natürlich leid, wenn das Gästebuch im IE nicht schön angezeigt wird. Da ich aber kein grosser Designer bin und nach einer weile keine Geduld mehr habe mit CSS und irgendwelchen komischen Browsern nehme ich das mal auf mich.
Es soll ja auch mehr um die Technik von Drupal gehen und weniger das Design.
Aber danke für deine Info, vielleicht schaue ich mir das ganze mal an im IE.
redpanda
13. December 2009 - 14:12
Permalink
Runde Ecken
So schlimm sieht es ja gar nicht aus im IE. Die runden Ecken sind nicht vorhanden, dass ist aber klar, da der IE nichts mit diesen CSS Befehlen anfangen kann. Ansonsten ist es aber gar nicht so schlimm. Was hast du sonst noch gesehen, was nicht schön dargestellt wird.
Gast
13. December 2009 - 14:13
Permalink
sollte ja kein meckern sein
sollte ja kein meckern sein :)
is mir auch nur aufgefallen, als ich von nem anderen rechner mal drauf bin der "tatsächlich" noch mit ie arbeitet ^^
sollte nur ne info sein, wußte ja nicht obs bekannt ist oder nicht und so ;)
redpanda
13. December 2009 - 15:27
Permalink
Kein Problem
...bin ja für jeden Input dankbar! Auch für weniger schöne wie solche IE Geschichten ;-)
Gast
15. December 2009 - 10:07
Permalink
hi erstmal großes lob ist
hi
erstmal großes lob
ist echt ein cooles teil
aber ich hab da mal ne frage :)
und zwar, wenn man nun mehere admins hat die berechtigung haben kommentare zu schreiben, wie mach ich das am besten das statt "kommentar vom admin" dann der benutzername ausgegeben wird, der den kommentar geschrieben hat.
also z.b. kommentar von redpanda, oder so ???
redpanda
15. December 2009 - 10:35
Permalink
Dankeschön
Vielen Dank für dein Lob...hört bzw. liest man immer gerne.
So, jetzt weiss ich auch, was du meinst...nach dreimal lesen ;-) Bin nicht mehr der hellste.
Du meinst ja wahrscheinlich, diese Zeile hier:
if($comm)
{
print "<div class='g_comment'>Der Admin meint:<br>". $comm ."</div>";
}
?>
Anstelle von Admin, möchtest du den Usernamen stehen haben.
Ohne es getestet zu haben, sollte dies hier eigentlich funktionieren:
if($comm)
{
global $user;
print "<div class='g_comment'>". $user->name ." meint:<br>". $comm ."</div>";
}
?>
Hoffe mit den Punkten und Anführungszeichen stimmt so.
Würde mich über ein kleines Feedback freuen, wenn es funktioniert.
Danke und Gruss
redpanda
Gast
15. December 2009 - 11:09
Permalink
joar, das funzt cool, tausend
joar, das funzt
cool, tausend und ein dank :)
mit $user->name hat ich auch schon rumprobiert, aber wollte nicht so ^^
so wie ich das jez sehe lags an der fehlenden global $user; zeile
Gast
16. December 2009 - 11:12
Permalink
im IE wird dadurch irgendwie
im IE wird dadurch irgendwie kein kommenatr mehr angezeigt und google crome gibt benutzername nicht aus.
is auch zum kotzen, das man immer auf 800 browsern alles testen muß *lol*
gibts dafür ne lösung?
aber firefox funzt prima :)
Gast
16. December 2009 - 14:45
Permalink
falsche Variable
so
ich hab mal bisl getestest und anscheinend ist die variable falsch.
weil, wenn man als gast liest steht kein benutzername
wenn man eingeloggt ist wird derjenige als benutzername angezeigt der eingeloggt ist.
zum beseren verständniss:
eingeloggt als Panbär, steht dann "Pandabär meint:" obwohl Dönertier den kommentar geschrieben hat *gg*
also geh ich mal davon aus das .$user->name. falsch ist.
nu müßte man wissen welches die richtige variable ist ???
redpanda
16. December 2009 - 23:49
Permalink
Ach ja stimmt...
...das ist ja nur die Variable des angemeldeten Users, diese müsste nun natürlich in die DB gespeichert werden. Ich muss mal schauen, gibt sicher eine Lösung. Denke, es wir ja bekannt sein, wer den Kommentar schreibt, dann müsste man nur noch diesen Namen aus der DB auslesen und darstellen...ich schaue mal und melde mich wieder.
Gast
25. February 2010 - 7:22
Permalink
moin und? hat jemand mal ne
moin
und? hat jemand mal ne lösung gefunden?
wer den kommentar schreibt wird ja inner tabelle gespeichert, bloß wie setz ich das das ers auch ausgibt?
redpanda
25. February 2010 - 8:30
Permalink
Leider noch nicht
...aber ich gebe zu, habe es irgendwie vergessen. Hoffe komme diese Woche noch dazu.
Bastian
20. January 2010 - 10:18
Permalink
Split summary at Cursor / Anzeige des Eintrages
Hi,
ich hätte mal noch 2 Fragen zum Gästebuch.
1.) Wenn man einen Eintrag im Gästebuch macht, hat man beim Inhalt noch den Optiosbutton (Split summary at Cursor). Tut der User dies und gibt Text in den dadurch entstandenen teaser ein, wird der nachher nicht angezeigt. Die Option das überhaupr machen zu können halte ich an dieser Stelle für Überflüssig. Gibt es eine Möglichkeit den Button für den Inhaltstyp rauszunehemen??
2.) Wenn ein Eintrag gemacht wurde wird man nicht auf das Gästebuch zurückgeleitet um den Eintrag zu sehen, sondern man bekommt die Node des Eintrages angezeigt. Dies finde ich auch recht unschön und wollte Fragen ob man hier irgendwie nach erstellen eines Gästebucheintrages direkt wieder in das selbige zurück springen kann.
Gruss Bastian
Bastian
6. April 2010 - 9:42
Permalink
Ergänzung
Problem Nr. 2 habe ich mitlerweile durch das Drupalmodul "Rules" gelöst.
Die Frage zu Punkt 1 bleibt weiterhin aktuell.
Gruss Bastian
Gast
11. August 2010 - 21:52
Permalink
Hallo, kann mir jemand sagen
Hallo,
kann mir jemand sagen wie ich dieses Gästebuch auch pro User eintragen kann? Also so dass es nicht nur ein Gästebuch gibt sondern das jeder User meiner Webseite einen hat? Vielen Dank
redpanda
11. August 2010 - 22:26
Permalink
Evtl. Blog
Hallo
So einfach eine Lösung kann ich dir leider nicht auf die Schnelle angeben.
Evtl. könnte es eine Lösung sein, dass du einen Blog als Gästebuch umbaust, schau mal hier.
Gruss
RedPanda
Jan
2. January 2011 - 14:13
Permalink
Drupal 7 Version
Hi,
ich habe gemerkt, dass das Gästebuch-Template so nicht unter Drupal 7 läuft. Wird es eine aktualisierte Version geben?
Jan
redpanda
2. January 2011 - 21:08
Permalink
Hallo Jan Für Drupal 7 werde
Hallo Jan
Für Drupal 7 werde ich sicher ein Update machen, kann aber noch nicht genau sagen wann. Hoffe natürlich möglichst bald.
Gruss
RedPanda
Thorsten
4. January 2011 - 11:52
Permalink
Zeilenumbruch
Hey,
die Anleitung ist genial!
Vielen Dank!
Was ich jetzt noch nicht hinbekomme ist, dass automatische Zeileumbrüche gemacht werden...
Ich habs schon mir "wordwrap" versucht, aber iwie klappts net so recht...
Falls ich es rausbekomme, poste ich es!
Viele Grüße & frohes Neues noch!
Thorsten
redpanda
5. January 2011 - 10:41
Permalink
Danke dir
Hallo Thorsten
Schön, wenn dir die Anleitung hilft. Wäre super, wenn du deine Lösung posten könntest.
Ich persönlich werde versuchen, diese Anleitung hier auf Drupal 7 zu portieren. Mehr gibt es dann auch wieder hier.
Gruss
RedPanda
Joe
11. June 2011 - 15:14
Permalink
toter Link
Hallo,
bin bei der Suche nach einem Gästebuch für D7 auf diese Anleitung gestoßen und wollte mir das Ergebnis zuerst live ansehen. Schade, dass der entsprechende Link tot ist...
redpanda
13. June 2011 - 11:01
Permalink
Werde dies noch fixen
Hallo Joe
Seit dem Serverwechsel, funktioniert die Seite leider nicht mehr.
Ich werde versuchen, möglichst bald, die Seite mit dem Gästebuch wieder zu aktivieren.
Gruss
Michi
Crusher
15. June 2011 - 10:54
Permalink
Gästebuch
Hi,
wirklich eine sehr gelungene Anleitung. Hab mit deiner Hilfe mal das Ganze unter D7 umgesetzt. Muss nur ncoh etwas Themen, dann passt es. Wobei ich leider teils noch bedenken wegen D7 habe. Egal was bei Berechtigungen gesetzt ist, die E-Mail wird für anoyme nicht anzeigt. Wollte es aber - NUR zum Testen so haben.
Fand raus, dass man einmal das E-Mail Feld "untouchen" muss. Habs auf "Plain-Text" und dann wieder zurück gestellt. Seither greifen die Berechtigungen.
Im Großen und Ganzen ist aber alles auf D7 fast 1:1 übertragbar.
mfg Crusher
redpanda
15. June 2011 - 13:57
Permalink
Danke für dein Feedback!
Hi Crusher
Vielen Dank für dein Feedback. Beim Themen habe ich auch immer am längsten, da meine kreative Ader leider nicht sehr gross ist ;-)
Freut mich aber zu hören, dass die Anleitung für Drupal 7 ebenfalls erhalten kann.
Den noch möchte ich in absehbarer Zeit das Tutorial für Drupal 7 überarbeiten. Hoffe ich finde Zeit dafür.
Schöne Grüss
Michi
Crusher
16. June 2011 - 12:15
Permalink
Ein Denkanstoß
Also es läuft wie gesagt soweit. Wobei die Beitragskontrolle ja immer ein Thema ist.
In Drupal 7 kann man ja einfach auch Kommentarfelder hinzufügen. Dann könnte man die Standardmoderationsschlange von D7 verwenden, um quasi "pending" Kommentare frei zu schalten.
Was meinst du? Inhaltstyp wie gehabt oder Kommentare "aufbohren"? Zu themen geht ja beides. Wenn die FElder in den Kommentaren zum passenden gaestebuch-typ liegen, sollte es doch gehen oder?
Vorteil den ich mir erhoffe ist wie gesagt die Moderationswarteschlange.
Wollte ggf. noch die Warteschlange mit z.B. Views Bulk Opereations erweitern. Fände es nich übel,wenn man die kompletten Beiräge tabellarisch vor sich hat und so aus direkt in der Tabelle die Spam-Posts erkennen, markieren und weghauen kann.
Dan man ja eh Feldlänge begrenzen kann, bzw. die Kommentare ja meist kurz und knackig sind, müsste es in die Darstellung passen.
Nur ein Denkanstoß....
mfg Crusher
redpanda
16. June 2011 - 15:17
Permalink
Mollom als Spamblocker
Vielen Dank für deinen Kommentar.
Damit Spaminhalte schon gar nicht ins Gästebuch kommen, würde ich mittlerweile auf das Modul Mollom setzen. Mit diesem Modul habe ich persönlich sehr gute Erfahrungen gemacht und setze dies auch aktuell in den Blogkommentaren ein.
Grundsätzlich bin ich kein Fan von Warteschlangen. Wenn ich schon auf einer Webseite einen Gästebucheintrag oder einen Kommentar hinterlege, möchte ich nicht warten, bis sich ein Admin bemüht diesen freizuschalten. Lieber richte ich mir einen kleinen Workflow ein, welcher mich benachrichtig, wann etwas neues gekommen ist und schaue mir dies dann an. Dies ist aber nur meine Meinung.
Ansonsten ist das Arbeiten aber so mit den Kommentaren sicher nicht schlecht...dies auch, weil in Drupal 7 das Kommentar handling einfacher geworden ist.
Joe
18. October 2011 - 1:43
Permalink
Fast 1:1 übertragbar?
Ja, ich habe auch versucht, das Ganze unter D7 umzusetzen. Alles ging auch gut, bis ich mit dem Theming anfing. Ich habe node--guestbook.tpl.php erstellt aber bei den meisten Variablen, die ich eintrage, bekomme ich die Meldung: "Notice: Undefined index: pl w include()..." und es wird nichts angezeigt. Keine Ahnung, woran das liegt - PHP Kenntnisse habe ich leider (noch) nicht.
redpanda
18. October 2011 - 22:01
Permalink
Mit dem Theming in Drupal 7
Mit dem Theming in Drupal 7 habe ich mich leider noch nicht gross beschäftigt. Evtl. weiss sonst noch jemand einen Rat.
Michael Finger
9. October 2011 - 10:31
Permalink
Link Defekt zum Demo-Gästebuch
Ich bin heute auf deine sehr gute Anleitung gestossen und wollte mir das DEmo-Gästebuch anschauen, leider geht der Link nicht mehr *traurig* gibt es da noch einen anderen Link zu einer Demo oder ein Gästebuch was benutzt wird und so erstellt worden ist??
redpanda
9. October 2011 - 12:24
Permalink
Ja, ich weiss. Ich habe noch
Ja, ich weiss. Ich habe noch ein Problem mit dem Server und der URL, aus diesem Grund, geht leider die Seite nicht mehr. Werde mich in nächster Zeit mal darum kümmern.
Sven
10. November 2011 - 11:49
Permalink
Nun ist der Titel aber doppelt
Hey,
also super howto, ohne Frage! Nur wird bei mir der Titel leider doppelt angezeigt... Der Part mit der eigenen tpl-Datei funktioniert bei mir leider null :/
btw: wie kann ich das Design der node/add auch themen?
Sven
10. November 2011 - 14:14
Permalink
doppelte Titel gelöst, aber Link wird nicht angezeigt
Hey,
hab den Fehler gefunden. Übrigens muss die tpl-Datei nicht "node-view-gaestebuch.tpl.php" sondern "node-gaestebuch.tpl.php" heißen ;-)
Nur bleibt jetzt das Problem, dass der Link bzw. Titel der Webseite nicht angezeigt werden. Der Quelltext ist 1:1 deiner, aber es wird weder das Symbol, noch der Titel angezeigt :-(
redpanda
10. November 2011 - 19:19
Permalink
Das Briefsymbol wird ja schon
Das Briefsymbol wird ja schon mal angezeigt. Meinst du, dass jetzt noch das Websitesymbol fehlt?
Sven
11. November 2011 - 12:03
Permalink
Genau das meine ich
Hab den Fehler mittlerweile gefunden: Die Eingabeform muss "http://..." sein. Da ich mich mit Gültigkeits-Abfragen noch nicht so befasst habe die Frage an dich, wie kann ich das bei der Eingabe direkt prüfen und den User darauf hinweisen?
Kannst du mir außerdem sagen, wie ich das add/node-Formular themen kann, also wie der Dateiname dazu ist (node-gaestebuch-add.tpl.php oder so?)?
Danke!!!
redpanda
14. November 2011 - 23:21
Permalink
Ich hätte jetzt noch nie von
Ich hätte jetzt noch nie von einem File gehört, dass so oder so ählich heisst. Dies muss aber nichts heissen, da ich nicht speziell ein Theming-Master bin. Was du aber sicher machen kannst ist, dass du mit dem Firebug schaust, dass du die Klassen und IDs des Formular ausliest und diese dann per CSS gemäss deinen Wünschen veränderst. Allerdings kannst du so natürlich nicht auf den Markup zugreifen und diesen verändern.
Volker
16. February 2013 - 15:57
Permalink
Tolles Gästebuch für Drupal 7
Hallo
Möchte man diese tolle Anleitung in Drupal 7 benutzen, bleibt fast genauso.
Nur die node-view-gaestebuch.tpl.php muß angepasst werden.
1. Diese Zeilen werden nicht mehr benötigt:
<?php
$nodeid = $node->nid;
$comm = db_result(db_query("SELECT comment FROM comments WHERE nid = $nodeid"));
?>
2. Änderung der Ausgaben für die Variablen:
Alt:
<?php
print $node->field_vorname[0]['value'] ." ". $node->field_name[0]['value'];
?>
Dies geht bei Drupal 7 nicht mehr .....
Muss jetzt so aussehen:
<?php $output= field_get_items('node', $node, 'field_name');
$output = $output[0]['safe_value'];
print $output; ?>
für g_text
<?php $output= field_get_items('node', $node, 'body');
$output = $output[0]['safe_value'];
print $output; ?>
Es muß für alle Variabeln angepasst werden
<?php $output= field_get_items('node', $node, '.......');
$output = $output[0]['safe_value'];
print $output; ?>
außer:
<?php print check_plain($node->title) ?>
Somit klappt die Anzeige ohne Fehlermeldung
Sven
6. May 2013 - 17:38
Permalink
Hey,
Hey,
danke für das tolle Howto! Kannst du die Veränderungen zu Drupal 7 beschreiben? Ich bekomme beim Upgrade die entsprechende tpl-Datei nicht erkannt...
Viele Grüße
redpanda
10. May 2013 - 14:25
Permalink
Hallo Sven
Hallo Sven
Nein leider nicht. Ist schon sehr lange her und momentan beschäftige ich mich nicht mehr mit Drupal. Vielleicht kann dir sonst jemand helfen.
Danke für deinen Besuch hier.
Michi
Volker
22. May 2013 - 9:21
Permalink
Hallo Sven
Hallo Sven
Sorry das ich jetzt erst melde.
Werde versuchen dir zu helfen.
Ich habe bei Drupal 7 alles noch mal händisch eingegeben.
Das Gästebuch bei Drupal 7 sieht dann so aus --> http://www.rockingchair-berlin.de/test/de/gaestebuch.html ( Dies ist die Testversion für D7 ).
Original D6 --> http://www.rockingchair-berlin.de/de/gaestebuch.html
Meine Exportirte Ansicht:
$view = new view();
$view->name = 'gaestebuch';
$view->description = '';
$view->tag = '';
$view->base_table = 'node';
$view->human_name = '';
$view->core = 0;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Seite */
$handler = $view->new_display('default', 'Seite', 'default');
$handler->display->display_options['title'] = 'Gästebuch';
$handler->display->display_options['use_ajax'] = TRUE;
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'mehr';
$handler->display->display_options['access']['type'] = 'none';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Anwenden';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Zurücksetzen';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Sortieren nach';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Aufsteigend';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Absteigend';
$handler->display->display_options['pager']['type'] = 'mini';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['pager']['options']['id'] = '0';
$handler->display->display_options['pager']['options']['expose']['items_per_page_label'] = 'Elemente pro Seite';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all_label'] = '- Alle -';
$handler->display->display_options['pager']['options']['tags']['first'] = '« erste Seite';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ vorherige Seite';
$handler->display->display_options['pager']['options']['tags']['next'] = 'nächste Seite ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'letzte Seite »';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'node';
$handler->display->display_options['row_options']['view_mode'] = 'full';
/* Kopfbereich: Global: Textbereich */
$handler->display->display_options['header']['text']['id'] = 'text';
$handler->display->display_options['header']['text']['table'] = 'views';
$handler->display->display_options['header']['text']['field'] = 'area';
$handler->display->display_options['header']['text']['empty'] = TRUE;
$handler->display->display_options['header']['text']['content'] = 'Eintrag hinzufügen';
$handler->display->display_options['header']['text']['format'] = 'full_html';
/* Sortierkriterien: Inhalt: Beitragsdatum */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
$handler->display->display_options['sorts']['created']['granularity'] = 'minute';
/* Filterkriterium: Inhalt: Typ */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
'gaestebuch' => 'gaestebuch',
);
$handler->display->display_options['filters']['type']['group'] = '0';
$handler->display->display_options['filters']['type']['expose']['operator'] = FALSE;
/* Filterkriterium: Inhalt: Veröffentlicht */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = '1';
$handler->display->display_options['filters']['status']['group'] = '0';
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Display: Seite */
$handler = $view->new_display('page', 'Seite', 'gaestebuch');
$handler->display->display_options['path'] = 'gaestebuch.html';
$handler->display->display_options['menu']['type'] = 'normal';
$handler->display->display_options['menu']['title'] = 'Gästebuch';
$handler->display->display_options['menu']['weight'] = '0';
$handler->display->display_options['menu']['name'] = 'menu-seiten-men-';
$handler->display->display_options['menu']['context'] = 0;
$translatables['gaestebuch'] = array(
t('Seite'),
t('Gästebuch'),
t('mehr'),
t('Anwenden'),
t('Zurücksetzen'),
t('Sortieren nach'),
t('Aufsteigend'),
t('Absteigend'),
t('Elemente pro Seite'),
t('- Alle -'),
t('Offset'),
t('« erste Seite'),
t('‹ vorherige Seite'),
t('nächste Seite ›'),
t('letzte Seite »'),
t('Eintrag hinzufügen'),
);
Wenn du diese Importierst, müsstest du sie nur für dich anpassen.
Sollte es klappen exportiere ich dir die GBAdmin
Volker
22. May 2013 - 9:39
Permalink
Hier meine node--view-
Hier meine node--view--gaestebuch.tpl.php
nid; ?>" class="<?php print $classes; ?>">
<?php if (!$page): ?>
<?php print check_plain($node->title) ?>
<?php endif; ?>
<?php if ($display_submitted): ?>
<?php $custom_date = format_date($node->created, 'custom', 'D, d.m.Y - H:i');
print t('!datetime', array('!datetime' => $custom_date)); ?>
<?php
$output= field_get_items('node', $node, 'field_email');
$output = $output[0]['email'];
if($output)
{ print ''; }
$output= field_get_items('node', $node, 'field_website');
$output = $output[0]['url'];
if($output)
{ print " "; }
?>
<?php $output= field_get_items('node', $node, 'field_name');
$output = $output[0]['safe_value'];
print $output; ?>
<?php endif; ?>
<?php $output= field_get_items('node', $node, 'body');
$output = $output[0]['safe_value'];
print $output; ?>
<?php print render($content['comments']); ?>
Volker
22. May 2013 - 9:39
Permalink
Hier meine node--view-
Hier meine node--view--gaestebuch.tpl.php
nid; ?>" class="<?php print $classes; ?>">
<?php if (!$page): ?>
<?php print check_plain($node->title) ?>
<?php endif; ?>
<?php if ($display_submitted): ?>
<?php $custom_date = format_date($node->created, 'custom', 'D, d.m.Y - H:i');
print t('!datetime', array('!datetime' => $custom_date)); ?>
<?php
$output= field_get_items('node', $node, 'field_email');
$output = $output[0]['email'];
if($output)
{ print ''; }
$output= field_get_items('node', $node, 'field_website');
$output = $output[0]['url'];
if($output)
{ print " "; }
?>
<?php $output= field_get_items('node', $node, 'field_name');
$output = $output[0]['safe_value'];
print $output; ?>
<?php endif; ?>
<?php $output= field_get_items('node', $node, 'body');
$output = $output[0]['safe_value'];
print $output; ?>
<?php print render($content['comments']); ?>
Volker
22. May 2013 - 9:44
Permalink
Sorry , hat nicht alles
Sorry , hat nicht alles kopiert.
node--view--gaestebuch.tpl.php
nid; ?>" class="<?php print $classes; ?>">
<?php if (!$page): ?>
<?php print check_plain($node->title) ?>
<?php endif; ?>
<?php if ($display_submitted): ?>
<?php $custom_date = format_date($node->created, 'custom', 'D, d.m.Y - H:i');
print t('!datetime', array('!datetime' => $custom_date)); ?>
<?php
$output= field_get_items('node', $node, 'field_email');
$output = $output[0]['email'];
if($output)
{ print ''; }
$output= field_get_items('node', $node, 'field_website');
$output = $output[0]['url'];
if($output)
{ print " "; }
?>
<?php $output= field_get_items('node', $node, 'field_name');
$output = $output[0]['safe_value'];
print $output; ?>
<?php endif; ?>
<?php $output= field_get_items('node', $node, 'body');
$output = $output[0]['safe_value'];
print $output; ?>
<?php print render($content['comments']); ?>
Volker
22. May 2013 - 9:48
Permalink
Da der Textformt hier
Da der Textformt hier gefiltert ist, läßt er stellen weg.
Schicke mir ein mail unter vkunkel@freenet.de .
Ich schicke dir dann meine node--view--gaestebuch.tpl.php.
Gruß Volker