Gästebuch 4.5.2.alpha inkl. Backend

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Gästebuch 4.5.2.alpha inkl. Backend

Beitrag von yodatortenboxer » So 3. Apr 2005, 11:48

hiho,

erst einmal ein dickes Danke an Snoopy und Darth-Vader für das spitzen Gästebuch.

Ich habe mir nun von http://www.forseth.de/cms/front_content ... 1&client=1 die Version snoopys-guestbook-01-03-2004.zip heruntergeladen und wie einige andere leichte Probleme bei der Integration in die Version 4.5.2.alpha gehabt.

Nun habe ich die Module vom Gästebuch für mich angepasst und ein wenig erweitert, sowie ein extra Punkt Gästebuch unter Extras im Backend zum Verwalten eingefügt.

Als erstes habe ich die Installationsanweisungen von Snoopy und Darth-Vader befolgt, also:
####################################################################################################################
## INSTALLATIONSANWEISUNGEN: ##
####################################################################################################################


1.) Die Tabelle für Gästebuch in der Contenido-Datenbank erstellen:

--> SQL-Befehl um die Tabelle für das Gästebuch anzulegen:

Code: Alles auswählen

CREATE TABLE con_guestbook (id INT 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 "con" in "con_guestbook" ist, bei einem anderen Tabellen-prefix,
natürlich entsprechend anzupassen!


####################################################################################################################


2.) Im includes Ordner im Contenido-Ordner in der Datei "cfg_sql.inc.php" 2 Zeilen hinzufügen:

--> Folgende Zeilen in "cfg_sql.inc.php" hinzufügen:

$cfg["tab"]["guestbook"] = $cfg['sql']['sqlprefix']."_guestbook";
$cfgTab_guestbook = $cfg['sql']['sqlprefix']."_guestbook";


####################################################################################################################


3.) Im Layout, das benutzt werden soll, im Header noch ein wenig Javascript-Code einfügen:

--> Folgenden JavaScript-Code im Layout zwischen "<head>" und "</head>" einfügen:

Code: Alles auswählen

<script language="JavaScript" type="text/JavaScript">
<!--
function insert(gif) {
         document.gb.comments.value +=gif;
         opener.show_chars_left();
         return;
}
//-->
</script>
####################################################################################################################
##
Die Bilder der Smileys habe ich in den Ordner images/smileys unter dem Mandantenordner und in dem Ordner contenido/images/smileys, für das Backend (weiter unten beschrieben) kopiert.

Dann habe ich zwei Module angelegt. Einmal "Gästebuch Eingabe" und einmal "Gästebuch Ausgabe"

Das hier ist nun der Code den ich für mich angepasst habe:

In "Gästebuch Ausgabe" habe ich nicht so viel angepasst. Für mich war nur wichtig das ich im Input nicht nur GIF sondern alle Bilder zur Auswahl hab.

Gästebuch Ausgabe Input

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL -  INPUT
*
* Modulname   :     Guestbook Ausgabe v1.1
* Copyright   :     P.beauvain
* Created     :     14-02-2004
* Modified    :     Feb. 29th 2004 by Lars D. Forseth <lars@forseth.de>
*
* Modified    :     by http://www.xtended-cooperation.de
* Modified    :     ralf.fleischer@xtended-cooperation.de
* Modified    :     31.März 2005
************************************************/


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'";
$query = "SELECT * FROM ".$cfg["tab"]["upl"];
$db->query($query);

while ($db->next_record()) {
//$bild replaces old $filename
$bild[$db->f("idupl")] = "upload/".$db->f("dirname").$db->f("filename");

} // end while

function d_checked($which) {
  if ($which != "") {
    return "checked";
  }
} // end function

  echo "<tr>\n";
  echo "<td>WWW-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>Mail-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>";
Gästebuch Ausgabe Output

Code: Alles auswählen

<br /><strong>Einträge mit ICONS haben Links auf E-Mail und URL</strong><br />
<?php

/***********************************************
* CONTENIDO MODUL -  OUTPUT
*
* Modulname   :     Guestbook Ausgabe v1.1
* Copyright   :     P.beauvain
* Created     :     14-02-2004
* Modified    :     Mar. 1st 2004 by Lars D. Forseth <lars@forseth.de>
*
* Modified    :     by http://www.xtended-cooperation.de
* Modified    :     ralf.fleischer@xtended-cooperation.de
* Modified    :     31.März 2005
************************************************/
$accessGranted = false;
  $permissions = $auth->auth["perm"];
  $permissions = explode(',', $permissions);
  foreach ($permissions as $perm)
  // if ($perm == "sysadmin" || $perm == "admin[".$client."]"){ $accessGranted = true;}

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


if (!$accessGranted) { $where = " WHERE active=1 AND client=$client"; }
else { $where = " WHERE client=$client"; }
if($accessGranted) {
$sql = "UPDATE ".$cfg["tab"]["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 ".$cfg["tab"]["guestbook"].$where;
  $db->query($sql);
  $db->next_record();
  $eintraege = $db->f("total");

echo "<br />";

  //Unternavigation zusammenbauen
  $gbnav = "";
  $gbnav .= "\n<table width=\"400px\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n\t<tr>\n";
  if ($max >= $eintraege){
  $gbnav .= "\t\t<td class=\"textbold\">  Eintr&auml;ge: ".($eintrag+1)."-".($eintraege)." von ".$eintraege."</td>\n";
  }else{
  $gbnav .= "\t\t<td class=\"textbold\">  Eintr&auml;ge: ".($eintrag+1)."-".($max)." von ".$eintraege."</td>\n";
  }
  $gbnav .= "\t\t<td class=\"textbold\" align=\"right\">";
  $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 .= "</td>\n\t</tr>\n</table>\n<br />&nbsp;\n";

  //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 ".$cfg["tab"]["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 "\n<table width=\"400px\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n\t<tr>\n";

    echo "\t\t<td class=\"textbold\"><span class=\"gb_name\">".$db->f("name")."</span><br /><span class=\"gb_date\">".$db->f("date")."</span></td>\n";
    echo "\t\t<td align=\"right\" valign=\"top\" class=\"textbold\">";

###############################################################ALT############################################################################
/*if($accessGranted) {
      if ($db->f("active") == 0) { $imgsrc = $cfgPathContenido.$cfgPathImg."upload/bilder/but_cancel_kl.gif"; }
      if ($db->f("active") == 1) { $imgsrc = $cfgPathContenido.$cfgPathImg."upload/bilder/but_ok_kl.gif"; }
      echo "<a href=\"$meineseite&contenido=".$sess->id."&active=".(($db->f("active")*-1)+1)."&gbid=".$db->f("id")."&eintrag=".$eintrag."\"><img src=$imgsrc border=0></a>";
      }*/
################################################################NEU###########################################################################
/*if($accessGranted) { 
      if ($db->f("active") == 0) 
         { 
          $imgsrc = $cfgPathContenido.$cfgPathImg."upload/bilder/but_cancel_kl.gif"; 
          echo "<a href=$meineseite&active=".(($db->f("active")*-1)+1)."&gbid=".$db->f("id")."&eintrag=".$eintrag."><img src=$imgsrc border=0 alt=\"Eintrag ist deaktiviert, klicken um Eintrag freizugeben\"></a>&nbsp;"; 
          echo "<a href=\"\" onClick=\"window.open('../../gb_delete_inactive.php?sess=".$sess->id."&id=".$db->f("id")."', 'NewWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=n0,width=150,height=150')\"><img src=../contenido/images/delete.gif border=0 alt=\"Eintrag löschen\"></a>"; 
         } 
      if ($db->f("active") == 1) 
         { 
          $imgsrc = $cfgPathContenido.$cfgPathImg."upload/bilder/but_ok_kl.gif"; 
          echo "<a href=$meineseite&active=".(($db->f("active")*-1)+1)."&gbid=".$db->f("id")."&eintrag=".$eintrag."><img src=$imgsrc border=0 alt=\"Eintrag ist freigegeben, klicken zum deaktivieren\"></a>"; 
         } 
    }*/
##############################################################################################################################################

if ($db->f("url") != "") { echo "<a href=\"http://".$db->f("url")."\" target=\"_blank\"><img src=\"".$cfgClient[1]["frontendpath"]["img"]."CMS_VALUE[5]\" border=\"0\" hspace=\"5\" alt=\"webseite\" /></a>"; }else{echo "&nbsp;";}
if ($db->f("email") != "") { echo "<a href=\"mailto:".$db->f("email")."\"><img src=\"".$cfgClient[1]["frontendpath"]["img"]."CMS_VALUE[6]\" border=\"0\" alt=\"email\" /></a></td>"; }else{echo "&nbsp;</td>\n";}

echo "</tr>\n";
    echo "\t<tr>\n\t\t<td class=\"gb_text\" colspan=\"2\" valign=\"top\">".$db->f("comments")."</td>\n</tr>\n";

    //Eintrag aktivieren/deaktivieren
   {
      if ($a == "view") { $imgsrc = $cfgPathContenido.$cfgPathImg."upload/bilder/_top.gif"; }
      echo "\t<tr>\n\t\t<td colspan=\"2\">&nbsp;<br /><a href=\"#top\"><img src=\"$imgsrc\" border=\"0\" alt=\"top\" /></a></td>\n</tr>\n";
    }
    echo "</table>\n<br />";
  }

  //Ausgabe Navigation
  echo $gbnav;
}

?>
In "Gästebuch Eingabe" habe ich ein wenig mehr verändert.
Der Inputbereich sieht nun so aus:
Bild
Das mit der Emailbenachichtigung und dem Sofortanzeigen ist noch das selbe wie im Original. Leider bekomme ich bei dem setzen des Cokkies gegen wiederholte Einträge noch eine Fehlermeldung"Cannot modify header information...". Ich werde versuchen es noch zu ändern bzw. zu berichtigen.
Das neue sind die Felder darunter.
"Angezeigter Name für Emailbenachichtigung" bedeutet nur das in der Email die man bekommt wenn die Benachichtigung an ist nicht mehr nur "neuer Gaestebuch-Eintrag" sondern der dort eingetragene Name plus "neuer Gaestebuch-Eintrag" also zum Beispiel "xtended neuer Gaestebuch-Eintrag"
Ich fand es für mich wegen der Übersichtlichkeit wichtig und da ich so die Emails durch den unterschiedlichen Betreff leichter Automatisch sortieren lassen kann.

Das Feld "Link für Gästebuchausgabe" hat folgende Funktion.
Man kann über ein DropDown die Inhaltsseite auswählen die die Gästebuchausgabe enthält. Dadurch entstehen zwei neue Funktionen.
Bei aktivierter EMailbenachichtigung steht nicht mehr der Link der Inhaltsseite des Eingabemodules sondern der Link des Ausgabemodules in der EMail.
Man kommt also direkt zu der Ausgabe des Gästebuches.
Der Zweite Sinn besteht darin das nach dem Eintragen der Benutzer automatisch nach 5 Sekunden auf die Ausgabe des Gästebuches weitergeleitet wird.
Wenn "Sofortanzeigen" ausgeschaltet ist kommt zusätzlich in der EMail der Hinweis das der Eintrag erst im Backend freigeschaltet werden muss.

Gästebuch Eingabe Input

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL -  INPUT
*
* Modulname   :     Guestbook Eingabe v1.1
* Copyright   :     P.beauvain
* Created     :     14-02-2004
* Modified    :     Feb. 29th 2004 by Lars D. Forseth <lars@forseth.de>
*
* Modified    :     by http://www.xtended-cooperation.de
* Modified    :     ralf.fleischer@xtended-cooperation.de
* Modified    :     31.März 2005
************************************************/


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 "<tr>";
echo "<td width=\"202\">Cookie gegen widerholte Einträge :</td><td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[6]\"
VALUE=\"0\"";
if("CMS_VALUE[6]" ==0){echo "checked=checked";};echo"> off
<INPUT TYPE=\"radio\" NAME=\"CMS_VAR[6]\" VALUE=\"1\"";
if("CMS_VALUE[6]" ==1){echo "checked=checked";};echo"> on</td></tr>";

echo "<tr>";
echo"<td width=\"202\">Cookie Lifetime (1 = 1 Tag etc.) :
</td><td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" ></td></tr>";

//echo "<tr>";
//echo"<td width=\"202\">Angezeigte Länge in Zeichen :
//</td><td><input type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\" ></td></tr>";

echo "<tr>";
echo"<td width=\"202\">Angezeigter Name für Emailbenachichtigung :
</td><td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" ></td></tr>";

$select_cat = "CMS_VALUE[11]";
        $sql = "SELECT
                    *
                FROM
                    ".$cfg["tab"]["cat_tree"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c,
                    ".$cfg["tab"]["cat_lang"]." AS d,
                    ".$cfg["tab"]["art_lang"]." AS e
                WHERE
                    a.idcat = b.idcat AND
                    b.idcat = d.idcat AND
                    d.idlang = '".$lang."' AND
                    b.idart  = e.idart AND
                    c.idcat = a.idcat AND
                    c.idclient = '".$client."' AND
					e.idlang = '".$lang."'
                ORDER BY
                    a.idtree";


        $db->query($sql);

echo "<tr>";
echo"<td width=\"202\">Link für G&auml;stebuchausgabe:
</td><td>";
echo "<SELECT name='CMS_VAR[11]' SIZE='1'>";

                if($select_cat!="0" && $select_cat!="") {
                    echo "<option value=0>-- ".i18n("None")." --</option>";
                } else {
                    echo "<option value=0 selected>-- ".i18n("None")." --</option>";
                }

                while ( $db->next_record() ) {

                        $spaces = "";

                        for ($i=0; $i<$db->f("level"); $i++) {
                            $spaces .= "&nbsp;&nbsp;&nbsp;&nbsp;";
                        }

                        $tmp_title = $db->f("title");

                        if ( strlen($tmp_title) > 32 ) {
                            $tmp_title = substr($tmp_title, 0, 32);
                        }

                        $spaces .= " ";

                        if ( $db->f("idcatart") != $select_cat ) {
                                echo "<option value=\"".$db->f("idcatart")."\">$spaces ".$db->f("name")."---".$tmp_title."</option>";
                        } else {
                                echo "<option value=\"".$db->f("idcatart")."\" selected>$spaces ".$db->f("name")."---".$tmp_title."</option>";
                        }
                }

                echo "</SELECT>";
				
echo "</td></tr>";

echo "</table>";
Gästebuch Eingabe Output

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL -  OUTPUT
*
* Modulname   :     Guestbook Eingabe v1.1
* Copyright   :     P.beauvain
* Created     :     14-02-2004
* Modified    :     Mar. 1st 2004 by Lars D. Forseth <lars@forseth.de>
*
* Modified    :     by http://www.xtended-cooperation.de
* Modified    :     ralf.fleischer@xtended-cooperation.de
* Modified    :     31.März 2005
************************************************/


$activ = "CMS_VALUE[5]";
if ($activ == "") { $activ = "0";
}
$sperre ="CMS_VALUE[6]";
$links  = explode('?',$PHP_SELF);
$link   = $links[0];
$link   = $link."?idcat=".$idcat; // back-link
$meineseite = $auth->url();

if ($a == "") { $a = "add"; }


/* in diesem Ordner liegen meine smileys für das Gästebuch
(sollte nicht mit "/" beginnen, MUSS aber mit "/" enden!)
*/
$dir = "images/smileys/";
/* end definition v. "$dir" */
echo "
<br /><strong>Bitte mindestens Name und Kommentar angeben</strong>
<div>Um ein <strong>Emoticon</strong> hinzuzufügen, einfach auf ein Smiley klicken oder :-) eingeben!</div>";

if ($a == "add") {

echo "<br />";
echo "<form name='gb' id='gb' action='".$link."' method='post' style='display:inline;'>";
echo "<input type=\"hidden\" name=\"a\" value=\"send\" />";
echo "<table  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr align=\"left\" valign=\"top\">
    <td style=\"padding-left:60px;\"><strong>Name: </strong></td>
    <td><input type=\"text\" name=\"name\" value=\"$name\" /></td>
    <td rowspan=\"4\" style=\"padding-left:10px;\"><table border=\"0\" align=\"right\" cellspacing=\"0\" cellpadding=\"2\">
      <tr class=\"text\">
        <td class=\"text\"><strong>Bedeutung</strong></td>
        <td class=\"text\"><div align=\"center\"><strong>Icon </strong></div></td>
        <td class=\"text\"><strong> Code</strong></td>
      </tr>
      <tr class=\"text\">
        <td>lacht</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."smile.gif\" onClick=\"insert(':-)');\" alt=\"smile\" /></td>
        <td>:-)</td>
      </tr>
      <tr class=\"text\">
        <td>Zunge streckend</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."tongue.gif\" onClick=\"insert(':-P');\" alt=\"tongue\" /></td>
        <td>:-P</td>
      </tr>
      <tr class=\"text\">
        <td>zuzwinkernd</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."wink.gif\" onClick=\"insert(';-)');\" alt=\"wink\" /></td>
        <td>;-)</td>
      </tr>
      <tr class=\"text\">
        <td>laut lachend</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."laugh.gif\" onClick=\"insert(':lol:');\" alt=\"lol\" /></td>
        <td>:lol:</td>
      </tr>
      <tr class=\"text\">
        <td>unsicher</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."unsure.gif\" onClick=\"insert(':unsure:');\" alt=\"unsure\" /></td>
        <td>:unsure:</td>
      </tr>
      <tr class=\"text\">
        <td>cool</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."cool.gif\" onClick=\"insert('8-)');\" alt=\"cool\" /></td>
        <td>8-)</td>
      </tr>
      <tr class=\"text\">
        <td>nicht versteht</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."huh.gif\" onClick=\"insert(':huh:');\" alt=\"huh\" /></td>
        <td>:huh:</td>
      </tr>
      <tr class=\"text\">
        <td>w&uuml;tend</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."mad.gif\" onClick=\"insert(':angry:');\" alt=\"angry\" /></td>
        <td>:angry:</td>
      </tr>
      <tr class=\"text\">
        <td>erstaunt</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."blink.gif\" onClick=\"insert(':blink:');\" alt=\"blink\" /></td>
        <td>:blink:</td>
      </tr>
      <tr class=\"text\">
        <td>traurig</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."sad.gif\" onClick=\"insert(':-(');\" alt=\"sad\" /></td>
        <td>:-(</td>
      </tr>
      <tr class=\"text\">
        <td>breit grinsend</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."biggrin.gif\" onClick=\"insert(':-))');\" alt=\"biggrin\" /></td>
        <td>:-))</td>
      </tr>
      <tr class=\"text\">
        <td>erschrocken</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."surprised.gif\" onClick=\"insert(':-O');\" alt=\"surprised\" /></td>
        <td>:-0</td>
      </tr>
      <tr class=\"text\">
        <td>augenrollen</td>
        <td align=\"center\" valign=\"middle\"><img src=\"".$dir."rolleyes.gif\" onClick=\"insert(':rolleyes:');\" alt=\"rolleyes\" /></td>
        <td>:rolleyes</td>
      </tr>
     </table>
</td>
  </tr>
  <tr align=\"left\" valign=\"top\">
    <td style=\"padding-left:60px;\">E-Mail: </td>
    <td><input type=\"text\" name=\"email\" value=\"$email\" /></td>
  </tr>
  <tr align=\"left\" valign=\"top\">
    <td style=\"padding-left:60px;\">Homepage: </td>
    <td><input type=\"text\" name=\"url\" value=\"$url\" /></td>
  </tr>
  <tr align=\"left\" valign=\"top\">
    <td colspan=\"2\" style=\"padding-left:60px;\"><strong> Kommentar:</strong><br />
    <textarea name=\"comments\" cols=\"25\" rows=\"15\">$comments</textarea><br /><!-- <a href=$link onClick=gb.submit();>Eintragen</a> -->
            <input type=\"submit\" value=\"Eintragen\" /></td>
  </tr>
</table>
        </form>";
} // end "if($a == "add")"






// wenn ein eintrag geschrieben werden soll
if($a == "send") {
  // Formatierung des Textes aus dem Kommentarfeld
if($_POST["name"]!="" && $_POST["comments"]!="") { //Abfangen der "leeren" Einträge

    /* filter given data */
    $error = "no";

    $mailkomm = stripslashes($comments);

    $comments = trim($comments);
    $comments = nl2br($comments);
    $comments = str_replace("'","",$comments);
    //$comments = str_replace(";","",$comments);
    $comments = str_replace("--","",$comments);
    $comments = htmlentities($comments);
    $comments = str_replace("<br />","",$comments);
    $comments = str_replace("<br/>","",$comments);
    $comments = str_replace("<br>","",$comments);
    $comments = str_replace("\n","<br>",$comments);


      // filter email
      if ($error == "no") {
      if ($email) {
        if (strlen($email) > 50) {$error = "Emailadresse ist zu lang! (max. 50 Zeichen erlaubt)";}
        else {
        $valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$email));
        if (!$valid == 1) {$error = "Emailadresse ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";}
        else {
          $parts = explode("@",$email);
          $lasts = explode(".",$parts[1]);
          $domain = $lasts[(count($lasts)-2)].".".$lasts[(count($lasts)-1)];
          $valid = (int) (checkdnsrr($domain,ANY));
          if ($valid == 0) {$error = "Emailadresse ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";}
        } // end else
        } // end else
      } // end if email
      } // end if no error
      
      
      // filter name
      if ($error == "no") {
      if (strlen($name) > 30) {$error = "Name ist zu lang! (max. 30 Zeichen erlaubt)";}
      else {
      $name = nl2br($name);
      $name = str_replace("'","",$name);
      $name = str_replace(";","",$name);
      $name = str_replace("--","",$name);
      $name = htmlentities($name);
      }
      } // end if
      
      
      // filter url
      if ($error == "no") {
      if ($url) {
        if (strlen($url) > 100) {$error = "URL ist zu lang! (max. 100 Zeichen erlaubt)";}
        else {
        $url = str_replace("\n","",$url);
        $url = str_replace("'","",$url);
        $url = str_replace(";","",$url);
        $url = str_replace("--","",$url);
        $url = str_replace("\"","",$url);
        $url = str_replace("'","",$url);
        $url = str_replace("\'","",$url);
        $url = str_replace(" ","",$url);
        $url = strtolower($url);
        $sheme_given = (eregi("^([a-z]+://)",$url));
        if ($sheme_given == 0) {$url = "http://".$url;}
        $url1 = (parse_url($url));
        $host = $url1["host"];
        $valid = (eregi("([a-z0-9_\\-\\.])+(\\.)+([a-z]{2,4})",$host));
        if (!$valid == 1) {$error = "Homepage ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";}
        else {
          $valid = (int) (checkdnsrr($host,ANY));
          if ($valid == 0) {$error = "Homepage ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";}
        } // end else

        } // end else
      } // end if url
      } // end if
      
      
      
      
      if ($error == "no") {
      
      if (strlen($comments) > 3000) {$error = "Kommentar ist zu lang! (max. 3000 Zeichen erlaubt)";}
      else { // no errors in given data yet...
      //-------------------- konvertiere Smileys ---------------------------------

      $comments = eregi_replace(":-\)\)|:\)\)|:biggrin:",
      "<img src=\'".$dir."biggrin.gif\' border=\"0\" alt=\"biggrin\" />",$comments);

      $comments = eregi_replace(":-\)|:\)|:smile:",
      "<img src=\'".$dir."smile.gif\' border=\"0\" alt=\"smile\" />",$comments);

                $comments = eregi_replace(":-D|:-D|:lol:",
      "<img src=\'".$dir."laugh.gif\' border=\"0\" alt=\"laugh\" />",$comments);

                $comments = eregi_replace(":huh:",
      "<img src=\'".$dir."huh.gif\' border=\"0\" alt=\"huh\" />",$comments);

                $comments = eregi_replace(":rolleyes:",
      "<img src=\'".$dir."rolleyes.gif\' border=\"0\" alt=\"rolleyes\" />",$comments);


      $comments = eregi_replace(":O\)|:o\)",
      "<img src=\'".$dir."smile2.gif\' border=\"0\" alt=\"smile2\" />",$comments);

      $comments = eregi_replace(";-\)|;\)|:wink:",
      "<img src=\'".$dir."wink.gif\' border=\"0\" alt=\"wink\" />",$comments);

      $comments = eregi_replace(":-\(|:\(|:sad:",
      "<img src=\'".$dir."sad.gif\' border=\"0\" alt=\"sad\" />",$comments);

      $comments = eregi_replace(":angry:",
      "<img src=\'".$dir."mad.gif\' border=\"0\" alt=\"mad\" />",$comments);

      $comments = eregi_replace(":-D|:D|:happy:",
      "<img src=\'".$dir."happy.gif\' border=\"0\" alt=\"happy\" />",$comments);

      $comments = eregi_replace(":heart:",
      "<img src=\'".$dir."heart.gif\' border=\"0\" alt=\"heart\" />",$comments);

      $comments = eregi_replace(":-P|:P|:tongue:",
      "<img src=\'".$dir."tongue.gif\' border=\"0\" alt=\"tongue\" />",$comments);

      $comments = eregi_replace("8-\)|8\)|:cool:",
      "<img src=\'".$dir."cool.gif\' border=\"0\" alt=\"cool\" />",$comments);

      $comments = eregi_replace(":-\(|:\(|:weep:",
      "<img src=\'".$dir."weep.gif\' border=\"0\" alt=\"weep\" />",$comments);

      $comments = eregi_replace(":-o|:o|:astonished:",
      "<img src=\'".$dir."surprised.gif\' border=\"0\" alt=\"surprised\" />",$comments);

      $comments = eregi_replace(":blink:",
      "<img src=\'".$dir."blink.gif\' border=\"0\" alt=\"blink\" />",$comments);

      $comments = eregi_replace(":wub:",
      "<img src=\'".$dir."wub.gif\' border=\"0\" alt=\"wub\">",$comments);

      $comments = eregi_replace(":unsure:",
      "<img src=\'".$dir."unsure.gif\' border=\"0\" alt=\"unsure\" />",$comments);


      // see if there are more smileys than allowed:
      $imgs = explode("<img src=",$comments);
      $imgs = count($imgs);
      if ($imgs > 10) {
        $error = "Zu viele Smileys! (max. 10 Stück pro Eintrag)";
        $comments = "";
      } // end if($imgs > 10)
      
      } // end else no errors
      
      
      
      
      } // end else ("no errors in given data yet")


      /* end "filter given data" */
      
      
      
      /* if no error was found while filtering */
      
      if ($error == "no") {

/* search for words longer than 50 chars and shorten them + <br> */
$c = 0;
for ($i=0; $i < strlen($comments); $i++) {
  $c++;
  if (($comments[$i] == " ") or ($comments[$i] == "\n") or
      ($comments[$i] == "\r")) {$c = 0;}
  if ($c > 48) {
    $comments = substr_replace($comments, "-<br>", $i, 0);
    $i = $i+4;
    $c = 0;
  } // end if
} // end for


// ---------Abschnitt nach n Zeichen -------------------------------------

//$z = (int) ("CMS_VALUE[7]");
//for ($i=$z; $i < $z+20; $i++) {
//  $comments1 = substr($comments , 0, $i);
//  $cut = substr($comments, $i);
//  if ((ord ($cut) == 32)||(ord ($cut) == 44)||(ord ($cut) == 45)) {
//    $comments= substr($comments , 0, $i);
//    $comments .= ' .....';
//  } // end if
//} // end for

// -------------- IP /Host speichern ----------------------------------
$ip = getenv('REMOTE_ADDR');
$host = gethostbyaddr($ip);


// -------------- Cookie Setzen ---------------------------------------

/* if no cookie lifetime given */
$lifetime = (int) ("CMS_VALUE[8]");
if($lifetime!="0" && $lifetime!=""){setcookie("Paintball-Pirmasens-Gästebuch","ja",time()+ ($lifetime*24*3600));}
/* end if no cookie-lifetime given */


if($HTTP_COOKIE_VARS["Paintball-Pirmasens-Gästebuch"]=="ja" && $sperre ==1){
  echo "<br><p><font class=textbold><b>Sie haben sich bereits eingetragen !<br>";
  if ($lifetime == 1){echo "Sie können sich Morgen erneut eintragen.";}
  else {echo "Sie können sich in CMS_VALUE[8] Tagen erneut eintragen.</b></p>";}
} // end if

else {
    $url =  str_replace("http://","",$url);
    $sql = "INSERT INTO ".$cfg["tab"]["guestbook"]." ".
           "(name,email,location,url,date,comments,active,client) ".
           "VALUES ('$name','$email','$ip/$host','$url',NOW(),'$comments','$activ',$client)";
    $db->query($sql);

if($activ==0)
{
     $aktivieren="\n\nLoggen Sie sich bitte mit Ihrem Benutzernamen un Kennwort in Contendio ein\nund schalten Sie den Eitrag unter -Extras- -Gästebuch- noch frei.";
}
else
{
     $aktivieren="\n\nDieser Eintrag wurde sofort zur ansicht freigeschaltet";
}

if("CMS_VALUE[3]" == 1 && "CMS_VALUE[4]" != "") {
	if ("CMS_VALUE[11]">0)
	{
	   $meineseite="/front_content.php?idcatart=CMS_VALUE[11]";
	}
  $mailbody = "Von: $name ( $email )\nHomepage: $url\n\nKommentar:\n$mailkomm\n\n http://".getenv("HTTP_HOST")."$meineseite".$aktivieren;
  mail("CMS_VALUE[4]", "CMS_VALUE[9], neuer Gaestebuch-Eintrag", $mailbody, "From: Gaestebuch<CMS_VALUE[4]>\nX-Mailer: PHP/" . phpversion(). "\n");
};
if("CMS_VALUE[5]" == 1)
{
echo "<br><p class=text><b>Danke,<br />Ihr Beitrag wurde eingetragen.</b><br />Sie werden automatisch in 5 sekunden weitergeleitet.</p><br>";
}
else
{
echo "<br><p class=text><b>Danke,<br />Ihr Beitrag wurde eingetragen und wird nach Sichtung von uns freigeschaltet.</b><br />Sie werden automatisch in 5 sekunden weitergeleitet.</p><br>";
}

echo "\n<script language=\"JavaScript\" type=\"text/JavaScript\">
<!--
function weiter() { 
window.location.href=\"http://".getenv("HTTP_HOST")."$meineseite"."\"; 
} 
window.setTimeout(\"weiter()\",5000) 
//-->
</script> \n";

} // end else


} // end "if no error was found while filtering"

/* errors were found in given data */
else {

  $comments = str_replace("<br>","\n",$comments);
  echo "
  <br><br><br><font color=\"red\"><b><u>Fehler</u><br>".$error."</b></font><br><br>
  <form action=\"$link\" method=\"post\">
    <input type=\"hidden\" name=\"name\" value=\"$name\" />
    <input type=\"hidden\" name=\"email\" value=\"$email\" />
    <input type=\"hidden\" name=\"url\" value=\"$url\" />
    <input type=\"hidden\" name=\"comments\" value=\"$comments\" />
    <input type=\"submit\" value=\"&laquo;&nbsp;zur&uuml;ck\" />
  </form>
  <br /><br /><br />";}
// end "errors were found in given data"



} // end "Abfangen von leeren Einträgen

else {

$comments = str_replace("<br>","\n",$comments);
echo "
   <br><p><font class=\"text\"><strong>Bitte überprüfen Sie ihre Eingaben!</strong></p><br><br>
";
echo"
   <form action=\"$link\" method=\"post\">
    <input type=\"hidden\" name=\"name\" value=\"$name\" />
    <input type=\"hidden\" name=\"email\" value=\"$email\" />
    <input type=\"hidden\" name=\"url\" value=\"$url\" />
    <input type=\"hidden\" name=\"comments\" value=\"$comments\" />
    <input type=\"submit\" value=\"&laquo;&nbsp;zur&uuml;ck\" />
  </form>
  ";
} // end else



} // end if($a == "send")


?>
Nun zum dazugehörigen Backend.

Ich habe die obenbeschriebenen Module und das Backend aufeinander angepasst. Das Backend könnte ohne weiteres auch mit den Originalmodulen laufen. Ob es auch in anderen Contenido-Versionen geht kann ich nicht sagen.
Im Backend ist nun ein extra Button
Bild
links eine Übersichtsauswahl
Bild
und rechts die Einträge des Gästebuches
Bild
Dadurch weil ich die Smileys unter cms/images/smileys und contenido/images/smileys kopiert habe, werden sie auch im Backend angezeigt.
Rötlich hinterlegte Zeilen sind noch nicht aktivierte Einträge.
Man kann nun jederzeit einen oder mehrere Einträge gleichzeitig zur Ansicht freischalten oder deaktivieren oder auch löschen.

Ich habe dafür 4 Dateien für das Backend erstellt die in das Verzeichnis contenido/includes kopiert.
http://www.xtended-cooperation.de/cms/u ... cludes.rar

Danach im Verzeichnis contenido/xml in der Datei lang_de_DE.xml unter extra

Code: Alles auswählen

<extra>
<main>Extras</main>
<newsletter>Newsletter</newsletter>
folgendes hinzufügen

Code: Alles auswählen

<guestbook>Gästebuch</guestbook>
und in der Datei lang_de_US.xml unter extra

Code: Alles auswählen

<extra>
<main>Extras</main>
<newsletter>Newsletter</newsletter>
folgendes hinzufügen

Code: Alles auswählen

<guestbook>Guestbook</guestbook>
Bei den anderen Sprachen kann man das selbe machen.

Code: Alles auswählen

<guestbook>"Gästebuch" in der jeweiligen Sprache</guestbook>
Nun kommt noch ein wenig Datenbankarbeit.
Folgender Code muss bei phpMyAdmin ausgeführt werden.
Vorher kontrollieren ob die 7000-7004 in den jeweiligen Tabellen siehe unten frei ist, ansonst ändern auf eine freie ID z.B. 5000-5004 ausweichen!

Code: Alles auswählen

INSERT INTO con_area VALUES ('7000', '0', 'guestbook', '1', '1');
  
INSERT INTO con_files VALUES ('7001', '7000', 'include.guest_edit.php', 'main');
INSERT INTO con_files VALUES ('7002', '7000', 'include.guest_left_top.php', 'main');
INSERT INTO con_files VALUES ('7004', '7000', 'include.guest_menu_top.php', 'main');
INSERT INTO con_files VALUES ('7003', '7000', 'include.guest_menu.php', 'main');


INSERT INTO con_frame_files VALUES ('7001', '7000', '4', '7001');
INSERT INTO con_frame_files VALUES ('7002', '7000', '1', '7002');
INSERT INTO con_frame_files VALUES ('7003', '7000', '2', '7003');
INSERT INTO con_frame_files VALUES ('7004', '7000', '3', '7006');

INSERT INTO con_nav_sub VALUES ('7000', '3', '7000', '0', 'navigation/extra/guestbook', '1');
Das müsste es dann gewesen sein.
Ein Komplettpacket mit den Smyleys, den Original von Snoopy und Darth-Vader, mit den von mir angepassten Modulen und den Backenddateien könnt ihr hier herunterladen.
http://www.xtended-cooperation.de/cms/u ... ackend.rar

Momentan benutze ich es hier http://www.labrador-vom-stillen-tal.de/ ... hp?idcat=3

gruß yodatortenboxer
Zuletzt geändert von yodatortenboxer am Mi 11. Jan 2006, 11:59, insgesamt 5-mal geändert.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 12:24

Schön!

Ich habe es mir jetzt nicht weiter angesehen, aber wenn Du im Backend-Code für die Images etwas wie

Code: Alles auswählen

$cfgClient[$client]["path"]["images"]
oder

Code: Alles auswählen

$cfgClient[$client]["path"]["upload"]
verwendest, sollte es auch funktionieren, wenn man die Smileys nur im Mandantenpfad speichert.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 3. Apr 2005, 12:39

Bei Snoopy werden im Eingabe Modul die Bilder mit dem Pfad direkt in die Datenbank geschrieben:

Code: Alles auswählen

Vielleicht spiele ich hoffentlich mal bald bid den Labradors<img src='images/smileys/wink.gif' border="0" alt="wink" />
Deshalb hatte ich die Bilder dann ebenfalls in contenido/images/smileys/ kopiert da dieses "Backend" nur die Daten aus der Datenbank ausliest.

Mann müsste ja dann in dem Fall das Modul für die Eingabe ebenfalls anpassen, oder?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 12:43

Nein, dann sollte es genügen, wenn bei der Bildausgabe im Backend vor den Bilderpfad $cfgClient[$client]["path"]["htmlpath"] gesetzt wird.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 3. Apr 2005, 12:59

ich kann es mir noch nicht so genau vorstellen was du meinst...

momentan wird in der Datei include.guest_edit.php die Datenbank mit

Code: Alles auswählen

$sql="SELECT * FROM `".$cfg["tab"]["guestbook"]."` WHERE client=$client ORDER BY date DESC";
ausgewählt und dann die Inhalte mit

Code: Alles auswählen

while ($db->next_record()) {
und dann mit

Code: Alles auswählen

<?=$db->f("comments")?>
zur Anzeige ausgegeben.
In der Ausgabe von <?=$db->f("comments")?> ist ja schon der komplette Text und der komplette Pfad des Bildes <img src='images/smileys/wink.gif' border="0" alt="wink" /> gespeichert.

Wo müsste ich dann also diesen Eintrag $cfgClient[$client]["path"]["htmlpath"] einfügen?

gruß yodatortenboxer

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 13:05

Entschuldige, mir ist auch gerade eingefallen, dass das Murks ist.

Wenn man sich auf <img src='images... verlassen kann, würde ich das mit

<?=str_replace("<img src='images/", "<img src='".$cfgClient[$client]["path"]["images"], $db->f("comments"))?>

lösen.

Entschuldige.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 3. Apr 2005, 13:27

An so eine Möglichkeit
<?=str_replace("<img src='images/", "<img src='".$cfgClient[$client]["path"]["images"], $db->f("comments"))?>
hatte ich auch schon gedacht, wusste aber bis jetzt die Variable $cfgClient[$client]["path"]["images"] noch nicht.

Wenn in dem Modul Gästebuch-Eingabe nichts verändert wird kann man sich eigentlich zu 100% auf das <img src='images... verlassen.

Wenn nun jemand der Pfad nicht gefällt und er will es im Frontend wo anders, zum Beispiel unter upload/smyleys/ haben, so muss er nur den selben Pfad unter dem Verzeichnis contenido, also dann contenido/upload/smileys/ anlegen und die Bilder zusätzlich reinkopieren ohne den Quelltext zu verändern.

Anders währe es mir auch lieber...

gruß yodatortenboxer

PS: es gibt nichts zu entschultigen... :wink:

kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Installation ging prima habe aber ein großes Problem

Beitrag von kenzo » So 3. Apr 2005, 13:37

Erst einmal vielen Dank für diesen mod. Ist Klasse mit dem Backend.
Mein Problem:

Wenn ich die GB Eingabe aufrufe, dann sind die Felder Name: schon mit dem Wort Kontakt und das Feld Homepage: schon mit einem internen Link front_content.php?idcat=5&lang=1 gefüllt.

Woran kann das liegen?

Trage ich alle Daten in das Formular ein, dann kommt der Fehler:

Fehler
Emailadresse ist ungültig, bitte überprüfen!


Ist da irgendetwas (Variable oder so) doppelt vergeben?

Wer kann helfen?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 13:46

@yodatortenboxer:

Mmmh, man könnte auch

Code: Alles auswählen

<?=str_replace("<img src='", "<img src='".$cfgClient[$client]["path"]["htmlpath"], $db->f("comments"))?>
verwenden, das wäre dann allgemeingültig, aber u.U. gefährlicher (ich weiss nicht, ob man eigene Links zu Bildern ergänzen kann - habe es mir wie gesagt nicht angesehen).

Was es so alles an Variablen (zumindest für den Client) gibt, findet man in contenido\includes\functions.general.php unter rereadClients.

@kenzo: Ja, Du hast vermutlich noch andere Module mit Formularen auf Deiner Webseite. Aber da kennt sich yodatortenboxer nun besser aus...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 3. Apr 2005, 14:40

@kenzo
Wenn ich die GB Eingabe aufrufe, dann sind die Felder Name: schon mit dem Wort Kontakt und das Feld Homepage: schon mit einem internen Link front_content.php?idcat=5&lang=1 gefüllt.
Schick mir doch mal den Link (Frontend) damit ich nachschauen kann und eventuell einen Zugang für das Contenido-Backend um das Modul nachzuschauen...
Fehler
Emailadresse ist ungültig, bitte überprüfen!
Die Emailadresse wird mit einer Funktion (von Dart-Vader glaub ich) überprüft.

Code: Alles auswählen

// filter email 
      if ($error == "no") { 
      if ($email) { 
        if (strlen($email) > 50) {$error = "Emailadresse ist zu lang! (max. 50 Zeichen erlaubt)";} 
        else { 
        $valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$email)); 
        if (!$valid == 1) {$error = "Emailadresse ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";} 
        else { 
          $parts = explode("@",$email); 
          $lasts = explode(".",$parts[1]); 
          $domain = $lasts[(count($lasts)-2)].".".$lasts[(count($lasts)-1)]; 
          $valid = (int) (checkdnsrr($domain,ANY)); 
          if ($valid == 0) {$error = "Emailadresse ist ung&uuml;ltig, bitte&nbsp;&uuml;berpr&uuml;fen!";} 
        } // end else 
        } // end else 
      } // end if email 
      } // end if no error
Vieleicht ist der Grund ebenfalls das mit den Variablen...

Gruß yodatortenboxer

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » So 3. Apr 2005, 17:52

@kenzo

Sodele...

die schlechte Nachricht zu erst.
Du hast bei dir die Version 4.4.5 installiert und in der Eingabe im Output kleine veränderungen gemacht.

Ich vermute das du vorher ein anderes Modul unter dem Link gewesen ist was in die Datenbank einen Eintrag gemacht hatte. Dann wurde das Modul entfernt, aber der Datenbankeintrag blieb erhalten.
Wenn ich direkt in die Seite ein

Code: Alles auswählen

echo "$email $url";
geschrieben habe wurde beim Aufruf der Seite diese Variable mit den Inhalten Kontakt und front_content.php angezeigt.

Ich habe nun unter deinem Gästebuch einen neuen Link "yodatortenboxer test" für die Gästebucheingabe mit einem Artikel angelegt und es funktioniert inkl. der Weiterleitung nach dem Eintragen auf die Übersichtsseite.

Nun das Gute:
Ersten es geht nun...
Und zweitens, mein Backend funktioniert wunderbar auch unter der Version 4.4.5 :-)
Hast du noch etwas anpassen müssen oder ging es direkt?

Du hast die Tabelle mit den Smileys aus der Eingabe entfernt, hast aber die funktionen zum ersetzen der Zeichen durch die Bilder noch im Quelltext.
Wenn nun jemand Just4Fun ein als Text eintippt wird es dann durch das vordefinierte Bild ersetzt was ja eventuell nicht da sein wird.

Gruß yodatortenboxer

kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Suuuuuuuper

Beitrag von kenzo » So 3. Apr 2005, 18:21

Geil, das funzt ja prima.
Hast Du prima hinbekommen.
An so einen alten Eintrag hätte ich nie gedacht.
Vieleicht denke ich einfach zu kompliziert, was das betrifft.
Ich verneige mich und spreche Dir meinen Dank aus.
Allein hätte ich es wohl nicht geschafft.

Das mit den Grafiken mach ich noch, wollte sie nur nicht in der Eingabe haben.
Wer ein ;-) in der Nachricht benutzt, wird es dann auch sehen können.

Dankeschön

THX und viele Grüße

bachi
Beiträge: 161
Registriert: Di 20. Apr 2004, 12:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von bachi » Mo 4. Apr 2005, 11:38

Hallo Danke erstmal für das Gästebuch. Ich hab noch ein paar Kinderkrankheiten die ich selber nicht anpassen kann:

1. ich möchte nach einem Eintrag hier: http://www.myworkstyle.de/hsgweb/front_ ... 4&idcat=43 rauskommen und nicht hier: http://www.myworkstyle.de/front_content ... catart=140

Wie stell ich das am besten an?

2. Im Namenfeld steht Volltextsuche, er scheint sich das aus der Kategorie "Volltextsuche" zu holen, ändere ich den Namen, steht er auch geändert im Namenfeld

3. Ich kann die ICONS nicht über Klick in einen Eintrag einfügen nur über die Kopie des Codes (das hab ich hin bekommen, hatte noch ein falsches Layout zugewiesen ohne die Erweiterung im Head)

Hmmm Fragen über Fragen. Wäre nett wenn mir einer helfen könnte.

Danke und Gruß Bachi
C 4.5.2 - 4.6
www.myworkstyle.de
www.hsgweb.de
--
::: It´s not a bug - it´s a feature!!! :::

yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Beitrag von yodatortenboxer » Mo 4. Apr 2005, 12:18

zu 1.

In Gästebuch-Eingabe Input wird die idcatart der Inhaltsseite aus der Datenbank ausgelesen und dann an den Output geleitet. Wenn du nun die idcat haben willst müsstest du die Abfragen im Input dementsprechend anpassen.

In Gästebuch-Eingabe im Output steht ziehmlich weit unten:

Code: Alles auswählen

if("CMS_VALUE[3]" == 1 && "CMS_VALUE[4]" != "") { 
   if ("CMS_VALUE[11]">0) 
   { 
      $meineseite="/front_content.php?idcatart=CMS_VALUE[11]"; 
   } 
Hier wird überprüft ob im Input eine Seite ausgewählt wurde und wenn ja wird die idcatart in form von front_content.php?idcatart= angehängt.
Ich hab es jetzt nicht ausprobiert, aber wenn du nun

Code: Alles auswählen

$meineseite="/front_content.php?idcatart=CMS_VALUE[11]";
mit folgenden austauschst.

Code: Alles auswählen

$meineseite="/front_content.php?client=$client&lang=$lang&idcatart=CMS_VALUE[11]";
Probier mal ob es auch so mit der idcatart geht.

zu 2.

Gehe in Gästebuch-Eingabe Output und ändere alle Variablen $name zum Beispiel in $name_2. Das selbe Problem hatte jemand anderes und nach dieser änderung ging alles wunderbar.
Es kann sein das die Volltextsuche ebenfalls die Variable $name benutzt und dadurch die Variable vorbelegt ist.

zu 3.

Im Layout der Eingabe muss folgender code eingefügt werden damit der Klick funktioniert

Code: Alles auswählen

<script language="JavaScript" type="text/JavaScript"> 
<!-- 
function insert(gif) { 
         document.gb.comments.value +=gif; 
         opener.show_chars_left(); 
         return; 
} 
//--> 
</script>
und bei Klick werden immer nur die Zeichen eingetragen und erst beim einfügen durch die Bilder ersetzt.

gruß yodatortenboxer

bachi
Beiträge: 161
Registriert: Di 20. Apr 2004, 12:22
Wohnort: Würzburg
Kontaktdaten:

Beitrag von bachi » Mo 4. Apr 2005, 14:51

Hi yodatortenboxer,

supi 2. und 3. ging mit deiner Hilfe jetzt ohne Probleme.

Bei 1. hab ich etwas improvisiert, ist sicher nicht elegant, geht aber:

Code: Alles auswählen

$meineseite="/hsgweb/front_content.php?client=$client&lang=$lang&idcat=43";
Hab den Ordner "hsgweb" so eingetragen und die idcat auch festgeschrieben. Hab sonst keinen Dunst wie es ginge. Bei deiner Variante fehlte der Ordner "hsgweb" und ich kam hier raus:

Code: Alles auswählen

http://myworkstyle.de/front_content.php?client=18&lang=4&idcatart=140
idcatart=140 ??? keine Ahnung was er damit will.
Hmmm also Danke nochmal.
Grüße Bachi
C 4.5.2 - 4.6
www.myworkstyle.de
www.hsgweb.de
--
::: It´s not a bug - it´s a feature!!! :::

Gesperrt