Seite 1 von 2

Gästebuch für 4.4

Verfasst: Sa 1. Nov 2003, 06:28
von Halma
Hallo, kann mir jemand sagen, wo ich ein Gästebuchmodul für 4.4 finden kann?

Danke schon mal im Vorraus!!!!!
Halma

Verfasst: Do 6. Nov 2003, 17:21
von ttb
Du mmusst nur im GB von Alexander Ziska auf http://contenido.de/front_dev/index.php ... &idart=163 (Contenido 4.3b auswählen) diesen Teil $cfgTab durch con ersetzen sowie einige Punkte vor/hinter dem Variablenanfang $cfgTab entfernen bzw. Anführungszeichen setzen. - Mit diesen Veränderungen funktionierts zumindestens bei mir. :)

Verfasst: Do 13. Nov 2003, 18:26
von ttb
Das GB besteht bei mir aus zwei Modulen - eins fürs Eintragen und eins für die Ausgabe der Einträge.

Vorher muss folgender SQL-Code ausgeführt werden:

Code: Alles auswählen

CREATE TABLE `con_guestbook` (
  `id` int(8) NOT NULL auto_increment,
  `name` varchar(40) NOT NULL default '',
  `email` varchar(40) NOT NULL default '',
  `location` varchar(40) NOT NULL default '',
  `comments` text NOT NULL,
  `url` varchar(50) NOT NULL default '',
  `active` int(1) NOT NULL default '0',
  `CLIENT` int(1) NOT NULL default '1',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;
Input GB_Ausgabe:
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\">Name:</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\">Datum/Uhrzeit:</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\">Text:</td>";
echo "<td><select name=\"CMS_VAR[3]\" 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[3]") {
echo "<option value=\"$i\">Font $i</option>";
} else {
echo "<option value=\"$i\" selected>Font $i</option>";
}
}
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 $cfgTab_upl WHERE idclient=$client AND filetype='img'";
$db->query($query);
while ($db->next_record()) {
$filename[$db->f("idupl")] = $db->f("filename");
} // end while

echo "<tr>\n";
echo "<td>Mail-Image</td>\n";
echo "<td><select name=\"CMS_VAR[5]\">\n";

if (is_array($filename)) {
foreach ($filename 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($filename)) {
foreach ($filename 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>";

Output GB_Ausgabe:
<?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

$meineseite=$auth->url();

if (!$perm->have_perm("admin")) { $where = " WHERE active=1 AND client=$client"; }
else { $where = " WHERE client=$client"; }

//wenn "active" als aktion übergeben wird und wir noch im edit-modus sind
if ($gbid && $active > -1 && $perm->have_perm("admin")) {
$sql = "UPDATE con_guestbook SET active=".$active." WHERE id='".$gbid."' LIMIT 1";
$db->query($sql);
}

$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 con_guestbook ".$where."";
$db->query($sql);
$db->next_record();
$eintraege = $db->f("total");

//Unternavigation zusammenbauen
$gbnav = "";
$gbnav .= "<table width=100% cellspacing=0 cellpadding=0><tr>";
$gbnav .= "<td><p>Einträge: ".($eintrag+1)."-".($eintrag+$db->f("total"))." von ".$eintraege."</p></td>";
$gbnav .= "<td align=right><p>";
$pages = $eintraege / $zps;
if ($pages > 1) {
$gbnav .= "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 con_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=100% border=0 cellpadding=0 cellspacing=0>";
echo "<tr>";
echo "<td><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("email") != "") { echo "<a href=\"mailto:".$db->f("email")."\"><img src=\"images/email.gif\" border=0 hspace=5></a>"; }
if ($db->f("url") != "") { echo "<a href=\"http://".$db->f("url")."\" target=_blank><img src=\"images/home.gif\" border=0></a></td>"; }
echo "</tr>";
echo "<tr><td ID=fontCMS_VALUE[3] colspan=3 valign=top><p>".stripslashes($db->f("comments"))."</p></td></tr>";

//Eintrag aktivieren/deaktivieren
if($perm->have_perm("admin")) {
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><hr>";
}

//Ausgabe Navigation
echo $gbnav;
echo "</td></tr></table>";
}
?>
Input GB_Insert:
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>";
if("CMS_VALUE[5]" == 1) { $checked = "checked=checked"; }
else { $checked = "0"; }
echo "<tr>
<td>Sofort anzeigen:</td>
<td><input type=\"checkbox\" name=\"CMS_VAR[5]\" value=\"1\" ".$checked."></td>
</tr>
";
echo "</table>";

Output GB_Insert:
<?php
$meineseite=$auth->url();
include($cfg['path']['contenido']."includes/cfg_language_de.inc.php");
if ($a == "") { $a = "add"; }

if ($a == "add") {
echo "<p><font face=\"arial, verdana, helvetica\" size=\"1\">Bitte füllen Sie mind. die mit * bezeichneten Felder aus.</font></p>";
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,email>";
echo "<table border=0 cellpadding=0 cellspacing=5 width=100% >
<tr><td ID=fontCMS_VALUE[1] width=10%><B>Name*:</b></td><td><INPUT ID=inputfeldguestbook TYPE=text NAME=name></td></tr>
<tr><td ID=fontCMS_VALUE[1] width=10%>E-Mail*:</td><td><INPUT ID=inputfeldguestbook TYPE=text NAME=email></td></tr>
<tr><td ID=fontCMS_VALUE[1] width=10%>Homepage:</td><td><INPUT ID=inputfeldguestbook TYPE=text NAME=url></td></tr>
<tr valign=top><td ID=fontCMS_VALUE[1] width=10%><b>Kommentar*:</b></td><td colspan='2'><TEXT"."AREA ID=textfeldguestbook NAME=comments ROWS=6></TEXT"."AREA></td></tr>
<tr><td ID=fontCMS_VALUE[1] width=10%><br><a href=# onClick=gb.submit();>Eintragen</a></td></tr>
</table>";
}

// wenn ein eintrag geschrieben werden soll
if($a == "send") {
include($cfg['path']['contenido']."includes/cfg_language_de.inc.php");
// Formatierung des Textes aus dem Kommentarfeld
if($name!=""&&$comments!="") {//Abfangen der "leeren" Einträge
if (!eregi( "^" ."[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@" . "([a-z0-9]+([\.-][a-z0-9]+)*)+" . "\\.[a-z]{2,}" ."$", $email)) {
$modnews_errormsg = "1002"; echo "<b>".$lngErr[$modnews_errormsg]."</b><br><br><a href=\"javascript:history.back()\">zur&uuml;ck</a>"; } else {
$mailkomm = stripslashes($comments);
$comments = nl2br("$comments");
$comments = addslashes("$comments");
$url = Str_replace("http://","",$url);
$sql = "INSERT into con_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=$ClassIDHead>Danke! Ihr Beitrag wurde eingetragen</p>";
}}
else
{
echo "<p><b>Bitte füllen Sie die mit * gekennzeichneten Felder aus!</b><br><a href=\"javascript:history.back()\">zur&uuml;ck</a></p>";
}
}
?>

Verfasst: Fr 14. Nov 2003, 11:24
von pint
Super Hilfe, danke für den Tipp. Jedoch habe ich noch ein Problem, das Modul zum anzeigen des Guestebook geht super, jedoch das Modul zum Erfassen funkt. noch nicht!?

Verfasst: Fr 14. Nov 2003, 12:09
von ttb
Wie funktioniert noch nicht? Es wird nur zurzeit nicht angezeigt, wenn man auf eine zweite Seite springt (zumindestens bei mir), vielleicht hat da ja jemand nen Workaround (hab schon probiert, in der Konfiguration die Parameter zum Anzeigen einzufügen, allerdings noch ohne Erfolg. :(). Bzw. hast du das insert-Modul auch in einen eigenen Container eingebunden?

Verfasst: Fr 14. Nov 2003, 13:18
von pint
Ja habe zwei Container Gemacht, für das GB und einen zum erstellen eines Eintrages. Das GB funkt. super aber das Erfassungsformular ist nirgens zu sehen... jedoch wenn ich dies durch das alte (für ver 4.2) ersetzt wird eine fehlerhaftes Eingabe- Formular angezeigt...
Konfigurieren kann ich es auch.

Verfasst: Fr 14. Nov 2003, 15:53
von ttb
werden denn im errorlog fehlermeldungen ausgegeben bzw. ist die output-anzeige grün?

Re: Gästebuch für 4.4

Verfasst: Fr 14. Nov 2003, 15:59
von Snoopy
Schau mal da nach das geht auch mit v4.4.1

http://contenido.de/forum/viewtopic.php ... highlight=

Verfasst: Fr 14. Nov 2003, 16:08
von ttb
ähm, der qt ist derselbe, bis auf kleine veränderungen in den sql-statements und die css-anweisungen bei den formularfeldern...

Verfasst: Fr 14. Nov 2003, 17:20
von pint
bei dir funkt. aber ja.
also hier kurz was ich gemacht habe:

1. SQL Anweisung auf DB ausgeführt. (und noch 2 test einträge)
2. Module 1. Erstellet GB (in/output)
3. Modul 2. Erstellt GB_Eintrag(in/output).
4. Die beiden als Template ausgewählt.
5. Konfiguriert.

Ergebniss

GB gibt Einträge aus. Beide Module können konfigureirt werden. Aber nur GB ausgabe ist sichtbar?!

Ps.: Wenn ich den Source von GB_Eintrag Original Version nehme krieg ich einen Bischen Code auf der Seite zu gesicht, und die Felder E-Mail und Kommentar.

Verfasst: Fr 14. Nov 2003, 18:13
von ttb
poste mal bitte den kompletten code, den du anstatt der eingabefelder siehst.

Verfasst: So 16. Nov 2003, 12:30
von Snoopy
ttb hat geschrieben:ähm, der qt ist derselbe, bis auf kleine veränderungen in den sql-statements und die css-anweisungen bei den formularfeldern...
Dann betanke mal dain Gästebuch mit so ca. 20 Testeinträgen, gib eine beliebige Anzahl für die Ausgabe pro Seite an und dann schau dir mal an was bei den Einträgen pro Seite rauskommt. so ein paar Änderungen in den SQL Statements bewirken manchmal Wunder

Verfasst: So 16. Nov 2003, 15:46
von ttb
mit veränderungen der sql-statements meinte ich, dass ich in der cfg.sql.inc nicht die tabellen eingetragen habe und stattdessen z.b.

Code: Alles auswählen

$sql = "UPDATE con_guestbook SET active=".$active." WHERE id='".$gbid."' LIMIT 1";
eingesetzt habe, allerdings muss ich gestehen, dass ich nicht gesehen habe, dass zu im 4.3er-forum eine angepasste version reingestellt hast. :oops:

Verfasst: Fr 28. Nov 2003, 12:57
von gunwalt
Genauso ist es.

Ich sehe die Eingabemaske, kann auch Einträge vornehmen und die Navigation sagt mir auch, wieviele Einträge vorhanden sind. Aber ich sehe sie nicht.

[28-Nov-2003 12:53:45] PHP Warning: Division by zero in /kunden/imid-multimedia.de/_imid-multimedia/con_cms/front_content.php(533) : eval()'d code on line 520
[28-Nov-2003 12:53:45] Invalid SQL: SELECT name, email, url, date, location, comments, id, active FROM conten_guestbook WHERE active=1 AND client=1 order by date desc LIMIT 0,<br><br>
[28-Nov-2003 12:53:45] next_record called with no query pending.

Hat jemand eine Idee?
Guntram

Verfasst: Fr 28. Nov 2003, 15:12
von Snoopy
Schaut euch diesen Tread bitte bis zum Ende an, der Kolege hatte das gleiche Problem (siehe die Fehlermeldungen).

http://contenido.de/forum/viewtopic.php ... highlight=

Übrigens der zusätzliche Fehler Dort: Das Template direkt im Artikel und zusätzlich in der Kategorie zugewiesen. Eins von beiden reicht völlig, sonst kommt es zu diesen Fehlern. Das Gästebuch dort läuft jetzt.

viel Erfolg. :wink: