vpGuestbook - Gästebuchmodul für die 4.6.x

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Fr 30. Dez 2005, 11:04

Dodger77 hat geschrieben:
neu@cidnet.de hat geschrieben:jetzt hab ich nur noch ein kleines Problem.
egal was ich einstelle, das umblättern funktioniert irgendwie nicht richtig. :-/
Wenn da noch ein Tipp wäre, wäre das heute ein gelungener Tag :D
Wäre die Gästebuchausgabe der Startartikel einer Kategorie, würde das schon klappen. Ansonsten ändere bitte in der in dem Ausgabemodul im Output die Funktion "vpgb_navigation" (Zeilen 209-237) in:

Code: Alles auswählen

function vpgb_navigation ($start, $eintraege_pro_seite, $anzahl_eintraege, $art = 1) {
global $link_vor, $link_zurueck, $idcatart;

            $hier = "front_content.php?idcat=" . $idcatart;
            $vpgb_nav = "";
            if ($start > 0) {
                $vpgb_nav .= "<a href="" . $hier . "&start=" . ($start - $eintraege_pro_seite) . "">" . $link_zurueck . "</a>";
            }
            if ($anzahl_eintraege > $eintraege_pro_seite) {
                $anzahl_seiten = ceil($anzahl_eintraege / $eintraege_pro_seite);
                for ($h = 1; $h <= $anzahl_seiten; $h++) {
                    $hstart = ($h - 1) * $eintraege_pro_seite;
                    if ($art == 1) {
                      if ($h == $anzahl_seiten) {
                          if ($anzahl_eintraege > ($hstart + 1)) $htext = ($hstart + 1) . "-" . $anzahl_eintraege;
                          else $htext = $anzahl_eintraege;
                      }
                      else $htext = ($hstart + 1) . "-" . ($hstart + $eintraege_pro_seite);
                    }
                    else $htext = $h;
                    if ($hstart == $start) $vpgb_nav .= "<a class="vpgb_aktiv" href="" . $hier . "&start=" . $hstart . "">" . $htext . "</a>";
                    else $vpgb_nav .= "<a href="" . $hier . "&start=" . $hstart . "">" . $htext . "</a>";
                }
            }
            if (($start + $eintraege_pro_seite) < $anzahl_eintraege) {
                $vpgb_nav .= "<a href="" . $hier . "&start=" . ($start + $eintraege_pro_seite) . "">" . $link_vor . "</a>";
            }
  return $vpgb_nav;
}
Dann sollte das klappen. Das wird auch Bestandteil der nächsten Version.
http://content.kirchekelzenberg.de/cms/ ... dcatart=18
Hmm, nee, tuts leider nicht :(
vielleicht noch ne idee?

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

Beitrag von Dodger77 » Fr 30. Dez 2005, 11:12

neu@cidnet.de hat geschrieben:Hmm, nee, tuts leider nicht :(
vielleicht noch ne idee?
Bitte nochmal kopieren, da war ein Fehler drin.

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Fr 30. Dez 2005, 12:35

hmm :cry:
tuts immernoch nicht, bin ich der erste wo es nicht funktioniert ?

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

Beitrag von Dodger77 » Fr 30. Dez 2005, 13:49

neu@cidnet.de hat geschrieben:hmm :cry:
tuts immernoch nicht, bin ich der erste wo es nicht funktioniert ?
Bitte den Code hier nochmal kopieren:

http://www.contenido.org/forum/viewtopi ... 6403#66403

Soweit ich das bei deinem angegebenen Link sehe, hast du den neuen Code noch nicht im Output drin.

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Fr 30. Dez 2005, 17:20

Dodger77 hat geschrieben:
neu@cidnet.de hat geschrieben:hmm :cry:
tuts immernoch nicht, bin ich der erste wo es nicht funktioniert ?
Bitte den Code hier nochmal kopieren:

http://www.contenido.org/forum/viewtopi ... 6403#66403

Soweit ich das bei deinem angegebenen Link sehe, hast du den neuen Code noch nicht im Output drin.
hey tuts :D
coool danke :)

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Fr 30. Dez 2005, 23:53

so das wird dann jetzt definitiv mein letzter post :), der etwas fragt:

http://content.kirchekelzenberg.de/cms/ ... dcatart=18
war der Link :)

jetzt steht ja unten diese Aufzählung der einzlen Artikel.
wie stelle ich es an, dass das etwas schöner aussieht, und nicht allesineinerreihedasteht ?

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

Beitrag von Dodger77 » Sa 31. Dez 2005, 10:31

neu@cidnet.de hat geschrieben:jetzt steht ja unten diese Aufzählung der einzlen Artikel.
wie stelle ich es an, dass das etwas schöner aussieht, und nicht allesineinerreihedasteht ?
CSS (margin und padding könnten von Interesse sein)

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

Beitrag von Dodger77 » Mo 16. Jan 2006, 16:51

Die o.g. Bugs sind in der aktuellen Version 1.9 nun gefixed. Weiterhin kann man nun die Navigation auch so ausgeben lassen:

Code: Alles auswählen

Seite: 1 2 3 ... 6 7 8 ... 12 13 14

kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

art?

Beitrag von kypta » Fr 27. Jan 2006, 15:51

Kurz nachgefragt:
Wozu wird das Tabellenfeld "art" in der Tabelle con_vpguestbook verwendet? Es wird momentan ja nicht abgefüllt...

Gruss
Thomas

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

Re: art?

Beitrag von Dodger77 » Fr 27. Jan 2006, 16:01

Thomas hat geschrieben:Kurz nachgefragt:
Wozu wird das Tabellenfeld "art" in der Tabelle con_vpguestbook verwendet? Es wird momentan ja nicht abgefüllt...
Hatte ich vorhin schonmal in einem anderen Thread erwähnt. Aber hier passt es eigentlich noch besser.
Das Modul soll noch etwas flexibler werden und neben einem Gästebuch auch Kommentare und andere Auflistungen von Benutzermitteilungen (z.B. Linklisten, Feature-Requests) darstellen können. Dafür ist ein Bezug auf die "idart" des Artikels notwendig, für den der Eintrag ist. Wahrscheinlich werde ich das Modul dann auch umbenennen in vpComments oder ähnlich.

kypta
Beiträge: 295
Registriert: Di 8. Jul 2003, 13:25
Kontaktdaten:

Beitrag von kypta » Fr 27. Jan 2006, 16:26

Das Modul soll noch etwas flexibler werden und neben einem Gästebuch auch Kommentare und andere Auflistungen von Benutzermitteilungen (z.B. Linklisten, Feature-Requests) darstellen können. Dafür ist ein Bezug auf die "idart" des Artikels notwendig, für den der Eintrag ist. Wahrscheinlich werde ich das Modul dann auch umbenennen in vpComments oder ähnlich.
Genau darum habe ich Dich gefragt. Bin gerade dabei, Dein Gästebuch für Kommentare zu "entfremden". Mein Ziel ist es, dass:
- nur angemeldete user Einträge machen können
(nach E-Mail-Anmeldung resp. Login mit den Modulen von HerrB)
- Kommentare zu allen Artikeln möglich sind (darum die Frage nach art)
- Ein Nickname angezeigt wird und nicht ein "frei" wählbarer Name
(user mit auth identifizieren und Nickname aus der tabelle frontendusers nehmen - existiert leider noch nicht)
Gruss
Thomas

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

Beitrag von Dodger77 » Mi 15. Feb 2006, 16:59

Bei Problemen mit Fehlermeldungen in der Art:

Code: Alles auswählen

Parse error: parse error, unexpected T_STRING ...
bitte den Output des Ausgabemoduls ändern in:

Code: Alles auswählen

<?php

/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :	    vpGuestbook 1.9.1 - Ausgabe
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     2005-03-14
* Modified    :     2006-02-14
************************************************/

// CMS_VARs initialisieren
$spez_client         = "CMS_VALUE[1]";
$spez_lang           = "CMS_VALUE[2]";
$tpl_datei           = "CMS_VALUE[3]";
$tpl_art             = "CMS_VALUE[4]";
$bilderpfad          = "CMS_VALUE[5]";
$eintraege_pro_seite = "CMS_VALUE[6]";
$seitennav_art       = "CMS_VALUE[7]";
$dateformat1         = "CMS_VALUE[8]";
$dateformat2         = "CMS_VALUE[9]";
$locale              = "CMS_VALUE[10]";
$wrap_length         = "CMS_VALUE[11]";
$link_vor            = "CMS_VALUE[12]";
$link_zurueck        = "CMS_VALUE[13]";
$max_seiten          = "CMS_VALUE[14]";
// CMS_VARs initialisieren Ende

// 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');

$edit_url = "front_content.php?changeview=edit&client=$client&lang=$lang&action=con_editart&idartlang=$idartlang&idart=$idart&idcat=$idcat&contenido=" . $sess->id;

// locale auf ausgewählten Wert setzen
setlocale (LC_ALL, $locale);

// DB-Verbindung konfigurieren
$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";

$db = new DB_Contenido;


// Funktionen
function htmlwrap($str, $width = 60, $break = "\n", $nobreak = "", $nobr = "pre", $utf = false) {

  // Split HTML content into an array delimited by < and >
  // The flags save the delimeters and remove empty variables
  $content = preg_split("/([<>])/", $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

  // Transform protected element lists into arrays
  $nobreak = explode(" ", $nobreak);
  $nobr = explode(" ", $nobr);

  // Variable setup
  $intag = false;
  $innbk = array();
  $innbr = array();
  $drain = "";
  $utf = ($utf) ? "u" : "";

  // List of characters it is "safe" to insert line-breaks at
  // Do not add ampersand (&) as it will mess up HTML Entities
  // It is not necessary to add < and >
  $lbrks = "/?!%)-}]\\\"':;";

  // We use \r for adding <br /> in the right spots so just switch to \n

  if ($break == "\r") $break = "\n";

  while (list(, $value) = each($content)) {
    switch ($value) {

      // If a < is encountered, set the "in-tag" flag
      case "<": $intag = true; break;


      // If a > is encountered, remove the flag
      case ">": $intag = false; break;

      default:

        // If we are currently within a tag...
        if ($intag) {

          // If the first character is not a / then this is an opening tag
          if ($value{0} != "/") {

            // Collect the tag name
            preg_match("/^(.*?)(\s|$)/$utf", $value, $t);

            // If this is a protected element, activate the associated protection flag
            if ((!count($innbk) && in_array($t[1], $nobreak)) || in_array($t[1], $innbk)) $innbk[] = $t[1];
            if ((!count($innbr) && in_array($t[1], $nobr)) || in_array($t[1], $innbr)) $innbr[] = $t[1];

          // Otherwise this is a closing tag
          } else {

            // If this is a closing tag for a protected element, unset the flag
            if (in_array(substr($value, 1), $innbk)) unset($innbk[count($innbk)]);
            if (in_array(substr($value, 1), $innbr)) unset($innbr[count($innbr)]);
          }

        // Else if we're outside any tags...
        } else if ($value) {

          // If unprotected, remove all existing \r, replace all existing \n with \r
          if (!count($innbr)) $value = str_replace("\n", "\r", str_replace("\r", "", $value));

          // If unprotected, enter the line-break loop
          if (!count($innbk)) {
            do {
              $store = $value;

              // Find the first stretch of characters over the $width limit
              if (preg_match("/^(.*?\s|^)(([^\s&]|&(\w{2,5}|#\d{2,4});){".$width."})(?!(".preg_quote($break, "/")."|\s))(.*)$/s$utf", $value, $match)) {

                // Determine the last "safe line-break" character within this match
                for ($x = 0, $ledge = 0; $x < strlen($lbrks); $x++) $ledge = max($ledge, strrpos($match[2], $lbrks{$x}));
                if (!$ledge) $ledge = strlen($match[2]) - 1;

                // Insert the modified string
                $value = $match[1].substr($match[2], 0, $ledge + 1).$break.substr($match[2], $ledge + 1).$match[6];
              }

            // Loop while overlimit strings are still being found
            } while ($store != $value);
          }

          // If unprotected, replace all \r with <br />\n to finish
          if (!count($innbr)) $value = str_replace("\r", "<br />\n", $value);
        }
    }

    // Send the modified segment down the drain
    $drain .= $value;
  }

  // Return contents of the drain
  return $drain;
}

function toggle_active ($entry) {
global $db, $cfg;

  $sql = "UPDATE ".$cfg["tab"]["vpguestbook"]." SET active = '1' WHERE id='$entry'";
  $db->query($sql);
}

function toggle_inactive ($entry) {
global $db, $cfg;

  $sql = "UPDATE ".$cfg["tab"]["vpguestbook"]." SET active = '0' WHERE id='$entry'";
  $db->query($sql);
}

function eintrag_loeschen ($entry) {
global $db, $cfg;

  $sql = "DELETE FROM ".$cfg["tab"]["vpguestbook"]." WHERE id='$entry'";
  $db->query($sql);
}

function eintraege_zaehlen () {
global $db, $cfg, $client;

  $sql = "SELECT COUNT(*) as anzahl FROM ".$cfg["tab"]["vpguestbook"]." WHERE client=$client AND active=1";


  $db->query($sql);
  $db->next_record();
  return $db->f("anzahl");
}

function eintraege_auslesen ($start, $anzahl) {
global $db, $cfg, $client, $lang, $idart, $spez_client, $spez_lang, $edit;

  if ($edit && empty($_GET['edit'])) $where = "WHERE 1";
  else $where = "WHERE active=1";
  if ($spez_client) $where .= " AND client=$client";
  if ($spez_lang) $where .= " AND lang=$lang";
  $sql = "SELECT id, active, name, email, url, entry, image, comment, iphost, user1, user2, user3, UNIX_TIMESTAMP(date) as datum FROM ".$cfg["tab"]["vpguestbook"]." $where ORDER BY date DESC LIMIT $start, $anzahl";
  $db->query($sql);
  $eintraege = array();
  $i = 0;
  while ($db->next_record()) {
    $eintraege[$i]['id']      = $db->f("id");
    $eintraege[$i]['active']  = $db->f("active");
    $eintraege[$i]['name']    = $db->f("name");
    $eintraege[$i]['email']   = $db->f("email");
    $eintraege[$i]['url']     = $db->f("url");
    $eintraege[$i]['entry']   = $db->f("entry");
    $eintraege[$i]['image']   = $db->f("image");
    $eintraege[$i]['comment'] = $db->f("comment");
    $eintraege[$i]['iphost']  = $db->f("iphost");
    $eintraege[$i]['user1']   = $db->f("user1");
    $eintraege[$i]['user2']   = $db->f("user2");
    $eintraege[$i]['user3']   = $db->f("user3");
    $eintraege[$i]['date']    = $db->f("datum");
    $i++;
  }
  return $eintraege;
}

function vpgb_navigation ($start, $eintraege_pro_seite, $anzahl_eintraege, $art = 1) {
global $link_vor, $link_zurueck, $idcat, $idcatart, $max_seiten;

            $hier = "front_content.php?idcatart=" . $idcatart;
            $vpgb_nav = "";

            if ($start > 0) {
                $vpgb_nav .= "<a href=\"" . $hier . "&start=" . ($start - $eintraege_pro_seite) . "\">" . $link_zurueck . "</a>";
            }
            if ($anzahl_eintraege > $eintraege_pro_seite) {
                $anzahl_seiten = ceil($anzahl_eintraege / $eintraege_pro_seite);
                if (($max_seiten == "") || ($max_seiten > $anzahl_seiten)) {
                  for ($h = 1; $h <= $anzahl_seiten; $h++) {
                    $hstart = ($h - 1) * $eintraege_pro_seite;
                    if ($art == 1) {
                      if ($h == $anzahl_seiten) {
                          if ($anzahl_eintraege > ($hstart + 1)) $htext = ($hstart + 1) . "-" . $anzahl_eintraege;
                          else $htext = $anzahl_eintraege;
                      }
                      else $htext = ($hstart + 1) . "-" . ($hstart + $eintraege_pro_seite);
                    }
                    else $htext = $h;
                    if ($hstart == $start) $vpgb_nav .= " <a class=\"vpgb_aktiv\" href=\"" . $hier . "&start=" . $hstart . "\">" . $htext . "</a>";
                    else $vpgb_nav .= " <a href=\"" . $hier . "&start=" . $hstart . "\">" . $htext . "</a>";
                  }
                }
                else {
                  for ($h = 1; $h <= $anzahl_seiten; $h++) {
                    $hstart = ($h - 1) * $eintraege_pro_seite;
                    if ($art == 1) {
                      if ($h == $anzahl_seiten) {
                          if ($anzahl_eintraege > ($hstart + 1)) $htext = ($hstart + 1) . "-" . $anzahl_eintraege;
                          else $htext = $anzahl_eintraege;
                      }
                      else $htext = ($hstart + 1) . "-" . ($hstart + $eintraege_pro_seite);
                    }
                    else $htext = $h;
                    if (($hstart < $eintraege_pro_seite * 2) || ($hstart > (($anzahl_seiten - 3) * $eintraege_pro_seite)) || (($hstart > ($start - ($eintraege_pro_seite * 2))) && ($hstart < ($start + ($eintraege_pro_seite * 2))))) {
                      if ($hstart == $start) $vpgb_nav .= " <a class=\"vpgb_aktiv\" href=\"" . $hier . "&start=" . $hstart . "\">" . $htext . "</a>";
                      else $vpgb_nav .= " <a href=\"" . $hier . "&start=" . $hstart . "\">" . $htext . "</a>";
                    }
                    else $vpgb_nav .= "###";
                  }
                }
            }
            if (($start + $eintraege_pro_seite) < $anzahl_eintraege) {
                $vpgb_nav .= " <a href=\"" . $hier . "&start=" . ($start + $eintraege_pro_seite) . "\">" . $link_vor . "</a>";
            }
  $vpgb_nav = preg_replace("/(\#+)/", " <span class=\"vpgb_punkte\">&hellip;</span>", $vpgb_nav);
  return $vpgb_nav;
}

function edit_comment ($entry_id, $new_entry, $type) {
global $db, $cfg, $client;

  if ($type == "delete") {
    $sql = "UPDATE ".$cfg["tab"]["vpguestbook"]." SET comment = '' WHERE id='$entry_id'";
    $db->query($sql);
  }
  else {
    $sql = "UPDATE ".$cfg["tab"]["vpguestbook"]." SET comment = '$new_entry' WHERE id='$entry_id'";
    $db->query($sql);
  }

}
// Funktionen Ende

if ($edit && empty($_GET['edit'])) {
  if ($_GET['toggle_active'] == "yes")   toggle_active($_GET['entry']);
  if ($_GET['toggle_inactive'] == "yes") toggle_inactive($_GET['entry']);
  if ($_GET['delete'] == "yes")          eintrag_loeschen($_GET['entry']);
  if ($_POST['edit_comment'])            edit_comment($_GET['entry'], $_POST['kommentar'], "edit");
  if ($_POST['delete_comment'])          edit_comment($_GET['entry'], $_POST['kommentar'], "delete");
}

if (! $_GET['start']) $start = 0;
else $start = $_GET['start'];

// Einträge
$anzahl_eintraege = eintraege_zaehlen();
if ($edit && empty($_GET['edit'])) {
  $eintraege = eintraege_auslesen(0, 10000);
  $seitennavigation = "";
}
else {
  $eintraege = eintraege_auslesen($start, $eintraege_pro_seite);
  if ($seitennav_art == 1) $seitennavigation = vpgb_navigation($start, $eintraege_pro_seite, $anzahl_eintraege, 1);
  else $seitennavigation = vpgb_navigation($start, $eintraege_pro_seite, $anzahl_eintraege, 0);
}

if ($tpl_art == "extended") $tpl = new ExtendedTemplate();
else $tpl = new Template;

  $tpl->reset();
  $tpl->set('s', 'EINTRAEGE',    $anzahl_eintraege);
  $tpl->set('s', 'SEITENNAVIGATION',   $seitennavigation);

foreach ($eintraege as $eintrag) {
  if ($edit && empty($_GET['edit'])) {
    $tpl->set('d', 'EDIT', "1");
    if ($eintrag['active']) $adminlinks = "<a href=\"" . $edit_url . "&toggle_inactive=yes&entry=" . $eintrag['id'] . "\"><img src=\"" . $cfg['path']['contenido_fullhtml'] . "images/online.gif\" width=\"11\" height=\"12\" border=\"0\" title=\"Offline schalten\" alt=\"Offline schalten\"></a>";
    else $adminlinks = "<a href=\"" . $edit_url . "&toggle_active=yes&entry=" . $eintrag['id'] . "\"><img src=\"" . $cfg['path']['contenido_fullhtml'] . "images/offline.gif\" width=\"11\" height=\"12\" border=\"0\" title=\"Online schalten\" alt=\"Online schalten\"></a>";
    $adminlinks .= '<a title="Modul l&ouml;schen" href="' . $edit_url . '&delete=yes&entry=' . $eintrag['id'] . '" onClick="return confirm(\'Wollen Sie den G&auml;stebucheintrag von ' . $eintrag['name'] . ' wirklich l&ouml;schen?\')" ><img src="' . $cfg['path']['contenido_fullhtml'] . 'images/delete.gif" border="0" title="Eintrag l&ouml;schen" alt="Eintrag l&ouml;schen"></a>';
    $comment  = "<form action=\"" . $edit_url . "&entry=" . $eintrag['id'] . "\" method=\"post\">";
    $comment .= "<textarea name=\"kommentar\">" . htmlentities($eintrag['comment'], ENT_QUOTES) . "</textarea><input type=\"submit\" name=\"edit_comment\" value=\"&auml;ndern\"> <input type=\"submit\" name=\"delete_comment\" value=\"l&ouml;schen\">";
    $comment .= "</form>";
  }
  else {
    $comment = htmlwrap(htmlentities($eintrag['comment'], ENT_QUOTES), $wrap_length, " ");
  }

  $tpl->set('d', 'NAME',       $eintrag['name']);
  $tpl->set('d', 'EMAIL',      $eintrag['email']);
  $tpl->set('d', 'URL',        $eintrag['url']);
  $tpl->set('d', 'ENTRY',      htmlwrap($eintrag['entry'], $wrap_length, " "));
  $tpl->set('d', 'COMMENT',    $comment);
  $tpl->set('d', 'USER1',      $eintrag['user1']);
  $tpl->set('d', 'USER2',      $eintrag['user2']);
  $tpl->set('d', 'USER3',      $eintrag['user3']);
  $tpl->set('d', 'IPHOST',     $eintrag['iphost']);
  $tpl->set('d', 'IMAGE',      $cfgClient[$client]['upload'].$bilderpfad.$eintrag['image']);
  $tpl->set('d', 'DATE1',      strftime($dateformat1, $eintrag['date']));
  $tpl->set('d', 'DATE2',      strftime($dateformat2, $eintrag['date']));
  $tpl->set('d', 'ADMINLINKS', $adminlinks);
  $tpl->next();

}

  $tpl->generate('templates/' . $tpl_datei);

?>
Das wird natürlich auch in der nächsten gepackten Version mit drin sein.

mr.johnnyb
Beiträge: 8
Registriert: Fr 14. Jan 2005, 13:37
Wohnort: Bassano del Grappa (Italia)
Kontaktdaten:

Fehler

Beitrag von mr.johnnyb » So 5. Mär 2006, 14:25

Hallo zusammen,

habe gerade veruscht die vpGB versio 1.9 in meinem Contenido 4.6 einzu binden leider bekomme ich sowohl im Eingabe als auch im Ausgabe Modul, beim einen in zeile 105 und beim anderen in zeile 109 einen fehler zurünk und links das lämpchen ist rot.

Hier der Code vom Eingabe -Input (Zeile 109 fehler):

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :	    vpGuestbook 1.9 - Eintrag
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     2005-03-14
* Modified    :     2006-01-16
************************************************/

$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;
$sql = "CREATE TABLE IF NOT EXISTS `".$cfg["tab"]["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;";
$db->query($sql);

if (! function_exists('dir_list')) {
  #Build folder list recursively
  function dir_list($dir, $sPrefix, $show_options = 0) {
  global $sSelected, $cfgClient, $client;

	$old_path = getcwd();
        $sPathDir = $cfgClient[$client]["path"]["frontend"].$cfgClient[$client]["upload"].$dir;

	if (is_dir($sPathDir)) {
		chdir($sPathDir);
		$myhandle = opendir('.');

		while (($mydir = readdir($myhandle)) !== false) {
			if (($mydir != ".") && ($mydir != "..")) {
				if (is_dir($mydir)) {
                                        $dirs[] = $dir.$mydir."/";
                                        $prefixs[] = $sPrefix.$mydir;
					$ret = dir_list($dir.$mydir."/", '&nbsp;&nbsp;&nbsp;&nbsp;'.$sPrefix);
                                        foreach ($ret['dirs'] as $key => $value) {
                                          $dirs[] = $value;
                                          $prefixs[] = $ret['prefixs'][$key];
                                        }
					chdir($sPathDir);
				}
			}
		}
		closedir($myhandle);
	}

	chdir($old_path);
	if ($show_options == 1) {
          array_multisort ($dirs, $prefixs);
          foreach ($dirs as $key => $value) {
  	    if ($sSelected == $value) {
	      echo '<option selected value="'.$value.'">'.$prefixs[$key].'</option>';
	    }
            else {
	      echo '<option value="'.$value.'">'.$prefixs[$key].'</option>';
	    }
          }
        }
        else {
          $ret['dirs'] = $dirs;
          $ret['prefixs'] = $prefixs;
          return $ret;
        }
  }

}

$hier = getcwd ();
if ($cfgClient[$client][tpl][path]) chdir($cfgClient[$client][tpl][path]);
else chdir($cfgClient[$client][path][frontend]."templates/");
$handle = opendir(".");
while ($file = readdir($handle)) {
  if (is_dir($file)) $dirlist[] = $file;
  if (is_file($file)) $filelist[] = $file;
}
closedir($handle);
chdir($hier);
if ($filelist) {
  asort($filelist);
}

$selected = "CMS_VALUE[1]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";

echo "<tr><td>Templatedatei: ";
echo "<td><select size=\"1\" name=\"CMS_VAR[3]\">";
while (list ($key, $file) = each ($filelist)) {
  echo "<option value=\"$file\"";
  if ("CMS_VALUE[3]" "== $file) echo "selected=\"selected\"";
  echo ">$file</option>";
}
echo "</td></tr>";

echo "<tr>";
echo "<td>Templateklasse:</td><td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[4]\" VALUE=\"normal\" ";
if ("CMS_VALUE[4]" "== "=="normal") echo "checked=\"checked\" ";
echo "> normale Klasse <input type=\"radio\" name=\"CMS_VAR[4]\" value=\"extended\" ";
if ("CMS_VALUE[4]" "== "=="extended") echo "checked=\"checked\" ";
echo "> eXtended-Template-Klasse (<a href=\"http://www.contenido.org/forum/viewtopic.php?t=5851\" target=\"_blank\">von swelpot</a>)</td></tr>";

echo "<tr><td>Smilies benutzen:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[5]\" value=\"1\" ";
if ("CMS_VALUE[5]" "== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";

echo "<tr><td>Bilderverzeichnis für Smilies:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[6]\" />";
$sSelected = "CMS_VALUE[6]";
dir_list("", '->', 1);
echo "</select></td></tr>";

echo "<tr><td>Avatare benutzen:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[18]\" value=\"1\" ";
if ("CMS_VALUE[18]" "== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";

echo "<tr><td>Bilderverzeichnis für Avatare:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[17]\" />";
$sSelected = "CMS_VALUE[17]";
dir_list("", '->', 1);
echo "</select></td></tr>";

echo "<tr><td>BB-Code aktiv:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[7]\" value=\"1\" ";
if ("CMS_VALUE[7]" "== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";

echo "<tr><td>Benutzerfeld 1:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=\"30\" /></td></tr>";

echo "<tr><td>Benutzerfeld 2:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" size=\"30\" /></td></tr>";

echo "<tr><td>Benutzerfeld 3:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[10]\" value=\"CMS_VALUE[10]\" size=\"30\" /></td></tr>";

echo "<tr valign=\"top\"><td width=\"202\">Emailbenachrichtigung: ";
echo "Ja <input type=\"checkbox\" name=\"CMS_VAR[11]\" value=\"1\" ";
if ("CMS_VALUE[11]" "== 1) echo "checked=\"checked\" ";
echo "> An:</td><td>";

echo "<input type=\"text\" name=\"CMS_VAR[12]\" value=\"CMS_VALUE[12]\"></td></tr>";
echo "<tr>";
echo "<td width=\"202\">Cookie gegen doppelte Einträge :</td><td><input type=\"radio\" name=\"CMS_VAR[13]\" value=\"0\" ";
if ("CMS_VALUE[13]" "== 0) echo "checked=\"checked\" ";
echo "> aus <input type=\"radio\" name=\"CMS_VAR[13]\" value=\"1\" ";
if ("CMS_VALUE[13]" "== 1) echo "checked=\"checked\" ";
echo "> an</td></tr>";

echo "<tr>";
echo "<td width=\"202\">Cookie Lebensdauer (in Minuten) :
</td><td><input type=\"text\" name=\"CMS_VAR[14]\" value=\"CMS_VALUE[14]\" ></td></tr>";

echo "<tr><td>Einträge direkt sichtbar?:</td>";
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[15]\" value=\"1\" ";
if ("CMS_VALUE[15]" "== 1) echo "checked=\"checked\" ";
echo "/></td></tr>";

echo "<tr>";
echo "<td width=\"202\">Ausgaben als valides :</td><td><input type=\"radio\" name=\"CMS_VAR[16]\" value=\"0\" ";
if ("CMS_VALUE[16]" "== 0) echo "checked=\"checked\" ";
echo "> HTML <input type=\"radio\" name=\"CMS_VAR[16]\" value=\"1\" ";
if ("CMS_VALUE[16]" "== 1) echo "checked=\"checked\" ";
echo "> XHTML</td></tr>";

echo "</table>";
Hier der Code vom Ausgabe -Input (Zeile 105 fehler)

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :	    vpGuestbook 1.9 - Ausgabe
* Author      :     Ingo van Peeren
* Copyright   :     Ingo van Peeren (ingo@van-peeren.de)
* Created     :     2005-03-14
* Modified    :     2006-01-16
************************************************/

$cfg["tab"]["vpguestbook"] = $cfg['sql']['sqlprefix']."_vpguestbook";
$db = new DB_Contenido;
$sql = "CREATE TABLE IF NOT EXISTS `".$cfg["tab"]["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;";
$db->query($sql);

if (! function_exists('dir_list')) {
  #Build folder list recursively
  function dir_list($dir, $sPrefix, $show_options = 0) {
  global $sSelected, $cfgClient, $client;

	$old_path = getcwd();
        $sPathDir = $cfgClient[$client]["path"]["frontend"].$cfgClient[$client]["upload"].$dir;

	if (is_dir($sPathDir)) {
		chdir($sPathDir);
		$myhandle = opendir('.');

		while (($mydir = readdir($myhandle)) !== false) {
			if (($mydir != ".") && ($mydir != "..")) {
				if (is_dir($mydir)) {
                                        $dirs[] = $dir.$mydir."/";
                                        $prefixs[] = $sPrefix.$mydir;
					$ret = dir_list($dir.$mydir."/", '&nbsp;&nbsp;&nbsp;&nbsp;'.$sPrefix);
                                        foreach ($ret['dirs'] as $key => $value) {
                                          $dirs[] = $value;
                                          $prefixs[] = $ret['prefixs'][$key];
                                        }
					chdir($sPathDir);
				}
			}
		}
		closedir($myhandle);
	}

	chdir($old_path);
	if ($show_options == 1) {
          array_multisort ($dirs, $prefixs);
          foreach ($dirs as $key => $value) {
  	    if ($sSelected == $value) {
	      echo '<option selected value="'.$value.'">'.$prefixs[$key].'</option>';
	    }
            else {
	      echo '<option value="'.$value.'">'.$prefixs[$key].'</option>';
	    }
          }
        }
        else {
          $ret['dirs'] = $dirs;
          $ret['prefixs'] = $prefixs;
          return $ret;
        }
  }

}

$hier = getcwd ();
if ($cfgClient[$client][tpl][path]) chdir($cfgClient[$client][tpl][path]);
else chdir($cfgClient[$client][path][frontend]."templates/");
$handle = opendir(".");
while ($file = readdir($handle)) {
  if (is_dir($file)) $dirlist[] = $file;
  if (is_file($file)) $filelist[] = $file;
}
closedir($handle);
chdir($hier);
if ($filelist) {
  asort($filelist);
}

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";

echo "<tr valign=\"top\"><td>Ausgabe mandantenspezifisch: ";
echo "</td><td><input type=\"checkbox\" name=\"CMS_VAR[1]\" value=\"1\" ";
if("CMS_VALUE[1]" "== 1) echo "checked=\"checked\" ";
echo ">";
echo "</td></tr>";

echo "<tr valign=\"top\"><td>Ausgabe sprachspezifisch: ";
echo "</td><td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"1\" ";
if("CMS_VALUE[2]" "== 1) echo "checked=\"checked\" ";
echo ">";
echo "</td></tr>";

echo "<tr><td>Templatedatei: ";
echo "<td><select size=\"1\" name=\"CMS_VAR[3]\">";
while (list ($key, $file) = each ($filelist)) {
  echo "<option value=\"$file\"";
  if ("CMS_VALUE[3]" "== $file) echo " selected=\"selected\" ";
  echo ">$file</option>";
}
echo "</td></tr>";

echo "<tr>";
echo "<td>Templateklasse:</td><td><INPUT TYPE=\"radio\" name=\"CMS_VAR[4]\" value=\"normal\" ";
if ("CMS_VALUE[4]" "== "=="normal") echo "checked=\"checked\" ";
echo "> normale Klasse
<input type=\"radio\" name=\"CMS_VAR[4]\" value=\"extended\" ";
if ("CMS_VALUE[4]" "== "=="extended") echo "checked=\"checked\" ";
echo "> eXtended-Template-Klasse (<a href=\"http://www.contenido.org/forum/viewtopic.php?t=5851\" target=\"_blank\">von swelpot</a>)</td></tr>";

echo "<tr><td>Bilderverzeichnis für Avatare:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[5]\">";
$sSelected = "CMS_VALUE[5]";
dir_list("", '->', 1);
echo "</select></td></tr>";

echo "<tr><td>Eintr&auml;ge pro Seite:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[6]\">";
for ($i = 1; $i < 41; $i++) {
	echo "<option value=\"$i\"";
	if ("CMS_VALUE[6]" "== $i) echo " selected=\"selected\" ";
	echo ">$i</option>";
}
echo "</select></td></tr>";

echo "<tr>";
echo "<td>Seitennavigation mit</td><td><input type=\"radio\" name=\"CMS_VAR[7]\" value=\"0\" ";
if ("CMS_VALUE[7]" "== 0) echo "checked=\"checked\" ";
echo"> Seitenzahlen
<input type=\"radio\" name=\"CMS_VAR[7]\" value=\"1\" ";
if ("CMS_VALUE[7]" "== 1) echo "checked=\"checked\" ";
echo"> Eintr&auml;gen</td></tr>";

echo "<tr><td>Datumsformat DATE1 (Verwendung siehe <a href=\"http://de.php.net/manual/de/function.strftime.php\" target=\"_blank\">www.php.net</a>):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=\"30\" /></td></tr>";

echo "<tr><td>Datumsformat DATE2 (Verwendung siehe <a href=\"http://de.php.net/manual/de/function.strftime.php\" target=\"_blank\">www.php.net</a>):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" size=\"30\" /></td></tr>";

echo "<tr><td>Spracheinstellungen für das Datum (z.B. \"de_DE\"):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[10]\" value=\"CMS_VALUE[10]\" size=\"30\" /></td></tr>";

echo "<tr><td>L&auml;ngste Zeichenfolge:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[11]\" value=\"CMS_VALUE[11]\" size=\"30\" /></td></tr>";

echo "<tr><td>Text \"vor\":</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[12]\" value=\"CMS_VALUE[12]\" size=\"30\" /></td></tr>";

echo "<tr><td>Text \"zur&uuml;ck\":</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[13]\" value=\"CMS_VALUE[13]\" size=\"30\" /></td></tr>";

echo "<tr><td>Ab wie vielen Seiten soll die Navigation komprimiert dargestellt werden?:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[14]\" value=\"CMS_VALUE[14]\" size=\"30\" /></td></tr>";

echo "</table>";
Mit bestem Dank im vorraus.

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

Re: Fehler

Beitrag von Dodger77 » So 5. Mär 2006, 15:13

mr.johnnyb hat geschrieben:Hallo zusammen,

habe gerade veruscht die vpGB versio 1.9 in meinem Contenido 4.6 einzu binden leider bekomme ich sowohl im Eingabe als auch im Ausgabe Modul, beim einen in zeile 105 und beim anderen in zeile 109 einen fehler zurünk und links das lämpchen ist rot.
Öffne die PHP-Dateien bitte mit einem geeigneten PHP- oder Texteditor (z.B. Notepad, PSPad) bevor du die Quelltexte kopierst. Dreamweaver o.ä. machen da etwas Murks.

mr.johnnyb
Beiträge: 8
Registriert: Fr 14. Jan 2005, 13:37
Wohnort: Bassano del Grappa (Italia)
Kontaktdaten:

wassn ding

Beitrag von mr.johnnyb » So 5. Mär 2006, 16:58

Wass'n Ding das wars danke, hatte da mit Dreamweaver nie Probleme. Naja jetzt bearbeite ich meine Dateien immer mit PSpad sehr guter tip im übrigen. Also danke nochmal, aus dem verregneten Italien.

Gesperrt