Hallo,
es gibt so etwas, z.B. in den Modulen "Artikelliste", "Artikelblaettern", allerdings ohne Bild.
Angenommen, Du hättest in die Artikel i.d.R. mindestens ein Bild über
CMS_IMG eingebunden (wenn in der Übersicht ein Bild erscheinen soll, das nicht im Artikel enthalten ist, wird es schwieriger).
Dann könnte beim Modul "Artikelblaettern" folgender Output funktionieren (bei anderen Modulen würde die Anpassung i.d.R. anders aussehen müssen):
Code: Alles auswählen
<?php
$db2 = new DB_Contenido; // neu eingefügt !!
$anzahl = "CMS_VALUE[8]";
if($anzahl<1) {$anzahl=10;}
$laenge = "CMS_VALUE[9]";
if($laenge<1) {$laenge=100;}
$sql = "SELECT ARTLANG.idart, ARTLANG.title, CATART.idcat, ARTLANG.created, CONTENT.value, CONTENT.idtype, CONTENT.typeid
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang=CONTENT.idartlang AND CONTENT.idtype<=2 AND CONTENT.typeid<=2 AND CAT.idcat='$idcat' AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND CATART.is_start='0'
ORDER BY ARTLANG.artsort ASC,ARTLANG.created DESC";
$db->query($sql);
if ($db->num_rows() != 0)
{
echo "<h1><br>CMS_HTMLHEAD[6]</h1>
<table border=0 cellspacing=0 cellpadding=0 id=\"font\">";
$artikel = array(array());
$j=0;
$db->next_record();
$idart_last=$db->f("idart");
for ($i=0; $i<$db->num_rows(); $i++)
{
$artikel[$j][0] = $db->f("idart");
$artikel[$j][1] = $db->f("idcat");
$artikel[$j][2] = substr($db->f("created"),8,2).".".substr($db->f("created"),5,2).".";
while ( $idart_last==$db->f("idart") )
{
if ( $db->f("idtype") == 2 && $db->f("typeid") == 1 )
{
$html_text = strip_tags(urldecode($db->f("value")));
$array = array ("ä" => "ä", "ö" => "ö", "ü" => "ü", "ß" => "ß", "Ä" => "Ä", "Ö" => "Ö", "Ü" => "ü", " " => " ", """ => "\"", "<" => "<", ">" => ">", "&" => "&");
$html_text = strtr($html_text, $array);
$artikel[$j][5] = htmlentities(substr($html_text,0,$laenge))."...";
} elseif ( $db->f("idtype") == 1 && $db->f("typeid") == 1 )
{
$artikel[$j][3] = strip_tags(urldecode($db->f("value")));
} elseif ( $db->f("idtype") == 1 && $db->f("typeid") == 2 )
{
$artikel[$j][4] = strip_tags(urldecode($db->f("value")));
} elseif ($db->f("idtype")==4 && $db->f("typeid")==1 && $db->f("value")>0) // neu eingefügt, um Bilder anzeigen zu können
{
$upl = $db->f("value");
$sql2 = "SELECT UPL.filename, UPL.dirname
FROM ".$cfg["tab"]["upl"]." AS UPL
WHERE UPL.idupl = '".$upl."' ";
$db2->query($sql2);
if ($db2->num_rows() > 0)
{
$db2->next_record();
$artikel[$j][5] = "upload/".$db2->f("dirname").$db2->f("filename")."";
}
}
$idart_last=$db->f("idart");
$db->next_record();
$i++;
}
$idart_last=$db->f("idart");
$j++;
$i--;
}
if($blatt=="") {$blatt=0;}
$blattmax=ceil($j/$anzahl)-1;
$blatt1 = $blatt+1;
$blattmax1 = $blattmax+1;
if ($j>$anzahl)
{
echo " <tr>
<td colspan=3 align=\"right\">Seite ".$blatt1." von ".$blattmax1." – <b>";
for ($i=0; $i<=$blattmax; $i++)
{
$k = $i+1;
if($i==$blatt) {
echo " ".$k." ";
} else {
$navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
echo ' <a href="'.$sess->url("$navmod_link").'" id="font">'.$k.'</a> ';
}
}
echo "</b><br> </td>
</tr>";
}
for ($i=$anzahl*$blatt; $i < min($j,$anzahl*$blatt+$anzahl); $i++)
{
$k = $i-1;
$navmod_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$i][1]."&idart=".$artikel[$i][0]."";
echo '<tr>';
if ( $i>0 && $artikel[$i][2] == $artikel[$k][2] )
{
echo '<td> </td>';
} else
{
echo '<td valign="top"><p><b>'.$artikel[$i][2].'</b></p></td>';
}
echo '<td><img border="0" src="images/2.gif" width="7" height="1"></td>
<td><p><b><a href="'.$sess->url("$navmod_link").'" id="font">'.$artikel[$i][3].'</a> '.$artikel[$i][4].'</b> '.$artikel[$i][5].' <a href="'.$sess->url("$navmod_link").'" id="font">mehr</a></p></td>
</tr>';
// die folgende Sequenz ist zum Einfügen des Bildes; muß nach Geschmack in die Tabellenzeile eingebaut werden
if ($artikel[$i][5] != "")
{
$info = getimagesize($artikel[$i][5]);
if ($info[0]>120) { // 120 ist die fest vorgegebene Bildbreite; ggf. nach Wunsch anpassen oder ganz weglassen
$width=120;
$height=$info[1]*120/$info[0];
} else {
$width=$info[0];
$height=$info[1];
}
echo '<img src="'.$artikel[$i][5].'" border="0" width="'.$width.'" height="'.$height.'" alt="">';
}
// Ende Bilddarstellung
}
if ($j>$anzahl)
{
echo " <tr>
<td colspan=3 align=\"right\"><br>Seite ".$blatt1." von ".$blattmax1." – <b>";
for ($i=0; $i<=$blattmax; $i++)
{
$k = $i+1;
if($i==$blatt) {
echo " ".$k." ";
} else {
$navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
echo ' <a href="'.$sess->url("$navmod_link").'" id="font">'.$k.'</a> ';
}
}
echo "</b></td>
</tr>";
}
echo '</table>';
}
?>
Ist (in der Form) ungetestet und birgt das Problem, daß u.U. recht große Bilder für die Vorschaugrafiken geladen werden. Ggf. müßte man auf Techniken zugreifen, wie sie im Zusammenhang mit dem "Bildergalerie"-Modul auch hier im Forum diskutiert wurden (damit habe ich mich allerdings noch nicht beschäftigt).
Gruß
Andreas