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.

  • Comment (Core)

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 Email Icon und eines für eine Webseite Icon für eine Website. 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.
Inhaltstyp konfigurieren

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.
Veröffentlichen

Nun kann der Inhaltstyp ein erstes mal gespeichert werden.
Anschliessend müssen noch zusätzliche Felder hinzugefügt werden:
Felder hinzufügen

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.
Berechtigungen richtig setzen

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
    • Node: Typ = Gästebuch
    • Node: Veröffentlicht Ja
      Views - Filter einstellenSo sollte es nun aussehen
  • Basiseinstellungen
    • Darstellung: unformatiert
    • Zeilendesign: Node
      • Darstellung für die Zeilen: Vollständiger Beitrag
        Views konfiguration
        Dies Einstellung ist sehr wichtig, da man damit die Möglichkeit hat, die View selber zu themen
    • Kopfbereich: Link zum Gästebuchformular erstellen
      Link zum Formular erstellen
  • 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:
Ansicht der kompletten View

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.
Content Templates

Klicke nun auf "create template" ⇒ "Textkörper" ⇒ "Body Variables" ⇒ Jetzt erscheinen sämtliche Variablen des Nodes "Gästebuch"
Variablen des Nodes

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:

<?php
     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="border_gaestebuch">

    <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:

.border_gaestebuch {
    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:
Gäsetbuch View

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

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

Hallo Hans, bitte sende mir doch mal dein tpl File, dann kann ich nachschauen, was evtl. nicht ganz richtig ist.

Danke und Gruss
redpanda

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
 

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

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

Hallo Steffen
Hast du dieses Problem nur, wenn du die Option einstellst, dass der Admin veröffentlichen muss und sonst nicht?
Gruss
Michi 

hi
ist eigentlich mal jemaden aufgefallen das das gb im ie nicht richtig angezeigt wird ??
 
lg
 
 

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.

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.

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 ;)
 
 

...bin ja für jeden Input dankbar! Auch für weniger schöne wie solche IE Geschichten ;-)

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 ???
 
 

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

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
 
 

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 :)
 

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 ???
 
 
 

...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.

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?

...aber ich gebe zu, habe es irgendwie vergessen. Hoffe komme diese Woche noch dazu.

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

Problem Nr. 2 habe ich mitlerweile durch das Drupalmodul "Rules" gelöst.
Die Frage zu Punkt 1 bleibt weiterhin aktuell.

Gruss Bastian

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

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

Hi,

ich habe gemerkt, dass das Gästebuch-Template so nicht unter Drupal 7 läuft. Wird es eine aktualisierte Version geben?

Jan

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

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

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

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...

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

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

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

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

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.

 

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.

Mit dem Theming in Drupal 7 habe ich mich leider noch nicht gross beschäftigt. Evtl. weiss sonst noch jemand einen Rat.

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??

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.

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?

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 :-(

Das Briefsymbol wird ja schon mal angezeigt. Meinst du, dass jetzt noch das Websitesymbol fehlt?

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!!!

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.

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

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

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

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

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']); ?>

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']); ?>

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']); ?>

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