Artikelliste 2x5 - mit Bild, Überschrift, zum blättern
Artikelliste 2x5 - mit Bild, Überschrift, zum blättern
Hallo,
ich suche im grunde genommen, eine stink normale Artikelliste. Diese sollte eine Bildfunktion enhalten, eine Überschrift, eventuell ein Knopf "mehr...". Wichtig ist das die Artikelliste zu blätern ist. Und am alle wichtigsten das die Artikel neben einander dargestellt werden. Sprich der erste oben link, der zweite oben rechts, der dritte unter dem ersten, der vierte unter dem zweiten usw.
Ins gesamt sollten so 8-10 Artikel dargestellt werden.
Hat jemand von euch schon soetwas entwickelt? Bzw. ist soetwas überhaupt möglich?
ich suche im grunde genommen, eine stink normale Artikelliste. Diese sollte eine Bildfunktion enhalten, eine Überschrift, eventuell ein Knopf "mehr...". Wichtig ist das die Artikelliste zu blätern ist. Und am alle wichtigsten das die Artikel neben einander dargestellt werden. Sprich der erste oben link, der zweite oben rechts, der dritte unter dem ersten, der vierte unter dem zweiten usw.
Ins gesamt sollten so 8-10 Artikel dargestellt werden.
Hat jemand von euch schon soetwas entwickelt? Bzw. ist soetwas überhaupt möglich?
schau mal da:
http://www.gazette-berlin.de/
die erste seite wurde mit einer artikelliste erstellt.
gruss,
andreas
ps: du findest alles hier im forum...
http://www.gazette-berlin.de/
die erste seite wurde mit einer artikelliste erstellt.
gruss,
andreas
ps: du findest alles hier im forum...
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
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.
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();
?>
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
ach ja sorry, z.b. das
Code: Alles auswählen
[03-Jun-2005 15:04:57] PHP Warning: Invalid argument supplied for foreach() in E:\__www\dss\contenido\includes\include.tplcfg_edit_form.php(399) : eval()'d code on line 22
Hallo cummunity,
ich nutze (vielmehr will es nutzen) das selbe Modul... bei mir gibt das allerdings 'ne riesen Latte von Warnings raus und die Artikel / Bilder sind auch nciht zu sehen
Hier die Warnings:
Achso ich nutze Contenido 4.4.5
Gruß
Jörg
ich nutze (vielmehr will es nutzen) das selbe Modul... bei mir gibt das allerdings 'ne riesen Latte von Warnings raus und die Artikel / Bilder sind auch nciht zu sehen

Hier die Warnings:
Kann mir jemand helfen... es scheint nur ne kleinigkeit zu sein - jedoch finde ich mich in dem QuellCode nicht zurecht...[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 369
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 372
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 373
[13-Jun-2005 10:36:59] PHP Warning: imagecreatetruecolor(): Invalid image dimensions in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 379
[13-Jun-2005 10:36:59] PHP Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 391
[13-Jun-2005 10:36:59] PHP Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 396
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 369
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 372
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 373
[13-Jun-2005 10:36:59] PHP Warning: imagecreatetruecolor(): Invalid image dimensions in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 379
[13-Jun-2005 10:36:59] PHP Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 391
[13-Jun-2005 10:36:59] PHP Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 396
Achso ich nutze Contenido 4.4.5
Gruß
Jörg
Jörg Zimmermann
Köln Rondorf
Köln Rondorf
leider besteht das problem immer noch. kann vielleicht ein php prof dem dilema auf die spur kommen?
desweiteren habe ich versucht das modul als xhtml auszugeben. leider wird ab dem vierten artikel, auf der rechten seite nicht mehr skaliert. sprich die boxen auf der rechten seite stapeln sich übereinander. natürlich wird das ganze einfach nicht mehr lesbar. kann mir bitte jemand dabei helfen?
desweiteren habe ich versucht das modul als xhtml auszugeben. leider wird ab dem vierten artikel, auf der rechten seite nicht mehr skaliert. sprich die boxen auf der rechten seite stapeln sich übereinander. natürlich wird das ganze einfach nicht mehr lesbar. kann mir bitte jemand dabei helfen?
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 = '<div id="strContainer">'."";
$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 .= '<div id="strlinks">'."";
} else { // Artikel rechts ->keine orange Trennlienie Boxanfang
$returnvalue .= '<div id="strrechts">'."";
}
//Artikel links, Text rechts -> orange Trennlienie
if (($i%4) == 3){
// Überschrift...
$returnvalue .= '<strong><a href="'.$link.'"><img src="images/layout/pfeil.gif"/> '.$artikel['headline']."</a></strong><br/>";
// Text
$returnvalue .= $artikel['text'].'<a href="'.$link.'"><strong>... weitere Informationen</strong></a><br/><br/>';
} else { // keine orange Trennlienie
// Überschrift...
$returnvalue .= '<strong><a href="'.$link.'"><img src="images/layout/pfeil.gif"/> '.$artikel['headline'].'</a></strong><br/>';
// Text
$returnvalue .= $artikel['text'].'<a href="'.$link.'"><strong>... weitere Informationen</strong></a><br/><br/>';
}
// Bild links...
if (!empty($artikel['image'])) {
if (($i%4) == 3){
$returnvalue .= '<center><a href="'.$link.'"><img class="strBild" src="'.$artikel['image'].'"/></a></center>'."";
}
if (($i%4) == 0){
$returnvalue .= '<center><a href="'.$link.'"><img class="strBild" src="'.$artikel['image'].'"/></a></center>'."";
}
}
// Bild rechts...
if (!empty($artikel['image'])) {
if (($i%4) == 2){ // Artikel rechts ->keine orange Trennlienie
$returnvalue .= '<center><a href="'.$link.'"><img src="'.$artikel['image'].'"/></a></center>'."";
}
if (($i%4) == 1){ // Artikel linke Spalte -> orange Trennliene
$returnvalue .= '<center><a href="'.$link.'"><img src="'.$artikel['image'].'"/></a></center>'."";
}
}
$returnvalue .= "</div>"; // Ende für eine Darstellung des Artikels
if (($i%2) == 0) { // Ende der Zeile
$returnvalue .= "<br/>";
}
$i++;
} // Ende der Schleife: foreach
// Artikelanzahl ungerade... Lueckenfueller: Zeitungen
if (($i%2) == 0) {
$returnvalue .= '';
}
// Tabelle Ende
$returnvalue .= "</div>";
return $returnvalue;
}
function getNavigation() {
global $sess, $client, $lang, $idcat, $idart;
$returnvalue = '';
if ($this->limit > 0 || $this->anzahlArtikel > $this->limit + $this->articleNumber) {
$returnvalue .= ' ';
if ($this->limit > 0) {
$displaylimit = ($this->limit - $$this->articleNumber >= 0) ? ($this->limit - $this->articleNumber) : (0);
$returnvalue .= "<div><a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['previous']}</a>";
} else {
$returnvalue .= ' ';
}
if ($this->anzahlArtikel > $this->limit + $this->articleNumber) {
$displaylimit = $this->limit + $this->articleNumber;
$returnvalue .= "<a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['next']}</a>";
} else {
$returnvalue .= ' ';
}
$returnvalue .= '';
}
return $returnvalue;
}
}
$referenzDSD = new referenzDSD();
?>
Code: Alles auswählen
#strContainer {margin: 0; text-align: left; height: auto; text-align: justify;}
#strlinks {position: relative; border: 1px solid blue; padding: 8px; margin-left: 0px; top: 0px; width: 480px; height: 390px; }
#strrechts {position: absolute; border: 1px solid blue; padding: 8px; margin-left: 313px; top: 30px; width: 480px; height: 390px; }