Gästebuch -->1 anstatt Zeilenumbruch

Gesperrt
alpi
Beiträge: 117
Registriert: Fr 9. Jul 2004, 15:56
Kontaktdaten:

Gästebuch -->1 anstatt Zeilenumbruch

Beitrag von alpi »

Hi,

Ich habe ein Problem mit dem GÄstebuch modul.
Nämlich schreibt er irgendwie manchmal 1sen bei Zeilenumbrüchen hin. Ich weiß aber nicht wieso.
Hier ist mein Output:

Code: Alles auswählen

<br><p><B>Einträge mit ICONS haben Links auf E-Mail und URL</B></p>

<?php

/***********************************************
* CONTENIDO MODUL -  OUTPUT
*
* Modulname   :     Guestbook Ausgabe v1.1
* Copyright   :     P.beauvain
* Created     :     14-02-2004
************************************************/
$accessGranted = false;
  $permissions = $auth->auth["perm"];
   $permissions = explode(',', $permissions);
   foreach ($permissions as $perm)
   if ($perm == "sysadmin" || $perm == "admin[".$client."]")
   $accessGranted = true;

switch ($eintrag) {      // das erste mal beim aufruf ist $eintrag undefiniert
  case "";
    $eintrag = "0";      // deswegen wertzuweisung 0
}
$zps = "CMS_VALUE[4]";              // anzeige der einträge pro Seite

$max = ($eintrag + $zps);
$meineseite=$auth->url();
if (!$accessGranted) { $where = " WHERE active=1 AND client=$client"; }
else { $where = " WHERE client=$client"; }
if($accessGranted) {
$sql = "UPDATE ".$cfgTab_guestbook." SET active=".$active." WHERE id='".$gbid."' LIMIT 1";
   $db->query($sql);
}
$a = "view";

// wenn view als aktion übergeben wird bzw. beim erstmaligen Seitenaufruf
if($a == "view")
{
  //Zählen der Datensätze
  $sql = "SELECT count(*) AS total FROM ".$cfgTab_guestbook.$where;
  $db->query($sql);
  $db->next_record();
  $eintraege = $db->f("total");
echo "<br>";
echo "<table>";

  //Unternavigation zusammenbauen
  $gbnav = "";
  $gbnav .= "<table width=520px cellspacing=0 cellpadding=0><tr>";
  if ($max >= $eintraege)      
  $gbnav .= "<td class=textbold><p>  Einträge: ".($eintrag+1)."-".($eintraege)." von ".$eintraege."</p></td>";
  else   
  $gbnav .= "<td class=textbold><p>  Einträge: ".($eintrag+1)."-".($max)." von ".$eintraege."</p></td>";
  $gbnav .= "<td class=textbold align=right><p>";
  $pages = $eintraege / $zps;
  if ($pages > 1) {
    $gbnav .= "gehe zu Seite ";
    for ($ii = 0; $ii < $pages; $ii++) {
     if ($ii != ($eintrag / $zps)) {
       $gbnav .= "<a href=\"$meineseite&a=view&eintrag=";
       $gbnav .= ($ii * $zps);
       $gbnav .= "\">[".($ii+1)."]</a> ";
     }
    }
  }
  $gbnav .= "</p></td>";

  //Ausgabe Navigation
//  echo $gbnav;
 
  // Daten aus der Datenbank abfragen mit der Einschränkung $eintrag (d.h. welche ausgegeben werden sollen) und $zps (anzahl der anzuzeigenden elemente)
  $sql = "SELECT name, email, url, date, location, comments, id, active FROM $cfgTab_guestbook $where order by date desc LIMIT $eintrag,$zps";
  $db->query($sql);

  // Auslesen des Ergebnisse pro Reihe und Generierung der Seite
  while ($db->next_record()) {
    echo "<p><table width=80% border=0 cellpadding=0 cellspacing=0>";
   
    echo "<td class=textbold><span ID=fontCMS_VALUE[1]>".$db->f("name")."</span><br><span ID=fontCMS_VALUE[2]>".$db->f("date")."</span></td>";
    echo "<td align=right valign=top>";
if($accessGranted) {
      if ($db->f("active") == 0) { $imgsrc = $cfgPathContenido.$cfgPathImg."deactivate.gif"; }
      if ($db->f("active") == 1) { $imgsrc = $cfgPathContenido.$cfgPathImg."activ.gif"; }
      echo "<a href=$meineseite&active=".(($db->f("active")*-1)+1)."&gbid=".$db->f("id")."&eintrag=".$eintrag."><img src=$imgsrc border=0></a>";
    }       

if ($db->f("url") != "") { echo "<a href=\"http://".$db->f("url")."\" target=_blank><img src=".$cfgClient[1]["frontendpath"]["img"]."upload/images/CMS_VALUE[5] border=0 hspace=5></a>"; }
if ($db->f("email") != "") { echo "<a href=\"mailto:".$db->f("email")."\"><img src=".$cfgClient[1]["frontendpath"]["img"]."upload/images/CMS_VALUE[6] border=0></a></td>"; }
   
echo "</tr>";
$laenge = strlen (stripslashes($db->f("comments")));
$leer = substr_count ((stripslashes($db->f("comments")))," ");
if (( $laenge > 80)&&($leer < 1)){
$ausgabe = wordwrap( (stripslashes($db->f("comments"))), 50, "<br>", 1);

if (( $laenge > 100)&&($leer < 1)){
$ausgabe = "Netter Versuch !!";
}
}
else {
$ausgabe = wordwrap( (stripslashes($db->f("comments"))), 80,  1);
}
$ausgabe = nl2br ($ausgabe); //####################  <-- hab ich gemacht
echo "<tr><td class=text ID=fontCMS_VALUE[3] colspan=3 valign=top><p>$ausgabe\n</p></td></tr>";

    //Eintrag aktivieren/deaktivieren 
   {
      if ($a == "view") { $imgsrc = $cfgPathContenido.$cfgPathImg."line_top.gif"; }
      echo "<tr><td colspan=2><a href=\"#top\"><img src=$imgsrc border=0></a></td></tr>";
    }
    echo "</table></p><br>";
  }

  //Ausgabe Navigation
  echo $gbnav;
}

echo "</table>";

?> 
Ich muss dazu sagen, dass ich die Funktion nl2br dazugebaut habe.

Angucken könnt ihr euch das unter:
http://tsvtudorf.focserver.de/cms2/fron ... p?idcat=55
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ohne die nl2br ist es okay ?

sieh ebenfalls mal in die tabelle des gästebuchs...
vielleicht werden die 1en schon so in die db geschrieben...

vielleicht ist ja ein fehler im insert statement oder vorher bei der variablen aufbereitung...
*** make your own tools (wishlist :: thx)
alpi
Beiträge: 117
Registriert: Fr 9. Jul 2004, 15:56
Kontaktdaten:

Beitrag von alpi »

nein, in der Datenbank ist es noch richtig.

Wenn ich nl2br auskommentiere, sind immer noch 1sen da drin.
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Hallo Alpi,
kann es sein, dass in diesem Teil die Eins dazukommt?

Code: Alles auswählen

if (( $laenge > 80)&&($leer < 1)){ 
$ausgabe = wordwrap( (stripslashes($db->f("comments"))), 50, "<br>", 1); 
Ich weiß zwar nicht genau, was die Zeile macht, aber auf jeden Fall gibt es eine Möglichkeit eine 1 zu erzeugen
Viel Erfolg
Florian
alpi
Beiträge: 117
Registriert: Fr 9. Jul 2004, 15:56
Kontaktdaten:

Beitrag von alpi »

@Beleuchtfix: Hast Recht. Leigt wirklich dadran.

Habe jetzt das hier gemacht:

Code: Alles auswählen

//$ausgabe = wordwrap( (stripslashes($db->f("comments"))), 80,  1);
$ausgabe = stripslashes($db->f("comments"));
Also den wordwrap Befehl weggemacht. ISt dieser eigentlich unbedingt nötig? weil wenn nicht, lasse ich den jetzt immer so weg.
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Hallo, soweit ich wordwrap verstehe, wird die Zeilengröße begrenzt. Wenn das schon durch eine Tabelle mit fester Breite vorgegeben ist, dürfte es kein Problem sein ohne wordwrap auszukommen. Ist die Spaltenbreite aber noch undefiniert, dann ändert sich sehr viel bei unterschiedlicher Textlänge.

Viel Erfolg
Florian

Wenn es dich tröstet, was genau die Funktion macht, habe ich noch nicht verstanden.
alpi
Beiträge: 117
Registriert: Fr 9. Jul 2004, 15:56
Kontaktdaten:

Beitrag von alpi »

ähhmm.....oben im modul sind ja mehrere Tabellen. Eins hat glaube 528 Picel oder so, ne? welche Tabelle is denn relevant für die Breite? normal isses doch die äußerste, oder?
Und eine hat 80%, würde das dann so reichen, mit den 528Pixel und den 80%?
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Beleuchtfix hat geschrieben: Wenn es dich tröstet, was genau die Funktion macht, habe ich noch nicht verstanden.
http://de.php.net/manual/en/function.wordwrap.php
Gesperrt