Gästebuch für 4.4

Halma
Beiträge: 8
Registriert: Do 16. Okt 2003, 16:02
Wohnort: Nähe Oldenburg
Kontaktdaten:

Gästebuch für 4.4

Beitrag von Halma » Sa 1. Nov 2003, 06:28

Hallo, kann mir jemand sagen, wo ich ein Gästebuchmodul für 4.4 finden kann?

Danke schon mal im Vorraus!!!!!
Halma

ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb » Do 6. Nov 2003, 17:21

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

ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb » Do 13. Nov 2003, 18:26

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>";
}
}
?>
Zuletzt geändert von ttb am Fr 14. Nov 2003, 12:09, insgesamt 1-mal geändert.

pint
Beiträge: 3
Registriert: Fr 14. Nov 2003, 11:20
Kontaktdaten:

Beitrag von pint » Fr 14. Nov 2003, 11:24

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

ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb » Fr 14. Nov 2003, 12:09

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?

pint
Beiträge: 3
Registriert: Fr 14. Nov 2003, 11:20
Kontaktdaten:

Beitrag von pint » Fr 14. Nov 2003, 13:18

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.

ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb » Fr 14. Nov 2003, 15:53

werden denn im errorlog fehlermeldungen ausgegeben bzw. ist die output-anzeige grün?

Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Re: Gästebuch für 4.4

Beitrag von Snoopy » Fr 14. Nov 2003, 15:59

Schau mal da nach das geht auch mit v4.4.1

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

ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb » Fr 14. Nov 2003, 16:08

ähm, der qt ist derselbe, bis auf kleine veränderungen in den sql-statements und die css-anweisungen bei den formularfeldern...

pint
Beiträge: 3
Registriert: Fr 14. Nov 2003, 11:20
Kontaktdaten:

Beitrag von pint » Fr 14. Nov 2003, 17:20

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.

ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb » Fr 14. Nov 2003, 18:13

poste mal bitte den kompletten code, den du anstatt der eingabefelder siehst.

Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Beitrag von Snoopy » So 16. Nov 2003, 12:30

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

ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb » So 16. Nov 2003, 15:46

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:

gunwalt
Beiträge: 57
Registriert: Di 2. Sep 2003, 08:53
Wohnort: Erkrath
Kontaktdaten:

Beitrag von gunwalt » Fr 28. Nov 2003, 12:57

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
Netz: Contenido 4.42 läuft auf Apache/df-exts 1.1 (Unix) mod_ssl/2.8.15 OpenSSL/0.9.6k AuthPG/1.3 FrontPage/5.0.2.2510, MySQL server version 3.23.57-log, PHP 4.2.3 bei Domainfactory
Lokal: Contenido 4.42 läuft auf Apache/2.0.46 (Win32) mod_perl/1.99_10-dev Perl/v5.8.0 PHP/4.3.2 mod_ssl/2.0.46 OpenSSL/0.9.7b

Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Beitrag von Snoopy » Fr 28. Nov 2003, 15:12

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:

Gesperrt