Neues Modul: vpGuestbook

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Neues Modul: vpGuestbook

Beitrag von Dodger77 » Di 30. Aug 2005, 16:41

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
Zuletzt geändert von Dodger77 am Fr 18. Nov 2005, 16:23, insgesamt 12-mal geändert.

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Di 30. Aug 2005, 17:07

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
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mi 31. Aug 2005, 07:01

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.

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Fehler in Dokumentation

Beitrag von Dodger77 » Mi 31. Aug 2005, 07:04

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.

Doljaka
Beiträge: 32
Registriert: Mi 11. Mai 2005, 14:08
Wohnort: Kiel
Kontaktdaten:

Fehlermeldung

Beitrag von Doljaka » Mo 5. Sep 2005, 15:39

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
Contenido 4.6.2
Calender RC2
Mod-Rewrite
phpMySQL
tomcat-Server

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Fehlermeldung

Beitrag von Dodger77 » Mo 5. Sep 2005, 16:55

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

Doljaka
Beiträge: 32
Registriert: Mi 11. Mai 2005, 14:08
Wohnort: Kiel
Kontaktdaten:

Re: Fehlermeldung

Beitrag von Doljaka » Di 6. Sep 2005, 08:06

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?
Contenido 4.6.2
Calender RC2
Mod-Rewrite
phpMySQL
tomcat-Server

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Di 6. Sep 2005, 08:17

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?

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Di 6. Sep 2005, 14:59

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

silicone
Beiträge: 299
Registriert: Di 15. Mär 2005, 10:33
Kontaktdaten:

Beitrag von silicone » Mo 19. Sep 2005, 11:09

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?

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mo 19. Sep 2005, 11:24

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.

silicone
Beiträge: 299
Registriert: Di 15. Mär 2005, 10:33
Kontaktdaten:

Beitrag von silicone » Mo 19. Sep 2005, 12:05

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

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mo 19. Sep 2005, 13:18

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

silicone
Beiträge: 299
Registriert: Di 15. Mär 2005, 10:33
Kontaktdaten:

Beitrag von silicone » Mo 19. Sep 2005, 13:31

Jupp, jetzt funzt's. Danke!

huwet
Beiträge: 1
Registriert: Do 29. Sep 2005, 10:13
Kontaktdaten:

Fatal error: Cannot instantiate non-existent class: extended

Beitrag von huwet » Do 29. Sep 2005, 10:26

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

Gesperrt