Seite 1 von 3

Neues Modul: vpGuestbook

Verfasst: Di 30. Aug 2005, 16:41
von Dodger77
Aktuelle Version: 1.6 (mehrere Bugs behoben)
Da ja jetzt die 4.6.x-Versionen von Contenido aktuell sind, läuft der Support ab jetzt hier:

http://www.contenido.org/forum/viewtopic.php?t=10316

Bei dem vpGuestbook handelt es sich um ein neues Gästebuchmodul, das vor allem eins sein soll: flexibel. So sind sowohl die Ausgabe der Gästebucheinträge als auch das Eintragungsformular durch die Verwendung von HTML-Templates frei an jedes Design anpassbar (z.B. auch an tabellenlose).

Folgende Funktionen sind dabei beim Eintragsmodul umgesetzt:
  • Eintragsfelder: Name, E-Mail, URL, Bild, Eintrag und 3 freie Textfelder
  • Das Bildeingabefeld liest ein über die Templatekonfiguration festgelegtes Verzeichnis aus.
  • Ebenso wird mit den Smilies/Emoticons verfahren, die per Javascript ins Eintragfeld eingefügt werden.
  • doppeltes Abschicken von Einträgen wird durch Javascript unterbunden
  • Mehrfacheinträge können durch Cookies (minutengenau einstellbar) verhindert werden
  • die Ausgabe der Felder des Eintragsformulars kann HTML oder XHTML-valide erfolgen, dies kann man in der Templatekonfiguration schalten
  • mehrere BBCode-Schalflächen können benutzt werden (fett, kursiv, unterstrichen, URL und E-Mail)
  • die Verwendung von BBCode und Smilies kann ein- und ausgeschaltet werden
  • Emailbenachrichtigung bei neuen Einträgen
  • Einträge direkt sichtbar oder erst nach Freischaltung
  • normale oder extended Templateklasse
Folgende Funktionen sind bei der Ausgabe integriert:
  • Anzahl der Einträge pro Seite
  • Navigation zwischen den Einzelseiten in Form von "Seite 1 2 3" oder "Einträge 1-10 11-20 21-30"
  • Linktexte "vor" und "zurück" sind einstellbar
  • lange Texte können nach x Zeichen umgebrochen werden
  • Spracheinstellung für das Datumsformat und 2 formatierbare Datumsfelder
  • normale oder extended Templateklasse
Alles Informationen zum Modul, eine Demonstration und den Download des Moduls gibt es hier:

http://www.contenido-tutorials.de/modul ... index.html

Die Installation und die Anpassung wird in einem PDF, das im Download vorhanden ist, erläutert.


Gruß und viel Spaß

Ingo

Verfasst: Di 30. Aug 2005, 17:07
von i-fekt
Hi Ingo,

habe mir nur die Demo angeschaut, optisch wirklich liebevoll gemacht und die Funktionen lesen sich gut. Bei Gelegenheit teste ich es mal, bei meiner 4.4.5 Installation habe ich aber mein eigenes Gästebuch mit quasi den selben Eigenschaften.

Gruß,
Dani

Verfasst: Mi 31. Aug 2005, 07:01
von Dodger77
i-fekt hat geschrieben:habe mir nur die Demo angeschaut, optisch wirklich liebevoll gemacht und die Funktionen lesen sich gut.
Zuerst einmal danke für die Blumen. Bin mal gespannt, was die Leute so damit zaubern.

Fehler in Dokumentation

Verfasst: Mi 31. Aug 2005, 07:04
von Dodger77
Für alle, die sich das Modul bis jetzt bereits heruntergeladen haben, ein kleiner Hinweis:

In die Dokumentation hat sich ein Fehler eingeschlichen. Die Datei "class.ExtendedTemplate.php" muss natürlich in den Ordner "contenido/classes/" kopiert werden. Ab jetzt ist das in der Doku aber berichtigt.

Fehlermeldung

Verfasst: Mo 5. Sep 2005, 15:39
von Doljaka
Habe leider einige Fehlermeldungen in der Log Datei.
Es fehlt bspw. der Datenbankeintrag für con_vpguestbook in der Doku (glaube ich zumindest)

Wer kann mir weiterhelfen?

Error log:

05-Sep-2005 16:35:58] PHP Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/web129/html/cms/front_content.php(765) : eval()'d code:10) in /var/www/html/web129/html/cms/front_content.php(765) : eval()'d code on line 271
', 'ALLCAPS.gif', '84.141.245.166 / p548DF5A6.dip.t-dialin.net', '', '', '', 1, 1, 1, NOW())

INSERT INTO con_vpguestbook (name, email, url, entry, image, iphost, user1, user2, user3, active, client, lang, date) VALUES ('blabla', '', '', 'blalba
[05-Sep-2005 16:35:58] /cms/front_content.php?idcat=35 MySQL error 1146: Table 'usr_web129_1.con_vpguestbook' doesn't exist


Vielen Dank
Jan

Re: Fehlermeldung

Verfasst: Mo 5. Sep 2005, 16:55
von Dodger77
Doljaka hat geschrieben:Habe leider einige Fehlermeldungen in der Log Datei.
Es fehlt bspw. der Datenbankeintrag für con_vpguestbook in der Doku (glaube ich zumindest)

Wer kann mir weiterhelfen?

Error log:

05-Sep-2005 16:35:58] PHP Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/web129/html/cms/front_content.php(765) : eval()'d code:10) in /var/www/html/web129/html/cms/front_content.php(765) : eval()'d code on line 271
', 'ALLCAPS.gif', '84.141.245.166 / p548DF5A6.dip.t-dialin.net', '', '', '', 1, 1, 1, NOW())

INSERT INTO con_vpguestbook (name, email, url, entry, image, iphost, user1, user2, user3, active, client, lang, date) VALUES ('blabla', '', '', 'blalba
[05-Sep-2005 16:35:58] /cms/front_content.php?idcat=35 MySQL error 1146: Table 'usr_web129_1.con_vpguestbook' doesn't exist
Normalerweise sollte die Tabelle PREFIX_vpguestbook automatisch erzeugt werden, wenn man das erste Mal die Templatekonfiguration (egal ob Eintrags- oder Ausgabemodul) im Backend aufruft. Das steht auch in der Doku. Wenn das aber wider Erwarten nicht geschehen sein sollte, versuche doch mal folgende SQL-Anweisung "von Hand" auszuführen, z.B. mit phpMyAdmin:

Code: Alles auswählen

CREATE TABLE IF NOT EXISTS `con_vpguestbook` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(60) NOT NULL default '',
  `email` varchar(80) NOT NULL default '',
  `url` varchar(80) NOT NULL default '',
  `entry` text NOT NULL,
  `image` varchar(255) NOT NULL default '',
  `comment` text NOT NULL,
  `iphost` varchar(60) NOT NULL default '',
  `user1` varchar(255) NOT NULL default '',
  `user2` varchar(255) NOT NULL default '',
  `user3` varchar(255) NOT NULL default '',
  `active` int(1) NOT NULL default '1',
  `client` int(10) NOT NULL default '0',
  `lang` int(10) NOT NULL default '0',
  `art` int(10) NOT NULL default '0',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`),
  KEY `client` (`client`),
  KEY `lang` (`lang`),
  KEY `art` (`art`)
) TYPE=MyISAM;
Das "con" von "con_vpguestbook" muss evtl. durch das genutzte Prefix ersetzt werden, wenn dieses von der Standardeinstellung abweicht.

Ich hoffe, damit läuft es dann.


Gruß

Ingo

Re: Fehlermeldung

Verfasst: Di 6. Sep 2005, 08:06
von Doljaka
Dodger77 hat geschrieben: Ich hoffe, damit läuft es dann.

Gruß

Ingo

Leider noch nicht ganz. Nach bestätigung des Eintrag-Buttons erhalte ich noch folgende Fehlermeldung:

[06-Sep-2005 09:04:13] PHP Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/web129/html/cms/front_content.php(765) : eval()'d code:10) in /var/www/html/web129/html/cms/front_content.php(765) : eval()'d code on line 274

Vielleicht eine Ahnung woran das liegen könnte?

Verfasst: Di 6. Sep 2005, 08:17
von Dodger77
Die Tabelle ist aber nun in der Datenbank drin?

Kannst du mir vielleicht den Errorlog als PM schicken? Vielleicht wird es dann für mich klarer, wo das Problem liegt. Kann ich mir das denn irgendwo anschauen?

Verfasst: Di 6. Sep 2005, 14:59
von Dodger77
Aufgrund von Doljakas Post bin ich auf ein aktuelles Problem gestoßen mit den Cookies gegen doppelte Einträge. Ich habe das nun auf das Contenido-Sessionmanagement umgestellt. Die Änderungen betreffen lediglich den Output des Eintrag-Moduls. Wer also nur schnell austauschen möchte, hier ist der Code:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :	    vpGuestbook 1.2 - Eintrag
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     14-03-2005
* Modified    :     06-09-2005
************************************************/

// Mailer-Klasse einbinden
cInclude('classes',  'class.phpmailer.php');

// CMS_VARs initialisieren
$ausgabe_cat            = "CMS_VALUE[1]";
$ausgabe_cont           = "CMS_VALUE[2]";
$tpl_datei              = "CMS_VALUE[3]";
$tpl_art                = "CMS_VALUE[4]";
$smilies_aktiv          = "CMS_VALUE[5]";
$smiliespfad            = "CMS_VALUE[6]";
$bbcode_aktiv           = "CMS_VALUE[7]";
$userfeld1              = "CMS_VALUE[8]";
$userfeld2              = "CMS_VALUE[9]";
$userfeld3              = "CMS_VALUE[10]";
$email_benachrichtigung = "CMS_VALUE[11]";
$emails_an              = "CMS_VALUE[12]";
$cookie_aktiv           = "CMS_VALUE[13]";
$cookie_dauer           = "CMS_VALUE[14]";
$direkt_sichtbar        = "CMS_VALUE[15]";
$xhtml                  = "CMS_VALUE[16]";
// CMS_VARs initialisieren Ende

// CMS_VARs aus vpGuestbook - Ausgabe auslesen
$tplCfg = new templateConfig();
$tplCfg->getDataForIdcat ($ausgabe_cat);
$values_array = $tplCfg->getData($ausgabe_cont);
$bilderpfad = urldecode($values_array[5]);

// eXtended-Template-Klasse (von swelpot) einbinden
// zur Verwendung siehe:
// http://www.contenido.org/forum/viewtopic.php?t=5851
if ($tpl_art == "extended") cInclude('classes',  'class.ExtendedTemplate.php');
else cInclude('classes',  'class.template.php');

if ($xhtml) $einzeltag = " /";
else $einzeltag = "";

$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;

// Funktionen
function testURL($url) {
  if(eregi("http://", $url))   {
    $url = str_replace ("http://", "", $url);

  }
  if ($url != "") {
    $url = "http://".$url;
  }
  return $url;
}

function cookie_setzen ($dauer) {
  global $sess, $vpgblastentry;
  
  $vpgblastentry = time()+$dauer*60;
  if ($sess->is_registered("vpgblastentry")) $sess->unregister("vpgblastentry");
  $sess->register("vpgblastentry");

}

function vpgb_js () {

  $js = "
    <script type=\"text/javascript\">

    function storeCaret ()
    {
      if (document.input.entry.createTextRange) document.input.entry.caretPos = document.selection.createRange().duplicate();
    }

    function insertAtCaret (icon1, icon2)
    {
      if (document.getElementById('vpgb_eintrag').entry.createTextRange && document.getElementById('vpgb_eintrag').entry.caretPos)
      {
        var caretPos = document.getElementById('vpgb_eintrag').entry.caretPos;
        selectedtext = caretPos.text;
        caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == '' ? ' '+icon1 + ' ' : ' '+icon1+' ';
        caretPos.text = caretPos.text + selectedtext + icon2;
      }
      else document.getElementById('vpgb_eintrag').entry.value = document.getElementById('vpgb_eintrag').entry.value + ' '+icon1 + ' ' + icon2+' '
      document.getElementById('vpgb_eintrag').entry.focus();
    }

    function DoPrompt(action) {
    var revisedMessage;
    var post = document.getElementById(\"vpgb_eintrag\");
    var currentMessage = post.entry.value;

    if (action == \"url\") {
        var thisURL = prompt(\"URL der gewünschten Seite angeben\", \"http://\");
        var thisTitle = prompt(\"Titel der Seite angeben\", \"Seitentitel\");
        var urlBBCode = \"[URL=\"+thisURL+\"]\"+thisTitle+\"[/URL]\";
        revisedMessage = currentMessage+urlBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == \"email\") {
        var thisEmail = prompt(\"gewünschte E-Mail-Adresse angeben\", \"\");
        var emailBBCode = \"[EMAIL]\"+thisEmail+\"[/EMAIL]\";
        revisedMessage = currentMessage+emailBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == \"bold\") {
        var thisBold = prompt(\"den fetten Text angeben\", \"\");
        var boldBBCode = \"[b]\"+thisBold+\"[/b]\";
        revisedMessage = currentMessage+boldBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == \"italic\") {
        var thisItal = prompt(\"den kursiven Text angeben\", \"\");
        var italBBCode = \"[i]\"+thisItal+\"[/i]\";
        revisedMessage = currentMessage+italBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == \"underline\") {
        var thisUL = prompt(\"den unterstrichenenen Text angeben\", \"\");
        var ulBBCode = \"[u]\"+thisUL+\"[/u]\";
        revisedMessage = currentMessage+ulBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    }
    </script>
  ";

  return $js;
}

function smilies_preg_quote($str, $delimiter)
{
	$text = preg_quote($str);
	$text = str_replace($delimiter, '\\' . $delimiter, $text);

	return $text;
}

function smilies_auslesen () {
global $cfgClient, $client, $smiliespfad;

  $fcontents = file($cfgClient[$client]['path']['frontend'] . $cfgClient[$client]['upload'] . $smiliespfad . 'smiles.pak');

  $i = 0;
  foreach($fcontents as $zeile)
  {
    $smilies_daten = explode("=+:", trim(addslashes($zeile)));
    $smilies[$i]['icon'] = $smilies_daten[0];
    $smilies[$i]['erklaerung'] = $smilies_daten[1];
    $smilies[$i]['ersetzung'] = $smilies_daten[2];
    $i++;
  }

  return $smilies;
}

function smilies_ersetzen ($entry) {
global $smilies, $cfgClient, $client, $smiliespfad;

  foreach ($smilies as $row) {
    $ers = "/(?<=.\W|\W.|^\W)" . smilies_preg_quote($row['ersetzung'], "/") . "(?=.\W|\W.|\W$)/";
    $entry = preg_replace($ers, '<img src="' . $cfgClient[$client]['upload'] . $smiliespfad. $row['icon'].'" alt="' . $row['erklaerung'] . '" />',$entry);
  }
  return $entry;

}

function smilies_ausgeben ($smilies) {
global $cfgClient, $client, $smiliespfad, $einzeltag;

  $code = "";
  foreach($smilies as $smilie)

  {
    if ($smilie['icon'] != $h) $code .= "<a class=\"smilie\" href=\"javascript:insertAtCaret('" . $smilie['ersetzung'] . "','')\"><img src=\"" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $smiliespfad . $smilie['icon'] . "\" alt=\"" . $smilie['erklaerung'] . "\"".$einzeltag."></a>";
    $h = $smilie['icon'];
  }

  return $code;
}

function bbcode_link ($type) {

  $link = "javascript:DoPrompt('".$type."')";

  return $link;
}

function bbcode_ersetzen ($text) {
global $xhtml;

  if ($xhtml) {
    $text = str_ireplace("[b]", "<strong>", $text);
    $text = str_ireplace("[/b]", "</strong>", $text);
    $text = str_ireplace("[i]", "<em>", $text);
    $text = str_ireplace("[/i]", "</em>", $text);
    $text = str_ireplace("[u]", "<u>", $text);
    $text = str_ireplace("[/u]", "</u>", $text);
  }
  else {
    $text = str_ireplace("[b]", "<b>", $text);
    $text = str_ireplace("[/b]", "</b>", $text);
    $text = str_ireplace("[i]", "<i>", $text);
    $text = str_ireplace("[/i]", "</i>", $text);
    $text = str_ireplace("[u]", "<u>", $text);
    $text = str_ireplace("[/u]", "</u>", $text);
  }
  $patterns = array();
  $replacements = array();
  $patterns[0] = "/\[url\]www.([^\[]*)\[\/url\]/i";
  $replacements[0] = "<a href=\"http://www.\\1\" target=_blank>\\1</a>";
  $patterns[1] = "/\[url\]([^\[]*)\[\/url\]/i";
  $replacements[1] = "<a href=\"\\1\" target=_blank>\\1</a>";
  $patterns[2] = "/\[url=([^\[]*)\]([^\[]*)\[\/url\]/i";
  $replacements[2] = "<a href=\"\\1\" target=_blank>\\2</a>";
  $patterns[3] = "/\[email\]([^\[]*)\[\/email\]/i";
  $replacements[3] = "<a href=\"mailto:\\1\">\\1</a>";
  $patterns[4] = "/\[email=([^\[]*)\]([^\[]*)\[\/email\]/i";
  $replacements[4] = "<a href=\"mailto:\\1\">\\2</a>";
  $text = preg_replace($patterns, $replacements, $text);

  return $text;
}

function bilder_liste () {
global $cfgClient, $client, $bilderpfad;

  $basedir = getcwd();
  chdir($cfgClient[$client]['path']['frontend'] . $cfgClient[$client]['upload'] . $bilderpfad);
  $handle = opendir(".");
  while ($file = readdir($handle)) {
    if (is_dir($file)) $dirlist[] = $file;
    if (is_file($file)) $filelist[] = $file;
  }
  closedir($handle);
  $wdir2 = $basedir . "/";
  chdir($wdir2);
  if ($filelist) {
    asort($filelist);
  }
  $i = 0;
  while (list ($key, $file) = each ($filelist)) {
    $bilder[$i] = $file;

    $i++;
  }

  return $bilder;
}

function bilder_radio ($bilder) {
global $cfgClient, $client, $bilderpfad, $einzeltag;

  $code = "";
  foreach ($bilder as $bild) {
    $code .= "<div style=\"float: left;\"><img src=\"" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . $bild . "\" alt=\"$bild\" ".$einzeltag."><br".$einzeltag."><input type=\"radio\" name=\"test\" value=\"$bild\"".$einzeltag."></div>\n";
  }
  $code .= "<br style=\"clear: all;\"".$einzeltag.">";
  return $code;

}

function bilder_select ($bilder) {
global $cfgClient, $client, $bilderpfad, $einzeltag;

  $code .= "<select size=\"1\" name=\"image\" id=\"image\" onchange=\"document.getElementById('vpgb_image').src= '" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . "' + document.getElementById('vpgb_eintrag').image.options[document.getElementById('vpgb_eintrag').image.selectedIndex].value
    \">\n";
  $h = 0;
  foreach ($bilder as $bild) {
    $code .= "<option value=\"$bild\">$bild</option>\n";

    if ($h == 0) {
      $erstes = $bild;
      $h = 1;
    }
  }
  $code .= "</select>\n";
  $code .= "<img src=\"" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . $erstes . "\" id=\"vpgb_image\" alt=\"\"".$einzeltag.">\n";

  return $code;
}

function benachrichtigung ($name, $email, $url, $entry, $iphost, $user1, $user2, $user3, $image) {
global $emails_an, $userfeld1, $userfeld2, $userfeld3;

  $mailtext = "Es gibt einen neuen Eintrag im Gästebuch:

Name: ".html_entity_decode($name)."
E-Mail: $email
Homepage: $url
IP/Hostname: $iphost
$userfeld1: ".html_entity_decode($user1)."
$userfeld2: ".html_entity_decode($user2)."
$userfeld3: ".html_entity_decode($user3)."
Bild: $image
Eintrag:
".html_entity_decode($entry)."
";

  $mail = new phpmailer();
  $mail->AddAddress($emails_an);
  $mail->From     = $this->email['from']['email'];
  $mail->FromName = "Gästebuch";
  $mail->Subject  = "Neuer Gästebucheintrag";
  $mail->Body     = $mailtext;
  if(!$mail->Send()){
    $notsend .= $lngNews["mailcouldnotbesend1"].$to.$lngNews["mailcouldnotbesend2"] . "<br>";
  }

}

function eintragen () {
global $db, $cfg, $client, $lang, $idart, $direkt_sichtbar, $email_benachrichtigung, $smilies_aktiv, $bbcode_aktiv, $bilder, $xhtml;

  // Initialisieren der Variablen
  $error = "";

  // Name überprüfen
  if ($_POST['name'] == "") {
    $error = "Bitte geben Sie Ihren Namen an!";
  }
  else {
    $name = htmlentities(strip_tags($_POST['name']));
  }

  // Email überprüfen
  $email_pattern = '/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i';
  if (($_POST['email'] == "") || (preg_match($email_pattern, $_POST['email']))) {
    $email = $_POST['email'];
  }
  else {
    $error = "Bitte geben Sie eine gültige Email-Adresse an!";
  }

  // URL überprüfen
  if ($_POST['url'] != "") {
    $url = htmlentities(strip_tags($_POST['url']));
    $url = testURL($url);
  }

  // Eintrag überprüfen
  if ($_POST['entry'] == "") {
    $error = "Bitte schreiben Sie einen Eintrag!";
  }
  else {
    $hentry = strip_tags(htmlentities($_POST['entry']));
    $entry = $hentry;
    if ($smilies_aktiv) $entry = smilies_ersetzen($entry);
    if ($bbcode_aktiv) $entry = bbcode_ersetzen($entry);
  }

  // Bilder prüfen
  if (($_POST['image'] == "") || (in_array ($_POST['image'], $bilder))) {
    $image = $_POST['image'];
  }

  // Uservariablen überprüfen
  $user1 = htmlentities(strip_tags($_POST['user1']));
  $user2 = htmlentities(strip_tags($_POST['user2']));
  $user3 = htmlentities(strip_tags($_POST['user3']));

  // IP und Hostname speichern
  $iphost = $_SERVER["REMOTE_ADDR"];
  $host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
  if ($host) $iphost .= " / " . $host;

  // der eigentliche Eintrag in die Datenbank
  if ($error == "") {
    $sql = "INSERT INTO ".$cfg["tab"]["vpguestbook"]." (name, email, url, entry, image, iphost, user1, user2, user3, active, client, lang, date) VALUES ('$name', '$email', '$url', '$entry', '$image', '$iphost', '$user1', '$user2', '$user3', $direkt_sichtbar, $client, $lang, NOW())";
    if (! $db->query($sql)) $error = $db->$Error;
    elseif ($email_benachrichtigung) benachrichtigung ($name, $email, $url, $hentry, $iphost, $user1, $user2, $user3, $image);
  }
  return $error;
}
// Funktionen Ende

if ($smilies_aktiv) {
  // Smilies-Array füllen
  $smilies = smilies_auslesen();
}
$bilder = bilder_liste();

$formular_anzeigen = TRUE;

if ($_POST) {
  if ($sess->is_registered("vpgblastentry")) {
    $lastentry = $GLOBALS["vpgblastentry"];
  }
  if (($lastentry >= time()) && ($cookie_aktiv)) $fehler = "Bitte nicht mehrmals hintereinander eintragen!";
  else $fehler = eintragen();
  if ($fehler != "") {
    $formular_anzeigen = TRUE;
    echo "Fehler: " . $fehler;
  }
  elseif ($direkt_sichtbar) {
    echo "Vielen Dank für Ihren Eintrag!";
    $formular_anzeigen = FALSE;
    if ($cookie_aktiv) cookie_setzen ($cookie_dauer);
  }
  else {
    echo "Vielen Dank für Ihren Eintrag! Dieser wird nach Prüfung freigeschaltet.";
    $formular_anzeigen = FALSE;
    if ($cookie_aktiv) cookie_setzen ($cookie_dauer);
  }
}

if ($formular_anzeigen) {
  if ($smilies_aktiv) {
    // Smilies HTML-Ausgabe
    $smiliesform = smilies_ausgeben($smilies);
  }
  if ($smilies_aktiv || $bbcode_aktiv) echo vpgb_js();

  $imageselect = bilder_select($bilder);

  $imageradio = bilder_radio($bilder);

  $nameform = "<input id=\"name\" type=\"text\" name=\"name\" size=\"18\"".$einzeltag.">";
  $emailform = "<input id=\"email\" type=\"text\" name=\"email\" size=\"18\"".$einzeltag.">";
  $urlform = "<input id=\"url\" type=\"text\" name=\"url\" size=\"18\"".$einzeltag.">";
  if ($userfeld1 != "") $user1form = "<input id=\"user1\" type=\"text\" name=\"user1\" size=\"18\"".$einzeltag.">";
  if ($userfeld2 != "") $user2form = "<input id=\"user2\" type=\"text\" name=\"user2\" size=\"18\"".$einzeltag.">";
  if ($userfeld3 != "") $user3form = "<input id=\"user3\" type=\"text\" name=\"user3\" size=\"18\"".$einzeltag.">";
  $entryform = "<textarea id=\"entry\" name=\"entry\" cols=\"30\" rows=\"10\" onselect=\"storeCaret(this);\" onclick=\"storeCaret(this);\" onkeyup=\"storeCaret(this);\"></textarea>";
  $submitform = "<input type=\"submit\" class=\"submit\" name=\"vpgb_submit\" value=\"eintragen\"".$einzeltag.">";

  $tpl = new ExtendedTemplate();

  $tpl->reset();
  $tpl->set('s', 'NAMEFORM',      $nameform);
  $tpl->set('s', 'EMAILFORM',     $emailform);
  $tpl->set('s', 'URLFORM',       $urlform);
  $tpl->set('s', 'USER1FORM',     $user1form);
  $tpl->set('s', 'USER2FORM',     $user2form);
  $tpl->set('s', 'USER3FORM',     $user3form);
  $tpl->set('s', 'IMAGERADIO',    $imageradio);
  $tpl->set('s', 'IMAGESELECT',   $imageselect);
  $tpl->set('s', 'SMILIESFORM',   $smiliesform);
  $tpl->set('s', 'ENTRYFORM',     $entryform);
  $tpl->set('s', 'SUBMITFORM',    $submitform);
  $tpl->set('s', 'BBFETT',        bbcode_link("bold"));
  $tpl->set('s', 'BBKURSIV',      bbcode_link("italic"));
  $tpl->set('s', 'BBUNTERSTRICH', bbcode_link("underline"));
  $tpl->set('s', 'BBURL',         bbcode_link("url"));
  $tpl->set('s', 'BBEMAIL',       bbcode_link("email"));

  ?>
  <script type="text/javascript">
  function submitForm (s) {
    s.disabled = true;
    s.value = "Vielen Dank!";
    return true;
  }
  </script>
  <?php
  echo "<form action=\"front_content.php?idcat=$idcat\" method=\"post\" id=\"vpgb_eintrag\" onSubmit=\"return submitForm(this.vpgb_submit)\">";
  $tpl->generate('templates/' . $tpl_datei);
  echo "</form>";
}

?>

Gruß

Ingo

Verfasst: Mo 19. Sep 2005, 11:09
von silicone
Hallo Dodger,

versuche gerade dein Gästebuch im Snapshot vom 9.9. einzubauen.

Ich erhalte aber immer folgende Fehlermeldungen im Eintragartikel:

Code: Alles auswählen

Warning: Variable passed to each() is not an array or object in C:\apachefriends\xampp\htdocs\spirit-event\contenido\includes\include.con_editcontent.php(628) : eval()'d code on line 665

Warning: Invalid argument supplied for foreach() in C:\apachefriends\xampp\htdocs\spirit-event\contenido\includes\include.con_editcontent.php(628) : eval()'d code on line 692

Warning: Invalid argument supplied for foreach() in C:\apachefriends\xampp\htdocs\spirit-event\contenido\includes\include.con_editcontent.php(628) : eval()'d code on line 678
Kannst du da auf Anhieb etwas mit anfangen?

Verfasst: Mo 19. Sep 2005, 11:24
von Dodger77
silicone hat geschrieben:versuche gerade dein Gästebuch im Snapshot vom 9.9. einzubauen.

Ich erhalte aber immer folgende Fehlermeldungen im Eintragartikel:

Code: Alles auswählen

Warning: Variable passed to each() is not an array or object in C:\apachefriends\xampp\htdocs\spirit-event\contenido\includes\include.con_editcontent.php(628) : eval()'d code on line 665

Warning: Invalid argument supplied for foreach() in C:\apachefriends\xampp\htdocs\spirit-event\contenido\includes\include.con_editcontent.php(628) : eval()'d code on line 692

Warning: Invalid argument supplied for foreach() in C:\apachefriends\xampp\htdocs\spirit-event\contenido\includes\include.con_editcontent.php(628) : eval()'d code on line 678
Kannst du da auf Anhieb etwas mit anfangen?
Ich tippe spontan darauf, dass in dem Ordner, der zurzeit für die Avatarbilder angegeben ist, keine Bilder drin sind. Eine Überprüfung dafür fehlt im jetzigen Code noch.

Verfasst: Mo 19. Sep 2005, 12:05
von silicone
Wow, das war's tatsächlich. Leider kann man sich jetzt prima eintragen, es landet aber nichts in der DB...
Zu sehen unter http://www.spirit-event.de/cms/front_co ... p?idcat=44

Die sql-Einträge musste ich manuell eintragen. Habe das Statement von dir benutzt...

Verfasst: Mo 19. Sep 2005, 13:18
von Dodger77
silicone hat geschrieben:Wow, das war's tatsächlich. Leider kann man sich jetzt prima eintragen, es landet aber nichts in der DB...
Zu sehen unter http://www.spirit-event.de/cms/front_co ... p?idcat=44
Danke für den Hinweis. Dies ist nun gefixt. Der Output-Code des Eintragmoduls ist nun:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :	    vpGuestbook 1.3 - Eintrag
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     14-03-2005
* Modified    :     19-09-2005
************************************************/

// Mailer-Klasse einbinden
cInclude('classes',  'class.phpmailer.php');

// CMS_VARs initialisieren
$ausgabe_cat            = "CMS_VALUE[1]";
$ausgabe_cont           = "CMS_VALUE[2]";
$tpl_datei              = "CMS_VALUE[3]";
$tpl_art                = "CMS_VALUE[4]";
$smilies_aktiv          = "CMS_VALUE[5]";
$smiliespfad            = "CMS_VALUE[6]";
$bbcode_aktiv           = "CMS_VALUE[7]";
$userfeld1              = "CMS_VALUE[8]";
$userfeld2              = "CMS_VALUE[9]";
$userfeld3              = "CMS_VALUE[10]";
$email_benachrichtigung = "CMS_VALUE[11]";
$emails_an              = "CMS_VALUE[12]";
$cookie_aktiv           = "CMS_VALUE[13]";
$cookie_dauer           = "CMS_VALUE[14]";
$direkt_sichtbar        = "CMS_VALUE[15]";
$xhtml                  = "CMS_VALUE[16]";
// CMS_VARs initialisieren Ende

// CMS_VARs aus vpGuestbook - Ausgabe auslesen
$tplCfg = new templateConfig();
$tplCfg->getDataForIdcat ($ausgabe_cat);
$values_array = $tplCfg->getData($ausgabe_cont);
$bilderpfad = urldecode($values_array[5]);

// eXtended-Template-Klasse (von swelpot) einbinden
// zur Verwendung siehe:
// http://www.contenido.org/forum/viewtopic.php?t=5851
if ($tpl_art == "extended") cInclude('classes',  'class.ExtendedTemplate.php');
else cInclude('classes',  'class.template.php');

if ($xhtml) $einzeltag = " /";
else $einzeltag = "";

$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;

// Funktionen
function testURL($url) {
  if(eregi("http://", $url))   {
    $url = str_replace ("http://", "", $url);

  }
  if ($url != "") {
    $url = "http://".$url;
  }
  return $url;
}

function cookie_setzen ($dauer) {
  global $sess, $vpgblastentry;

  $vpgblastentry = time()+$dauer*60;
  if ($sess->is_registered("vpgblastentry")) $sess->unregister("vpgblastentry");
  $sess->register("vpgblastentry");

}

function vpgb_js () {

  $js = "
    <script type="text/javascript">

    function storeCaret ()
    {
      if (document.input.entry.createTextRange) document.input.entry.caretPos = document.selection.createRange().duplicate();
    }

    function insertAtCaret (icon1, icon2)
    {
      if (document.getElementById('vpgb_eintrag').entry.createTextRange && document.getElementById('vpgb_eintrag').entry.caretPos)
      {
        var caretPos = document.getElementById('vpgb_eintrag').entry.caretPos;
        selectedtext = caretPos.text;
        caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == '' ? ' '+icon1 + ' ' : ' '+icon1+' ';
        caretPos.text = caretPos.text + selectedtext + icon2;
      }
      else document.getElementById('vpgb_eintrag').entry.value = document.getElementById('vpgb_eintrag').entry.value + ' '+icon1 + ' ' + icon2+' '
      document.getElementById('vpgb_eintrag').entry.focus();
    }

    function DoPrompt(action) {
    var revisedMessage;
    var post = document.getElementById("vpgb_eintrag");
    var currentMessage = post.entry.value;

    if (action == "url") {
        var thisURL = prompt("URL der gewünschten Seite angeben", "http://");
        var thisTitle = prompt("Titel der Seite angeben", "Seitentitel");
        var urlBBCode = "[URL="+thisURL+"]"+thisTitle+"[/URL]";
        revisedMessage = currentMessage+urlBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == "email") {
        var thisEmail = prompt("gewünschte E-Mail-Adresse angeben", "");
        var emailBBCode = "[EMAIL]"+thisEmail+"[/EMAIL]";
        revisedMessage = currentMessage+emailBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == "bold") {
        var thisBold = prompt("den fetten Text angeben", "");
        var boldBBCode = "[b]"+thisBold+"[/b]";
        revisedMessage = currentMessage+boldBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == "italic") {
        var thisItal = prompt("den kursiven Text angeben", "");
        var italBBCode = "[i]"+thisItal+"[/i]";
        revisedMessage = currentMessage+italBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    if (action == "underline") {
        var thisUL = prompt("den unterstrichenenen Text angeben", "");
        var ulBBCode = "[u]"+thisUL+"[/u]";
        revisedMessage = currentMessage+ulBBCode;
        post.entry.value=revisedMessage;
        post.entry.focus();
        return;
    }

    }
    </script>
  ";

  return $js;
}

function smilies_preg_quote($str, $delimiter)
{
	$text = preg_quote($str);
	$text = str_replace($delimiter, '\\' . $delimiter, $text);

	return $text;
}

function smilies_auslesen () {
global $cfgClient, $client, $smiliespfad;

  $fcontents = file($cfgClient[$client]['path']['frontend'] . $cfgClient[$client]['upload'] . $smiliespfad . 'smiles.pak');

  if (is_array($fcontents)) {
    $i = 0;
    foreach($fcontents as $zeile)
    {
      $smilies_daten = explode("=+:", trim(addslashes($zeile)));
      $smilies[$i]['icon'] = $smilies_daten[0];
      $smilies[$i]['erklaerung'] = $smilies_daten[1];
      $smilies[$i]['ersetzung'] = $smilies_daten[2];
      $i++;
    }
  }
  return $smilies;
}

function smilies_ersetzen ($entry) {
global $smilies, $cfgClient, $client, $smiliespfad;

  if (is_array($smilies)) {
    foreach ($smilies as $row) {
      $ers = "/(?<=.\W|\W.|^\W)" . smilies_preg_quote($row['ersetzung'], "/") . "(?=.\W|\W.|\W$)/";
      $entry = preg_replace($ers, '<img src="' . $cfgClient[$client]['upload'] . $smiliespfad. $row['icon'].'" alt="' . $row['erklaerung'] . '" />',$entry);
    }
  }
  return $entry;

}

function smilies_ausgeben ($smilies) {
global $cfgClient, $client, $smiliespfad, $einzeltag;

  $code = "";
  if (is_array($smilies)) {
    foreach($smilies as $smilie)
    {
      if ($smilie['icon'] != $h) $code .= "<a class="smilie" href="javascript:insertAtCaret('" . $smilie['ersetzung'] . "','')"><img src="" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $smiliespfad . $smilie['icon'] . "" alt="" . $smilie['erklaerung'] . """.$einzeltag."></a>";
      $h = $smilie['icon'];
    }
  }
  return $code;
}

function bbcode_link ($type) {

  $link = "javascript:DoPrompt('".$type."')";

  return $link;
}

function bbcode_ersetzen ($text) {
global $xhtml;

  if ($xhtml) {
    $text = str_ireplace("[b]", "<strong>", $text);
    $text = str_ireplace("[/b]", "</strong>", $text);
    $text = str_ireplace("[i]", "<em>", $text);
    $text = str_ireplace("[/i]", "</em>", $text);
    $text = str_ireplace("[u]", "<u>", $text);
    $text = str_ireplace("[/u]", "</u>", $text);
  }
  else {
    $text = str_ireplace("[b]", "<b>", $text);
    $text = str_ireplace("[/b]", "</b>", $text);
    $text = str_ireplace("[i]", "<i>", $text);
    $text = str_ireplace("[/i]", "</i>", $text);
    $text = str_ireplace("[u]", "<u>", $text);
    $text = str_ireplace("[/u]", "</u>", $text);
  }
  $patterns = array();
  $replacements = array();
  $patterns[0] = "/\[url\]www.([^\[]*)\[\/url\]/i";
  $replacements[0] = "<a href="http://www.\\1" target=_blank>\\1</a>";
  $patterns[1] = "/\[url\]([^\[]*)\[\/url\]/i";
  $replacements[1] = "<a href="\\1" target=_blank>\\1</a>";
  $patterns[2] = "/\[url=([^\[]*)\]([^\[]*)\[\/url\]/i";
  $replacements[2] = "<a href="\\1" target=_blank>\\2</a>";
  $patterns[3] = "/\[email\]([^\[]*)\[\/email\]/i";
  $replacements[3] = "<a href="mailto:\\1">\\1</a>";
  $patterns[4] = "/\[email=([^\[]*)\]([^\[]*)\[\/email\]/i";
  $replacements[4] = "<a href="mailto:\\1">\\2</a>";
  $text = preg_replace($patterns, $replacements, $text);

  return $text;
}

function bilder_liste () {
global $cfgClient, $client, $bilderpfad;

  $basedir = getcwd();
  chdir($cfgClient[$client]['path']['frontend'] . $cfgClient[$client]['upload'] . $bilderpfad);
  $handle = opendir(".");
  while ($file = readdir($handle)) {
    if (is_dir($file)) $dirlist[] = $file;
    if (is_file($file)) $filelist[] = $file;
  }
  closedir($handle);
  $wdir2 = $basedir . "/";
  chdir($wdir2);
  if ($filelist) {
    asort($filelist);
  }
  $i = 0;
  if (is_array($filelist)) {
    while (list ($key, $file) = each ($filelist)) {
      $bilder[$i] = $file;
      $i++;
    }
  }

  return $bilder;
}

function bilder_radio ($bilder) {
global $cfgClient, $client, $bilderpfad, $einzeltag;

  $code = "";
  if (is_array($bilder)) {
    foreach ($bilder as $bild) {
      $code .= "<div style="float: left;"><img src="" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . $bild . "" alt="$bild" ".$einzeltag."><br".$einzeltag."><input type="radio" name="test" value="$bild"".$einzeltag."></div>\n";
    }
    $code .= "<br style="clear: all;"".$einzeltag.">";
  }
  return $code;

}

function bilder_select ($bilder) {
global $cfgClient, $client, $bilderpfad, $einzeltag;

  $code = "";
  if (is_array($bilder)) {
    $code .= "<select size="1" name="image" id="image" onchange="document.getElementById('vpgb_image').src= '" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . "' + document.getElementById('vpgb_eintrag').image.options[document.getElementById('vpgb_eintrag').image.selectedIndex].value
    ">\n";
    $h = 0;
    foreach ($bilder as $bild) {
      $code .= "<option value="$bild">$bild</option>\n";
      if ($h == 0) {
        $erstes = $bild;
        $h = 1;
      }
    }
    $code .= "</select>\n";
    $code .= "<img src="" . $cfgClient[$client]['path']['htmlpath'] . $cfgClient[$client]['upload'] . $bilderpfad . $erstes . "" id="vpgb_image" alt=""".$einzeltag.">\n";
  }
  return $code;
}

function benachrichtigung ($name, $email, $url, $entry, $iphost, $user1, $user2, $user3, $image) {
global $emails_an, $userfeld1, $userfeld2, $userfeld3;

  $mailtext = "Es gibt einen neuen Eintrag im Gästebuch:

Name: ".html_entity_decode($name)."
E-Mail: $email
Homepage: $url
IP/Hostname: $iphost
$userfeld1: ".html_entity_decode($user1)."
$userfeld2: ".html_entity_decode($user2)."
$userfeld3: ".html_entity_decode($user3)."
Bild: $image
Eintrag:
".html_entity_decode($entry)."
";

  $mail = new phpmailer();
  $mail->AddAddress($emails_an);
  $mail->From     = $this->email['from']['email'];
  $mail->FromName = "Gästebuch";
  $mail->Subject  = "Neuer Gästebucheintrag";
  $mail->Body     = $mailtext;
  if(!$mail->Send()){
    $notsend .= $lngNews["mailcouldnotbesend1"].$to.$lngNews["mailcouldnotbesend2"] . "<br>";
  }

}

function eintragen () {
global $db, $cfg, $client, $lang, $idart, $direkt_sichtbar, $email_benachrichtigung, $smilies_aktiv, $bbcode_aktiv, $bilder, $xhtml;

  // Initialisieren der Variablen
  $error = "";

  // Name überprüfen
  if ($_POST['name'] == "") {
    $error = "Bitte geben Sie Ihren Namen an!";
  }
  else {
    $name = htmlentities(strip_tags($_POST['name']));
  }

  // Email überprüfen
  $email_pattern = '/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i';
  if (($_POST['email'] == "") || (preg_match($email_pattern, $_POST['email']))) {
    $email = $_POST['email'];
  }
  else {
    $error = "Bitte geben Sie eine gültige Email-Adresse an!";
  }

  // URL überprüfen
  if ($_POST['url'] != "") {
    $url = htmlentities(strip_tags($_POST['url']));
    $url = testURL($url);
  }

  // Eintrag überprüfen
  if ($_POST['entry'] == "") {
    $error = "Bitte schreiben Sie einen Eintrag!";
  }
  else {
    $hentry = strip_tags(htmlentities($_POST['entry']));
    $entry = $hentry;
    if ($smilies_aktiv) $entry = smilies_ersetzen($entry);
    if ($bbcode_aktiv) $entry = bbcode_ersetzen($entry);
  }

  // Bilder prüfen
  if (($_POST['image'] == "") || (in_array ($_POST['image'], $bilder))) {
    $image = $_POST['image'];
  }

  // Uservariablen überprüfen
  $user1 = htmlentities(strip_tags($_POST['user1']));
  $user2 = htmlentities(strip_tags($_POST['user2']));
  $user3 = htmlentities(strip_tags($_POST['user3']));

  // IP und Hostname speichern
  $iphost = $_SERVER["REMOTE_ADDR"];
  $host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
  if ($host) $iphost .= " / " . $host;

  // der eigentliche Eintrag in die Datenbank
  if ($error == "") {
    $sql = "INSERT INTO ".$cfg["tab"]["vpguestbook"]." (name, email, url, entry, image, iphost, user1, user2, user3, active, client, lang, date) VALUES ('$name', '$email', '$url', '$entry', '$image', '$iphost', '$user1', '$user2', '$user3', $direkt_sichtbar, $client, $lang, NOW())";
    if (! $db->query($sql)) $error = $db->$Error;
    elseif ($email_benachrichtigung) benachrichtigung ($name, $email, $url, $hentry, $iphost, $user1, $user2, $user3, $image);
  }
  return $error;
}
// Funktionen Ende

if ($smilies_aktiv) {
  // Smilies-Array füllen
  $smilies = smilies_auslesen();
}
$bilder = bilder_liste();

$formular_anzeigen = TRUE;

if ($_POST) {
  if ($sess->is_registered("vpgblastentry")) {
    $lastentry = $GLOBALS["vpgblastentry"];
  }
  if (($lastentry >= time()) && ($cookie_aktiv)) $fehler = "Bitte nicht mehrmals hintereinander eintragen!";
  else $fehler = eintragen();
  if ($fehler != "") {
    $formular_anzeigen = TRUE;
    echo "Fehler: " . $fehler;
  }
  elseif ($direkt_sichtbar) {
    echo "Vielen Dank für Ihren Eintrag!";
    $formular_anzeigen = FALSE;
    if ($cookie_aktiv) cookie_setzen ($cookie_dauer);
  }
  else {
    echo "Vielen Dank für Ihren Eintrag! Dieser wird nach Prüfung freigeschaltet.";
    $formular_anzeigen = FALSE;
    if ($cookie_aktiv) cookie_setzen ($cookie_dauer);
  }
}

if ($formular_anzeigen) {
  if ($smilies_aktiv) {
    // Smilies HTML-Ausgabe
    $smiliesform = smilies_ausgeben($smilies);
  }
  if ($smilies_aktiv || $bbcode_aktiv) echo vpgb_js();

  $imageselect = bilder_select($bilder);

  $imageradio = bilder_radio($bilder);

  $nameform = "<input id="name" type="text" name="name" size="18"".$einzeltag.">";
  $emailform = "<input id="email" type="text" name="email" size="18"".$einzeltag.">";
  $urlform = "<input id="url" type="text" name="url" size="18"".$einzeltag.">";
  if ($userfeld1 != "") $user1form = "<input id="user1" type="text" name="user1" size="18"".$einzeltag.">";
  if ($userfeld2 != "") $user2form = "<input id="user2" type="text" name="user2" size="18"".$einzeltag.">";
  if ($userfeld3 != "") $user3form = "<input id="user3" type="text" name="user3" size="18"".$einzeltag.">";
  $entryform = "<textarea id="entry" name="entry" cols="30" rows="10" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"></textarea>";
  $submitform = "<input type="submit" class="submit" name="vpgb_submit" value="eintragen"".$einzeltag.">";

  $tpl = new ExtendedTemplate();

  $tpl->reset();
  $tpl->set('s', 'NAMEFORM',      $nameform);
  $tpl->set('s', 'EMAILFORM',     $emailform);
  $tpl->set('s', 'URLFORM',       $urlform);
  $tpl->set('s', 'USER1FORM',     $user1form);
  $tpl->set('s', 'USER2FORM',     $user2form);
  $tpl->set('s', 'USER3FORM',     $user3form);
  $tpl->set('s', 'IMAGERADIO',    $imageradio);
  $tpl->set('s', 'IMAGESELECT',   $imageselect);
  $tpl->set('s', 'SMILIESFORM',   $smiliesform);
  $tpl->set('s', 'ENTRYFORM',     $entryform);
  $tpl->set('s', 'SUBMITFORM',    $submitform);
  $tpl->set('s', 'BBFETT',        bbcode_link("bold"));
  $tpl->set('s', 'BBKURSIV',      bbcode_link("italic"));
  $tpl->set('s', 'BBUNTERSTRICH', bbcode_link("underline"));
  $tpl->set('s', 'BBURL',         bbcode_link("url"));
  $tpl->set('s', 'BBEMAIL',       bbcode_link("email"));

  ?>
  <script type="text/javascript">
  function submitForm (s) {
    s.disabled = true;
    s.value = "Vielen Dank!";
    return true;
  }
  </script>
  <?php
  echo "<form action="front_content.php?idcatart=$idcatart" method="post" id="vpgb_eintrag" onSubmit="return submitForm(this.vpgb_submit)">";
  $tpl->generate('templates/' . $tpl_datei);
  echo "</form>";
}

?>
Das Gesamtpaket ist natürlich auch aktualisiert.


Gruß

Ingo

Verfasst: Mo 19. Sep 2005, 13:31
von silicone
Jupp, jetzt funzt's. Danke!

Fatal error: Cannot instantiate non-existent class: extended

Verfasst: Do 29. Sep 2005, 10:26
von huwet
Hallo Leute,

ich habe folgendes Problem bei Eintragsformular:

Fatal error: Cannot instantiate non-existent class: extendedtemplate in /homepages/42/d135503674/htdocs/cms/front_content.php(765) : eval()'d code on line 838

Einer eine Idee?

Gruß

Huwet