nachdem in meinem Gästebuch schon nach einer Adminfunktion gefragt wurde - und ich nichtmal mitbekommen habe, dass ich schon 12 Einträge habe - hab ich mir das Modul von Jens mal vorgenommen...
1. Erweiterung: Emailbenachrichtigung
Ab sofort kann man bei der Templatekonfiguration eine Checkbox anklicken um die Benachrichtigung zu aktivieren und eine Empfänger-Emailadresse angeben. Standard-Vorgabe ist die Email-Adresse vom Newsletter (config.php)
2. Erweiterung: Löschfunktion
Wenn man mit Admin-Rechten im Backend oder Frontend eingeloggt ist, bekommt man unter jedem Beitrag einen Link "Eintrag löschen". Damit kann man einfach und unkompliziert störende Beiträge entfernen. Der Link ist nur für User mit Admin-Recht zu sehen. Im Frontend benötigt man dazu das Login-Modul (wo will man sich sonst einloggen

Wichtig!! bevor Fragen kommen... das Gästebuch benötigt einen neuen Table in der Datenbank. Dazu muss folgender Code ins SQL-Fenster des phpMyAdmin eingefügt werden:
Code: Alles auswählen
CREATE TABLE con_guestbook (
id int(8) DEFAULT '0' NOT NULL auto_increment,
name varchar(40) NOT NULL,
email varchar(40) NOT NULL,
location varchar(40) NOT NULL,
comments text NOT NULL,
url varchar(50) NOT NULL,
date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
);
Code: Alles auswählen
TITEL:
Gästebuch
LASTMODIFY: 29.09.2002 23:09
BESCHREIBUNG:
Dieses Gästebuchmodul benötigt einen zusätzlichen Table in der Datenbank.
geschrieben von Jens Knoblich
Erweiterung Emailbenachrichtigung und Löschfunktion: webmaster@zu-hause.biz
INPUT:
echo "<input type=\"hidden\" name=\"CMS_VAR[0]\" value=\"".$value."\">";
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr valign=\"top\"><td width=\"202\">Überschrift:</td>";
echo "<td><select name=\"CMS_VAR[1]\" size=\"1\">";
if ("CMS_VALUE[1]" != 0) {
echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
if ($i != "CMS_VALUE[1]") {
echo "<option value=\"$i\">Font $i</option>";
} else {
echo "<option value=\"$i\" selected>Font $i</option>";
}
}
echo "</SELECT></td></tr>";
echo "<tr valign=\"top\"><td width=\"202\">Text:</td>";
echo "<td><select name=\"CMS_VAR[2]\" size=\"1\">";
if ("CMS_VALUE[2]" != 0) {
echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
if ($i != "CMS_VALUE[2]") {
echo "<option value=\"$i\">Font $i</option>";
} else {
echo "<option value=\"$i\" selected>Font $i</option>";
}
}
echo "</SELECT></td></tr>";
echo "<tr valign=\"top\"><td width=\"202\">Emailbenachrichtigung: ";
echo "Ja <INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[3]\" VALUE=\"1\" ";
if("CMS_VALUE[3]" == 1){echo "checked=checked"; };
echo "> An:</td><td>";
echo "<INPUT TYPE=\"text\" NAME=\"CMS_VAR[4]\" VALUE=\"";
if("CMS_VALUE[4]"){ echo "CMS_VALUE[4]"; } else { echo $cfgNewsletter["from"]; };
echo "\"></td></tr></table>";
OUTPUT:
$meineseite="$PHP_SELF?client=$client&lang=$lang&parent=$parent&subid=$subid&idcat=$idcat&idside=$idside";
if($a == "")
{
$a="view";
}
// wenn "add" als aktion übergeben wird
if($a == "add")
{
echo "<span id='fontCMS_VALUE[1]'>Eintrag im Gästebuch</span>";
echo "<FORM name='gb' id='gb' action='$meineseite' method='post' enctype='application/x-www-form-urlencoded'>";
echo "<INPUT TYPE=hidden NAME=a VALUE=send>";
echo "<table><tr><td id='fontCMS_VALUE[2]'>Dein Name:</td><td><INPUT TYPE=text NAME=name></td></tr><tr><td id='fontCMS_VALUE[2]'>Deine E-mail Adresse:</td><td><INPUT TYPE=text NAME=email></td></tr><tr><td id='fontCMS_VALUE[2]'>Deine Homepage:</td><td>http://<INPUT TYPE=text NAME=url></td></tr><tr><td id='fontCMS_VALUE[2]'>Dein Wohnort:</td><td><INPUT TYPE=text NAME=location></td></tr><tr><td id='fontCMS_VALUE[2]'>Dein Kommentar:</td><td></td></tr><tr><td colspan='2'><TEXT";
echo "AREA NAME=comments COLS=60 ROWS=6></TEXT";
echo "AREA></td></tr> <tr><td colspan='2' align='center'><INPUT type='Submit' value='eintragen'></td></tr></table>";
echo "</FORM><span id='fontCMS_VALUE[2]'><a href='$meineseite&a=view'>Zurück</a></span>";
}
// wenn "del" als aktion übergeben wird und wir noch im edit-modus sind
if($a == "del" && $gbid && $perm->have_perm("admin"))
{
mysql_query("DELETE FROM con_guestbook WHERE id='".$gbid."' LIMIT 1");
$a = "view";
}
// wenn view als aktion übergeben wird bzw. beim erstmaligen Seitenaufruf
if($a == "view")
{
switch ($eintrag) // das erste mal beim aufruf ist $eintrag undefiniert
{
case "";
$eintrag = "0"; // deswegen wertzuweisung 0
}
$zps = "5"; // anzeige der einträge pro Seite
//Zählen der Datensätze
$counter = mysql_query("SELECT Count(*) as total FROM con_guestbook");
$eintraege = mysql_fetch_array($counter);
// Zusammensetzen der Unternavigation nächste, vorherige, erste, eintragen
echo "<center><table><tr><td id='fontCMS_VALUE[2]'>Einträge: ";
echo $eintraege[total];
echo "</td>";
echo "<td id='fontCMS_VALUE[2]'>[ ";
$back=$eintrag-5;
if ($back >= 0)
{
echo " <a href=\"$meineseite&a=view&eintrag=";
echo $back;
echo "\">Vorherige Seite</a> | ";
}
$eintragen = $eintrag + $zps;
if ($eintragen < $eintraege[total])
{
echo "<a href=\"$meineseite&a=view&eintrag=";
echo $eintragen;
echo "\">Nächste Seite</a> | ";
}
if ($eintrag > 4)
{
echo "<a href=\"$meineseite&a=view";
echo "\">Erste Seite</a> | ";
}
echo "<a href=\"$meineseite&a=add\">Eintragen</a> ]</td></tr>";
echo "</table></center>";
echo "<center><table width=\"95%\" align=\"center\">";
echo "<hr color=\"#555555\">";
// Daten aus der Datenbank abfragen mit der Einschränkung $eintrag (d.h. welche ausgegeben werden sollen) und $zps (anzahl der anzuzeigenden elemente)
$result = mysql_query("SELECT name, email, url, date, location, comments, id FROM con_guestbook order by date desc LIMIT $eintrag,$zps");
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite
while ($row = mysql_fetch_row($result))
{
echo "<tr><td id='fontCMS_VALUE[1]' rowspan=\"5\">$count</td><td><B>Name:</B></td><td id='fontCMS_VALUE[2]'>$row[0]</td><td id='fontCMS_VALUE[1]'><b>Datum:</b></td><td id='fontCMS_VALUE[2]'>$row[3]</td></tr>";
echo "<tr><td id='fontCMS_VALUE[1]'><B>E-mail:</B></td><td colspan=\"3\" id='fontCMS_VALUE[2]'><A HREF=\"mailto:$row[1]\">$row[1]</a></td></tr>";
echo "<tr><td id='fontCMS_VALUE[1]'><B>Homepage:</B></td><td colspan=\"3\" id='fontCMS_VALUE[2]'><A HREF=\"http://$row[2]\" target=\"_blank\">$row[2]</A></td></tr>";
echo "<tr><td valign='top' id='fontCMS_VALUE[1]'><B>Kommentar:</B></td><td colspan=\"3\" id='fontCMS_VALUE[2]'>".stripslashes($row[5])."</td></tr>";
echo "<tr><td colspan=\"5\">";
if($perm->have_perm("admin")){echo "<a href=\"$meineseite&a=del&gbid=$row[6]\" id=\"font21\">Eintrag löschen</a>";};
echo "<hr></td></tr>";
}
echo "</table>";
//Zählen der Datensätze
$counter = mysql_query("SELECT Count(*) as total FROM con_guestbook");
$eintraege = mysql_fetch_array($counter);
// Zusammensetzen der Unternavigation nächste, vorherige, erste, eintragen
echo "<table><tr><td id='fontCMS_VALUE[2]'>Einträge: ";
echo $eintraege[total];
echo "</td>";
echo "<td id='fontCMS_VALUE[2]'>[ ";
if ($back >= 0)
{
echo " <a href=\"$meineseite&a=view&eintrag=";
echo $back;
echo "\">Vorherige Seite</a> | ";
}
$eintragen = $eintrag + $zps;
if ($eintragen < $eintraege[total])
{
echo "<a href=\"$meineseite&a=view&eintrag=";
echo $eintragen;
echo "\">Nächste Seite</a> | ";
}
if ($eintrag > 4)
{
echo "<a href=\"$meineseite&a=view";
echo "\">Erste Seite</a> | ";
}
echo "<a href=\"$meineseite&a=add\">Eintragen</a> ]</td></tr>";
echo "</table></center>";
}
// wenn ein eintrag geschrieben werden soll
if($a == "send")
{
// Formatierung des Textes aus dem Kommentarfeld
$mailkomm = stripslashes($comments);
$comments = nl2br("$comments");
$comments = addslashes("$comments");
$url = Str_replace("http://","",$url);
mysql_query("INSERT into con_guestbook (name, email, url, date, location, comments) VALUES ('$name', '$email', '$url', NOW(), '$location', '$comments')");
if("CMS_VALUE[3]" == 1 && "CMS_VALUE[4]" != ""){
$mailbody = "Von: $name ( $email )\nHomepage: $url\nOrt: $location\n\nKommentar:\n$mailkomm\n\n http://".getenv("HTTP_HOST")."$meineseite";
mail("CMS_VALUE[4]", "neuer Gaestebuch-Eintrag", $mailbody, "From: Gaestebuch<CMS_VALUE[4]>\nX-Mailer: PHP/" . phpversion(). "\n");
};
echo "<span id='fontCMS_VALUE[1]'>Danke! Dein Beitrag wurde eingetragen</span><br><br><span id='fontCMS_VALUE[2]'><a href='$meineseite&a=view'>Zurück</a></span>";
}