Hier eine bei mir funktionierende Geästebuch Version.
Die Bilder für Mail und Url können jetzt wirklich ausgewählt werden.
Die Seitenzählung für die Einträge funktioniert jetzt egal wieviel Einträge pro Seite gewählt sind. Der Code müsste noch bereinigt werden
die Grafik but_online.gif benutze ich bei mir als Trennlinie zwischen den Einträgen mit einem link auf den Anker #top, der im Seitenlayout stehen muss. but_online.gif ist 450x8px gross.
Code: Alles auswählen
ACHTUNG!
- Dieses Gästebuchmodul benötigt einen zusätzlichen Table in der Contenido-Datenbank (guestbook.sql)
- In cfg_sql.inc.php müssen folgende Einträge:
$cfg["Tab"]["guestbook"] = "con_guestbook";
$cfgTab_guestbook = "con_guestbook";
SQL DUMP:
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,
active int(1) DEFAULT '1' NOT NULL,
client int(1) DEFAULT '1' NOT NULL,
date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
);
!Achtung!-Das gesamte Gästebuch sind 2 Module!
TITEL:
Gästebuch(anzeigen der Einträge)
LASTMODIFY: 31.08.2003 Peter Beauvain
Die Admin Geschichte hab ich rausgenommen.
ich habe die Font-Auswahl rausgenommen, da ich mit css arbeite
diese Version ist für Version 4.3b . die Images für Mail und Url heissen www.gif und mail.gif(32x32px) und müssen im Order /cms/upload/img liegen(ggf.im CODE ändern).
Die nötigen css einträge müssen in die Format.css eingtragen werden.
Die Zählung der Einträge und Seiten bei der Ausgabe funktionieren jetzt.
STYLES:
.tr12 {
background: #EEF2D9;
border-bottom: #C7D0A6 1px solid;
border-left: #C7D0A6 1px solid;
border-right: #C7D0A6 1px solid;
border-top: #C7D0A6 1px solid;
}
.tr13 {
background: #EEF2D9;
border-bottom: #C7D0A6 1px solid;
border-left: #C7D0A6 1px solid;
border-right: #C7D0A6 1px solid;
border-top: #C7D0A6 1px solid;
overflow: hidden;
}
.text {
color: #000000;
font-family: helvetica, arial, geneva, sans-serif;
font-size: 11px;
}
.textbold {
color: #000000;
font-family: helvetica, arial, geneva, sans-serif;
font-size: 11px;
font-weight: bold;
}
BESCHREIBUNG:
Zeigt eine Liste der Gästebucheinträge an. Das Formular für die Einträge ist ein extra Modul. Als Admin kann ich die Einträge aktivieren oder deaktivieren. Es wird kein Eintrag aus der DB gelöscht.
geschrieben von Jens Knoblich ; getuned von webmaster@zu-hause.biz, Martin Höfer; nochmals getuned von Alexander Ziska (a_ziska@web.de); geändert von Pbeauvain@web.de
MODUL INPUT:
echo "<input type=\"hidden\" name=\"CMS_VAR[0]\" value=\"".$value."\">";
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">";
echo "</SELECT></td></tr>";
echo "
<tr>
<td>Anzahl Einträge/Seite: </td>
<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"></td></tr>";
$query = "SELECT * FROM ".$cfg["tab"]["upl"]." WHERE filetype = 'gif'";
$db->query($query);
while ($db->next_record()) {
//$bild replaces old $filename
$bild[$db->f("idupl")] = $db->f("filename");
} // end while
function d_checked($which) {
if ($which != "") {
return "checked";
}
} // end function
echo "<tr>\n";
echo "<td>Mail-Image</td>\n";
echo "<td><select name=\"CMS_VAR[5]\">\n";
if (is_array($bild)) {
foreach ($bild as $key => $value) {
if ("CMS_VALUE[5]" == $value) {
echo "<option selected=\"selected\" value=\"". $value ."\">". $value ."</option>";
} else {
echo "<option value=\"". $value ."\">". $value ."</option>";
} // end if
} // end foreach
} // end if
echo "</select></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>WWW-Image</td>\n";
echo "<td><select name=\"CMS_VAR[6]\">\n";
if (is_array($bild)) {
foreach ($bild as $key => $value) {
if ("CMS_VALUE[6]" == $value) {
echo "<option selected=\"selected\" value=\"". $cfgClient[1]["frontendpath"]["img"].$value ."\">". $value ."</option>";
} else {
echo "<option value=\"". $value ."\">". $value ."</option>";
} // end if
} // end foreach
} // end if
echo "</select></td>\n";
echo "</tr>\n";
echo "</table>";
MODUL OUTPUT:
<br><FIELDSET style="BORDER-RIGHT: #c7d0a6 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #c7d0a6 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 5px; BORDER-LEFT: #c7d0a6 1px solid; WIDTH: 420px; PADDING-TOP: 0px; BORDER-BOTTOM: #c7d0a6 1px solid">
<LEGEND style="COLOR: #949A80" align=left><B>Einträge mit ICONS haben Links auf E-Mail und URL</B></LEGEND>
<?php
switch ($eintrag) { // das erste mal beim aufruf ist $eintrag undefiniert
case "";
$eintrag = "0"; // deswegen wertzuweisung 0
}
$zps = "CMS_VALUE[4]"; // anzeige der einträge pro Seite
$max = ($eintrag + $zps);
$meineseite=$auth->url();
$a = "view";
// wenn view als aktion übergeben wird bzw. beim erstmaligen Seitenaufruf
if($a == "view")
{
//Zählen der Datensätze
$sql = "SELECT count(*) AS total FROM ".$cfgTab_guestbook.$where;
$db->query($sql);
$db->next_record();
$eintraege = $db->f("total");
echo "<br>";
echo "<table>";
//Unternavigation zusammenbauen
$gbnav = "";
$gbnav .= "<table width=100% cellspacing=0 cellpadding=0><tr>";
if ($max >= $eintraege)
$gbnav .= "<td class=textbold><p> Einträge: ".($eintrag+1)."-".($eintraege)." von ".$eintraege."</p></td>";
else
$gbnav .= "<td class=textbold><p> Einträge: ".($eintrag+1)."-".($max)." von ".$eintraege."</p></td>";
$gbnav .= "<td class=textbold align=right><p>";
$pages = $eintraege / $zps;
if ($pages > 1) {
$gbnav .= "gehe zu Seite ";
for ($ii = 0; $ii < $pages; $ii++) {
if ($ii != ($eintrag / $zps)) {
$gbnav .= "<a href=\"$meineseite&a=view&eintrag=";
$gbnav .= ($ii * $zps);
$gbnav .= "\">[".($ii+1)."]</a> ";
}
}
}
$gbnav .= "</p></td>";
//Ausgabe Navigation
// echo $gbnav;
// Daten aus der Datenbank abfragen mit der Einschränkung $eintrag (d.h. welche ausgegeben werden sollen) und $zps (anzahl der anzuzeigenden elemente)
$sql = "SELECT name, email, url, date, location, comments, id, active FROM $cfgTab_guestbook $where order by date desc LIMIT $eintrag,$zps";
$db->query($sql);
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite
while ($db->next_record()) {
echo "<p><table width=80% border=0 cellpadding=0 cellspacing=0>";
echo "<td class=textbold><span ID=fontCMS_VALUE[1]>".$db->f("name")."</span><br><span ID=fontCMS_VALUE[2]>".$db->f("date")."</span></td>";
echo "<td align=right valign=top>";
if ($db->f("url") != "") { echo "<a href=\"http://".$db->f("url")."\" target=_blank><img src=".$cfgClient[1]["frontendpath"]["img"]."upload/img/CMS_VALUE[5] border=0 hspace=5></a>"; }
if ($db->f("email") != "") { echo "<a href=\"mailto:".$db->f("email")."\"><img src=".$cfgClient[1]["frontendpath"]["img"]."upload/img/CMS_VALUE[6] border=0></a></td>"; }
echo "</tr>";
echo "<tr><td class=text ID=fontCMS_VALUE[3] colspan=3 valign=top><p>".stripslashes($db->f("comments"))."</p></td></tr>";
//Eintrag aktivieren/deaktivieren
{
if ($db->f("active") == 0) { $imgsrc = $cfgPathContenido.$cfgPathImg."but_online_no.gif"; }
if ($db->f("active") == 1) { $imgsrc = $cfgPathContenido.$cfgPathImg."but_online.gif"; }
echo "<tr><td colspan=2><a href=$meineseite&active=".(($db->f("active")*-1)+1)."&gbid=".$db->f("id")."&eintrag=".$eintrag."><img src=$imgsrc border=0></a></td></tr>";
}
echo "</table></p><br>";
}
//Ausgabe Navigation
echo $gbnav;
}
echo "</table>";
?>
----------------------------------------------------------------------------------
TITEL:
Gästebuch-Eintrag
LASTMODIFY: 31.08.2003 Peter Beauvain (pbeauvain@web.de)
LASTMODIFY: 2002-18-12 16:00 Alexander Ziska
BESCHREIBUNG:
Formular für Gästebucheintrag
geschrieben von Jens Knoblich ; getuned von webmaster@zu-hause.biz, Martin Höfer ; nochmals getuned von Alexander Ziska(a_ziska@web.de)
INPUT MODUL:
echo "<input type=\"hidden\" name=\"CMS_VAR[0]\" value=\"".$value."\">";
echo "<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">";
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>";
if("CMS_VALUE[5]" == 1) { $checked = "checked=checked"; }
//else { $checked = ""; }
echo "<tr>
<td>Sofort anzeigen:</td>
<td><input type=\"checkbox\" name=\"CMS_VAR[5]\" value=\"1\" ".$checked."></td></tr>";
echo "</table>";
OUTPUT MODUL:
<br><FIELDSET style="BORDER-RIGHT: #c7d0a6 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #c7d0a6 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #c7d0a6 1px solid; WIDTH: 420px; PADDING-TOP: 0px; BORDER-BOTTOM: #c7d0a6 1px solid">
<LEGEND style="COLOR: #949A80" align=left><B>Bitte mindestens Name und Kommentar angeben</B></LEGEND>
<?php
$meineseite=$auth->url();
if ($a == "") { $a = "add"; }
if ($a == "add") {
echo "<br>";
echo "<FORM name='gb' id='gb' action=".$auth->url()." method='post' enctype='application/x-www-form-urlencoded'>";
echo "<INPUT TYPE=hidden NAME=a VALUE=send>";
echo "<input type=hidden name=required value=name,comments>";
echo "<table border=0 cellpadding=4 cellspacing=0 width=390 >
<tr><td class=p1 align=right ID=fontCMS_VALUE[1] width=30%><B> Name: </b></td><td><INPUT class=tr12 ID=fontCMS_VALUE[2] TYPE=text NAME=name style=width:70%;></td></tr>
<tr><td class=p1 align=right ID=fontCMS_VALUE[1] width=30%> E-Mail: </td><td><INPUT class=tr12 ID=fontCMS_VALUE[2] TYPE=text NAME=email style=width:70%;></td></tr><tr>
<tr><td TD class=p1 align=right ID=fontCMS_VALUE[1] width=30%> Homepage: </td><td><INPUT class=tr12 ID=fontCMS_VALUE[2] TYPE=text NAME=url style=width:70%;></td></tr>
<tr valign=top><td class=p1 align=right ID=fontCMS_VALUE[1] width=30%><b> Kommentar: </b></td><td colspan='2'><TEXT"."AREA class=tr13 ID=fontCMS_VALUE[2] NAME=comments ROWS=6 style=width:70% ;></TEXT"."AREA></td></tr>
<tr><td class=p1 align=right ID=fontCMS_VALUE[1] width=30%><br><a href=# onClick=gb.submit();>Eintragen </a></td></tr>
</table>";
}
// wenn ein eintrag geschrieben werden soll
if($a == "send") {
// Formatierung des Textes aus dem Kommentarfeld
if($name!=""&&$comments!="") //Abfangen der "leeren" Einträge
{
$mailkomm = stripslashes($comments);
$comments = nl2br("$comments");
$comments = addslashes("$comments");
$url = Str_replace("http://","",$url);
$sql = "INSERT into ".$cfg["Tab"]["guestbook"]." (name, email, url, date, comments, active, client) VALUES ('$name', '$email', '$url', NOW(), '$comments', CMS_VALUE[5], $client)";
$db->query($sql);
if("CMS_VALUE[3]" == 1 && "CMS_VALUE[4]" != "") {
$mailbody = "Von: $name ( $email )\nHomepage: $url\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 "<p class=textbold> Danke! Ihr Beitrag wurde eingetragen</p>";
}
else
{
echo "<br><p><font class=textbold><b> Versuchen Sie es bitte nochmal!</b></p>";
}
}
?>