Also ich habe von einem User, hier aus dem Forum ein ähnliches Modul bekommen. Es funktioniert so, wie es soll. Jedoch bekomme ich es bei mir nicht zum laufen. Der Text wird einfach nicht angezeigt, habe schon einiges probiert, aber leider klappt alles nicht. Desweiteren werden in der Errorlog Fehlermeldungen eingetragen. Kann mir jemand helfen, das ganze zu debuggen?
Hier das Modul.
Code: Alles auswählen
/**
* INPUT
* $Revision: 1.1 $
* $Date: 2005/03/08 15:17:27 $
*/
/**
* Artikelliste
* @author Andreas Kummer
* @copyright Copyright © 2005, mumprecht & kummer w3concepts
*/
class gazetteBerlinInput {
function gazetteBerlinInput($pfad) {
$this->pfad = $pfad;
$this->pathlen = strlen($this->pfad);
}
function getPath($root,$level = 0) {
$content = $this->readDir($root);
foreach ($content as $file) {
if (is_dir($root.$file)) {
$verzeichnis = substr($root,$this->pathlen);
$returnvalue["{$verzeichnis}{$file}/"] = str_repeat(" ",$level * 5).$file;
$returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1));
}
}
return $returnvalue;
}
function readDir($path) {
$handle = opendir($path);
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") $returnvalue[] = $file;
}
closedir($handle);
return $returnvalue;
}
function makeSelect($preselection) {
$pfad = $this->getPath($this->pfad);
foreach ($pfad as $key => $value) {
echo "$key :: $value<br/>\n";
if ($preselection == $key) {
echo "<option value=\"$key\" selected=\"selected\">$value</option>";
} else {
echo "<option value=\"$key\">$value</option>";
}
}
}
}
$pfad = new gazetteBerlinInput($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']);
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"><tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[0]\">";
if($selected!="0" && $selected!=""){
echo"<option value=\"0\">--- kein ---</option>";
} else {
echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
}
$sql = "
SELECT a.idcat, a.level, c.name
FROM {$cfg['tab']['cat_tree']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat_lang']} AS c
WHERE
a.idcat = b.idcat
AND b.idcat = c.idcat
AND c.idlang='$lang'
AND b.idclient='$client'
AND c.visible = 1
ORDER BY a.idtree
";
$db->query($sql);
while ($db->next_record()) {
$spaces = "|";
$levels = $db->f("level");
for ($i = 0; $i < $levels; $i ++) {
$spaces = $spaces . "--";
}
$spaces .= ">";
if ($selected == $db->f("idcat")) {
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
}
}
echo "</select></td></tr>";
echo "<tr><td>Anzahl Artikel je Seite:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" size=\"3\" /></td>";
echo "<tr><td>Startartikel anzeigen?</td>";
$startartikel = "CMS_VALUE[2]";
if ($startartikel != '') {
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\" checked=\"checked\"/></td>";
} else {
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\"/></td>";
}
echo "<tr><td>Anzahl angezeigte Zeichen des HTML-Textes:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"5\" /></td>";
echo "<tr><td>Text für Previous-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"15\" /></td>";
echo "<tr><td>Text für Next-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"15\" /></td>";
echo "<tr><td>Thumbnail-Breite:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\" size=\"5\" /></td>";
echo "<tr><td>Thumbnailpfad:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[7]\" />";
$pfad->makeSelect("CMS_VALUE[7]");
echo "</td>";
echo "<tr><td>Artikel anzeigen bis:</td>";
echo "<td><select name=\"CMS_VAR[8]\">";
$ebene = "CMS_VALUE[8]";
for ($i=0;$i>-3;$i--) {
if ($i == $ebene) {
echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>";
} else {
echo"<option value=\"$i\">Ebene $i</option>";
}
}
echo "</table>";
Code: Alles auswählen
<?php
/**
* Zweispaltige Liste
* Ordert by begin-date and creator
* 06.05.2005
*/
/**
* Artikelliste (output)
* @author Andreas Kummer
* @copyright Copyright © 2005, mumprecht & kummer w3concepts
*/
class referenzDSD {
function referenzDSD() {
// Anfangswerte setzen
if (!$this->setInitValues())
return false;
// Anzahl Artikel ermitteln
$this->anzahlArtikel = $this->getArticleCount();
// Artikel auslesen
$this->artikel = $this->getArticleDetails();
// Artikel ausgeben
echo $this->getList();
// Navigation ausgeben
// echo $this->getNavigation();
}
function setInitValues() {
global $cfgClient, $client;
$this->category = "CMS_VALUE[0]";
$this->articleNumber = "CMS_VALUE[1]";
$this->showStartArticle = "CMS_VALUE[2]";
$this->characterCount = "CMS_VALUE[3]";
$this->link['previous'] = "CMS_VALUE[4]";
$this->link['next'] = "CMS_VALUE[5]";
$this->thumbnailDimension = "CMS_VALUE[6]";
$this->thumbnailPath = "CMS_VALUE[7]";
$this->layer = "CMS_VALUE[8]";
// Werte aus dem Request übernehmen
$this->limit = (isset ($_GET['displaylimit']) && $_GET['displaylimit'] > 0) ? ($_GET['displaylimit']) : (0);
// Bilderpfade
$this->bildzielpfad['frontend'] = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'].$this->thumbnailPath;
$this->bildzielpfad['backend'] = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$this->thumbnailPath;
// Anfangswerte setzen, bei leerer Übergabe
if (empty ($this->category))
return false;
if (empty ($this->articleNumber))
$this->articleNumber = 10;
if (empty ($this->showStartArticle)) {
$this->showStartArticle = 'AND d.is_start = 0';
} else {
$this->showStartArticle = '';
}
if (empty ($this->characterCount))
$this->characterCount = 200;
if (empty ($this->link['previous']))
$this->link['previous'] = '[:: rückwärts ]';
if (empty ($this->link['next']))
$this->link['next'] = '[:: vorwärts ]';
if (empty ($this->thumbnailDimension))
$this->thumbnailDimension = 150;
if (empty ($this->thumbnailPath))
return false;
// Datenbankverbindung aufbauen
$this->db = new DB_Contenido;
$this->db2 = new DB_Contenido;
return true;
}
function getArticleCount() {
global $cfg, $lang;
switch ($this->layer) {
case -2 :
$sql = "" .
"SELECT count(*) AS anzahl " .
"FROM " .
" {$cfg['tab']['cat']} AS a, " .
" {$cfg['tab']['cat']} AS b, " .
" {$cfg['tab']['cat']} AS c " .
"LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat " .
"LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart " .
"WHERE " .
" (" .
" (" .
" c.parentid = b.idcat " .
" AND b.parentid = a.idcat" .
" ) " .
" OR " .
" (" .
" c.idcat = b.idcat " .
" AND b.parentid = a.idcat" .
" ) " .
" OR " .
" (" .
" c.idcat = b.idcat " .
" AND b.idcat = a.idcat" .
" )" .
" ) " .
" AND a.idcat = {$this->category}" .
" AND e.online = 1 " .
" AND e.redirect = 0 " .
" AND e.external_redirect = 0 " .
" AND e.idlang = $lang " .
" {$this->showStartArticle}";
break;
case -1 :
$sql = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = {$this->category}
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
{$this->showStartArticle}
";
break;
case 0 :
$sql = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = {$this->category}
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
{$this->showStartArticle}
";
break;
}
$this->db->query($sql);
if ($this->db->next_record())
return $this->db->f("anzahl");
return false;
}
function getArticleDetails() {
global $cfg, $lang;
switch ($this->layer) {
case -2 :
$sql = "
SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.parentid = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = {$this->category}
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
{$this->showStartArticle}
ORDER BY sortdate DESC
LIMIT {$this->limit}, {$this->articleNumber}
";
break;
case -1 :
$sql = "
SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = {$this->category}
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
{$this->showStartArticle}
ORDER BY sortdate DESC
LIMIT {$this->limit}, {$this->articleNumber}
";
break;
case 0 :
$sql = "
SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = {$this->category}
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
{$this->showStartArticle}
ORDER BY sortdate DESC
LIMIT {$this->limit}, {$this->articleNumber}
";
break;
}
$this->db->query($sql);
$counter = 0;
while ($this->db->next_record()) {
$article[$counter]['headline'] = urldecode($this->db->f('pagetitle'));
$article[$counter]['text'] = $this->shortenText($this->db->f('summary'),$this->characterCount);
$this->db2->query("
SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a
LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
WHERE
a.idartlang = ".$this->db->f("idartlang")."
AND (
b.type = 'CMS_IMG'
)
ORDER BY b.type, a.typeid ASC");
if ($this->db2->next_record()) {
$article[$counter]['image'] = $this->createImage(urldecode($this->db2->f('dirname')),urldecode($this->db2->f('filename')));
$article[$counter]['filename'] = urldecode($this->db2->f('filename'));
$article[$counter]['dirname'] = urldecode($this->db2->f('dirname'));
}
$article[$counter]['idart'] = $this->db->f('idart');
$article[$counter]['idcat'] = $this->db->f('idcat');
$article[$counter]['created'] = $this->db->f('erstellungsdatum');
$counter++;
}
return $article;
}
function createImage($dirname, $filename) {
global $cfgClient, $client;
if (empty($filename)) return '';
$pathinfo = pathinfo($filename);
$basename = basename($filename,$pathinfo['extension']);
if ($pathinfo['extension'] == 'gif') $pathinfo['extension'] = 'png';
$src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
$this->srchoehe = $src_image_size[1];
$this->srcbreite = $src_image_size[0];
if ($src_image_size[0]/$this->thumbnailDimension < $src_image_size[1]/$this->thumbnailDimension) {
$resizeFactor = $src_image_size[1]/$this->thumbnailDimension;
} else {
$resizeFactor = $src_image_size[0]/$this->thumbnailDimension;
}
$this->bildhoehe = round($src_image_size[1]/$resizeFactor);
$this->bildbreite = round($src_image_size[0]/$resizeFactor);
$bilddateiname = "{$this->bildbreite}.{$this->bildhoehe}.$basename{$pathinfo['extension']}";
if (!file_exists("{$this->bildzielpfad['backend']}$bilddateiname")) {
$dst_im = imagecreatetruecolor($this->bildbreite,$this->bildhoehe);
if ($src_image_size[2] == 1) {
$src_im = imagecreatefromGIF($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
} elseif ($src_image_size[2] == 2) {
$src_im = ImageCreateFromJPEG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
} elseif ($src_image_size[2] == 3) {
$src_im = ImageCreateFromPNG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
} else {
$src_im = imagecreatefromgd($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$this->bildbreite,$this->bildhoehe,$src_image_size[0],$src_image_size[1]);
if ($pathinfo['extension'] == 'png') {
imagepng ($dst_im,$this->bildzielpfad['backend'].$bilddateiname);
} else {
imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100);
}
}
return $this->bildzielpfad['frontend'].$bilddateiname;
}
function shortenText($text,$length) {
$text = strip_tags(trim(urldecode($text)));
if (strlen($text) > $length) {
$newtext = '';
$worte = explode (" ",$text);
$zulang = false;
foreach ($worte as $wort) {
if (strlen($newtext." ".$wort) >= $length) $zulang = true;
$newtext = (!$zulang)?($newtext." ".$wort):($newtext);
}
//$newtext .= "...";
} else {
$newtext = $text;
}
return $newtext;
}
function getList() {
global $client, $lang, $sess;
if (empty($this->artikel)) return false;
// Tabelle Anfang
$returnvalue = '<table cellspacing="0" cellpadding="0" width="400">'."\n";
$i = 1;
foreach ($this->artikel as $artikel) {
// Link zusammensetzen
$link = $sess->url("index.php?client=$client&lang=$lang&idcat={$artikel['idcat']}&idart={$artikel['idart']}");
if (($i%2) == 1) { // Artikel linke Spalte -> orange Trennliene Boxanfang
$returnvalue .= '<tr><td><table cellspacing="0" cellpadding="0" width="610">'."\n";
$returnvalue .= '<tr><td><table cellspacing="0" cellpadding="0" width="307"><tr>'."\n";
} else { // Artikel rechts ->keine orange Trennlienie Boxanfang
$returnvalue .= '<td><table cellspacing="0" cellpadding="0" width="306"><tr>'."\n";
}
// Bild links...
if (!empty($artikel['image'])) {
if (($i%4) == 3){
$returnvalue .= '<td valign="top" align="left"><a href="'.$link.'"><img src="'.$artikel['image'].'/></a></td>'."\n";
}
if (($i%4) == 0){
$returnvalue .= '<td valign="top" align="left"><a href="'.$link.'"><img src="'.$artikel['image'].'/></a></td>'."\n";
}
}
if (($i%4) == 3){ //Artikel links, Text rechts -> orange Trennlienie
// Überschrift...
$returnvalue .= '<td vAlign="top" align="left" width="170" ><div style="margin-bottom:1px;margin-left:3px;"><a href="'.$link.'" style="font-size: 11px; font-weight: bold; color: #2108DE;">'.$artikel['headline']."</a></div>";
// Text
$returnvalue .= '<div style="font-size: 8pt; font-family: Arial; margin-left:3px;">'.$artikel.'<a href="'.$link.'"><strong>... mehr</strong></a></div></td>'."\n";
} else { // keine orange Trennlienie
// Überschrift...
$returnvalue .= '<td vAlign="top" align="left" width="170"><div style="margin-bottom:1px;margin-left:3px;"><a href="'.$link.'" style=" font-size: 11px; font-weight: bold; color: #2108DE;">'.$artikel['headline']."</a></div>";
// Text
$returnvalue .= '<div style="font-size: 8pt; font-family: Arial; margin-left:3px;">'.$artikel['text'].'<a href="'.$link.'"><strong>... mehr</strong></a></div></td>'."\n";
}
// Bild rechts...
if (!empty($artikel['image'])) {
if (($i%4) == 2){ // Artikel rechts ->keine orange Trennlienie
$returnvalue .= '<td valign="top" align="right"><a href="'.$link.'"><img src="'.$artikel['image'].'" style="margin-right:3px; border:none;"/></a></td>'."\n";
}
if (($i%4) == 1){ // Artikel linke Spalte -> orange Trennliene
$returnvalue .= '<td valign="top" align="right"><a href="'.$link.'"><img src="'.$artikel['image'].'" style="margin-right:3px; border:none;"/></a></td>'."\n";
}
}
$returnvalue .= "</tr></table></td>\n"; // Boxende
if (($i%2) == 0) { // Ende der Zeile
$returnvalue .= '</tr>'."\n";
$returnvalue .= '</table></td></tr>'."\n";
// $returnvalue .= '<tr><td colspan="2" style="border-bottom: solid 2px orange;"> </td></tr>';
}
$i++;
} // Ende der Schleife: foreach
// Artikelanzahl ungerade... Lueckenfueller: Zeitungen
if (($i%2) == 0) {
$returnvalue .= '<td><table class="cellspacing="0" cellpadding="0" width="305">';
$returnvalue .= '<td valign="top" align="center"></td>';
$returnvalue .= "</table></td>\n";
$returnvalue .= '</tr>';
$returnvalue .= '</table></td></tr>'."\n";
// $returnvalue .= '<tr><td colspan="2" style="border-bottom: solid 2px orange;"> </td></tr>';
}
// Tabelle Ende
$returnvalue .= "</table>\n";
return $returnvalue;
}
function getNavigation() {
global $sess, $client, $lang, $idcat, $idart;
$returnvalue = '';
if ($this->limit > 0 || $this->anzahlArtikel > $this->limit + $this->articleNumber) {
$returnvalue .= '<div><table cellpadding="0" cellspacing="0" style="width:98%"><tr>';
if ($this->limit > 0) {
$displaylimit = ($this->limit - $$this->articleNumber >= 0) ? ($this->limit - $this->articleNumber) : (0);
$returnvalue .= "<td style=\"text-align:left\"><a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['previous']}</a></td>";
} else {
$returnvalue .= '<td> </td>';
}
if ($this->anzahlArtikel > $this->limit + $this->articleNumber) {
$displaylimit = $this->limit + $this->articleNumber;
$returnvalue .= "<td style=\"text-align:right\"><a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['next']}</a></td>";
} else {
$returnvalue .= '<td> </td>';
}
$returnvalue .= '</tr></table></div>';
}
return $returnvalue;
}
}
$referenzDSD = new referenzDSD();
?>