Habe ich jetzt mal gemacht, damit man auch sieht was hinzugefügt wurde, habe ich diesen code weiter unten noch mal hervorgehoben.
ansonsten ist es das gleiche modul wie ich schon mal gepostet habe. Siehe http://contenido.org/forum/viewtopic.ph ... highlight=.
Habe gemerkt das an der mehrspaltigkeit ja ein reges interesse besteht.

Folgende Funktionen bietet es
- sprachabhängiges Laden des Startartikels
- mehrspaltig einstellbar
- die Tabellenbreite der Spalte fixieren (manchmal notwendig)
- die Abstände zwischen den Spalten definieren (Angabe in Pixel)
- habe auch 2 darstellungsmöglichkeiten in der ausgabe
Sollte es Probleme geben beachtet bitte folgende Hinweise...
- Pfadangaben der Thumbnails!!!!!!!! (Häufiges Problem!)
- Schreibrechte auf den Order Thumbnails
- ich benutze meine eigene Variablenstrucktur, Bilddateien aus denen Thumbnails gebildet werden sollen haben bei mir die Nummer 2111, das muss bei euch nicht sein, muss also angepasst werden!
- die styleshet classen sind natürlich meine, die müsst ihr auch anpassen an eure definierten
Hoffe, das ihr Spass mit der Anpassung habt.
Bye
Tom Quenten
INPUT
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : w3concepts.alist.mod5.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-28-2004
* Modified : 06-28-2004
************************************************/
$selected = "CMS_VALUE[3110]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"><tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[3110]\">";
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[3111]\" value=\"CMS_VALUE[3111]\" size=\"3\" /></td>";
echo "<tr><td>Artiekldarstellung -> 2 = Homepage</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3112]\" value=\"CMS_VALUE[3112]\" size=\"3\" /></td>";
echo "<tr><td>Anzahl angezeigte Zeichen der Subheadline:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3113]\" value=\"CMS_VALUE[3113]\" size=\"5\" /></td>";
echo "<tr><td>Text für Previous-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3114]\" value=\"CMS_VALUE[3114]\" size=\"15\" /></td>";
echo "<tr><td>Text für Next-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3115]\" value=\"CMS_VALUE[3115]\" size=\"15\" /></td>";
echo "<tr><td>Tabellen-Breite:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3116]\" value=\"CMS_VALUE[3116]\" size=\"5\" /></td>";
echo "<tr><td colspan='2'>Feste Tabellenbreite pro Spalte. Damit wird einer eventuellen Verschiebung der Tabellen vorgebeugt.</td></tr>";
echo "<tr><td>Thumbnail-Breite:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3117]\" value=\"CMS_VALUE[3117]\" size=\"5\" /></td>";
echo "<tr><td>Anzahl Artikel nebeneinander:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3118]\" value=\"CMS_VALUE[3118]\" size=\"5\" /></td>";
echo "<tr><td>Spaltenabstand nebeneinander in Pixel:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3119]\" value=\"CMS_VALUE[3119]\" size=\"5\" /></td>";
echo "<tr><td>Anzeige Next/Previous Link: 1=NEIN</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3120]\" value=\"CMS_VALUE[3120]\" size=\"5\" /></td>";
echo "</table>";
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.alist.mod5.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-28-2004
* Modified : 06-28-2004, 18.04.2006 Andre Domaschke
************************************************/
// manuelle konfiguration des moduls
$uploadpfad = "/upload/"; // relativ zum root-verzeichnis (mit slash am anfang und am ende)
$thumbnailpfad = "upload/thumbs/"; //relativ zum root-verzeichnis (mit slash am anfang und am ende)
// konfiguration
$categorie = "CMS_VALUE[3110]";
$angezeigte_anzahl = "CMS_VALUE[3111]";
if ($angezeigte_anzahl == '') $angezeigte_anzahl = 10;
$artikeldarstellung = "CMS_VALUE[3112]";
if ($artikeldarstellung == '') $artikeldarstellung = 1;
$subheadline = "CMS_VALUE[3113]";
if ($subheadline == '') $subheadline = 200;
$navigationslink['previous'] = "CMS_VALUE[3114]";
if ($navigationslink['previous'] == '') $navigationslink['previous'] = '[:: rückwärts ]';
$navigationslink['next'] = "CMS_VALUE[3115]";
if ($navigationslink['next'] == '') $navigationslink['next'] = '[ vorwärts ::]';
$tabellenbreite = "CMS_VALUE[3116]";
if ($tabellenbreite <= '0'){ $tabellenbreite = '100%';}
$bildbreite = "CMS_VALUE[3117]";
$spalten = "CMS_VALUE[3118]";
if ($spalten <= '0'){ $spalten = '1';}
$spaltenabstand = "CMS_VALUE[3119]";
if ($spaltenabstand <= '0'){ $spaltenabstand = '10';}
$limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);
$navigationslink['display'] = "CMS_VALUE[3120]";
if ($navigationslink['display'] <= '0'){ $navigationslink['display'] = '';}
$db = new DB_Contenido;
$db2 = new DB_Contenido;
// liest die anzahl betroffener artikel aus der datenbank
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c,
{$cfg['tab']['cat_lang']} AS h
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 = $categorie
AND d.idcat != $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
AND h.idlang = $lang
AND h.idcat = c.idcat
AND h.startidartlang = e.idartlang
";
// liest die betroffenen Startartikel, abhängig der Sprach ID, aus
$sql_2 = "
SELECT f.name,
e.pagetitle,
c.idcat, d.idart,
e.idartlang,
e.created,
DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c,
{$cfg['tab']['cat_tree']} AS g,
{$cfg['tab']['cat_lang']} AS h
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
LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON f.idcat = d.idcat
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND d.idcat != $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
AND g.idcat = f.idcat
AND h.idlang = $lang
AND h.idcat = c.idcat
AND h.startidartlang = e.idartlang
ORDER BY g.idtree ASC
LIMIT $limit, $angezeigte_anzahl
";
$db->query($sql_1);
$db->next_record();
$anzahl_artikel = $db->f("anzahl");
$artikel = $anzahl_artikel;
$db->query($sql_2);
echo"\n";
echo '<table border="0" cellpadding="0" cellspacing="0" width="100%">';
echo "\n<tr>\n";
$num = 0;
$spalte = 1;
while ($db->next_record()) {
$sql = "
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
LEFT JOIN {$cfg['tab']['art_lang']} AS d ON a.idartlang = d.idartlang
WHERE a.idartlang = ".$db->f("idartlang")."
AND d.online = 1
AND (
b.type = 'CMS_HTML'
OR b.type = 'CMS_IMG'
)
ORDER BY b.type, a.typeid ASC
";
$db2->query($sql);
$db2->next_record();
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")."&idart=".$db->f("idart"));
if($num <= $artikel){
if ($num % $spalten == 0 && $num > 0){
// Neue Zeile beginnen
echo " </tr>\n <tr>\n";
}
if($spalte > 1){
echo ' <td><img src="images/1p.trans.gif" border="0" alt="" width="'.$spaltenabstand.'" height="1"></td>';
echo "\n";
}
echo ' <td valign="top">';
$db2->next_record();
// die subheadline auf die gewünschte länge reduzieren (trennung nur
// nach bzw. vor einem ganzen wort
if (strlen($db2->f("value")) > $subheadline) {
$newsubheadline = '';
$worte = explode (" ",strip_tags(urldecode($db2->f("value"))));
$zulang = false;
foreach ($worte as $wort) {
if (strlen($newsubheadline." ".$wort) >= $subheadline) $zulang = true;
$newsubheadline = (!$zulang)?($newsubheadline." ".$wort):($newsubheadline);
}
$newsubheadline .= " ...";
} else {
$newsubheadline = strip_tags(urldecode($db2->f("value")));
}
$bild_vorhanden = false;
while ($db2->next_record()) {
if ($db2->f("type") == 'CMS_IMG' && $db2->f("typeid") == 2111) {
$bilddateiname = "{$thumbnailpfad}{$bildbreite}_".$db2->f("value").".jpg";
if (!file_exists($cfg['path']['frontend'].$bilddateiname)) {
$src_image_size = getimagesize($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
$bildhoehe = round($src_image_size[1] * $bildbreite / $src_image_size[0]);
if ($bildhoehe > $bildbreite) {
$bildhoehe = $bildbreite;
$bildbreite = round($src_image_size[0] * $bildhoehe / $src_image_size[1]);
}
$dst_im = imagecreatetruecolor($bildbreite,$bildhoehe);
if ($src_image_size[2] == 1) {
$src_im = imagecreatefromGIF($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
} else {
$src_im = imagecreatefromgd($cfg['path']['frontend'].$uploadpfad.$db2->f("dirname").$db2->f("filename"));
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
imagejpeg ($dst_im,$cfg['path']['frontend'].$bilddateiname,100);
}
$bild_vorhanden = true;
}
}
if ($bild_vorhanden) {
$width = "CMS_VALUE[3117]";
$width += 5;
$src_image_size = getimagesize($cfg['path']['frontend'].$bilddateiname);
if($artikeldarstellung == 1){
?>
<!-- AUSGABE ARTIKEL START D1 -->
<table border="0" cellpadding="0" cellspacing="0" width="<? echo $tabellenbreite; ?>">
<tr>
<td colspan="3" valign="top" class="ukat2"> <? echo urldecode($db->f("name")); ?></td>
</tr>
<tr>
<td colspan="3" height="10"></td>
</tr>
<tr>
<td colspan="3">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%" class="tlcc_ukat2_link">
<table border="0" cellpadding="0" cellspacing="0" align="left">
<tr>
<td><a href="<? echo $link; ?>"><img src="<? echo $bilddateiname; ?>" border="0" alt="" {$src_image_size[3]}></a></td>
<td><img src="images/1p.trans.gif" width="6" height="1" alt=""></td>
</tr>
<tr>
<td colspan="2"><img src="images/1p.trans.gif" width="1" height="6" alt=""></td>
</tr>
</table>
<a href="<? echo $link; ?>" class="ukat2_link"><? echo $newsubheadline; ?></a><br>
</td>
</tr>
<tr>
<td colspan="3" height="15"></td>
</tr>
</table>
</td>
</tr>
</table>
<!-- AUSGABE ARTIKEL ENDE D1 -->
<?
} else {
?>
<!-- AUSGABE ARTIKEL START D2 -->
<table border="0" cellpadding="0" cellspacing="0" width="<? echo $tabellenbreite; ?>">
<tr>
<td colspan="3" valign="top" class="ukat2"> <? echo urldecode($db->f("name")); ?></td>
</tr>
<tr>
<td colspan="3" height="10"></td>
</tr>
<tr>
<td colspan="3">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%" class="ukat2_link">
<table border="0" cellpadding="0" cellspacing="0" align="left">
<tr>
<td><a href="<? echo $link; ?>"><img src="<? echo $bilddateiname; ?>" border="0" alt="" {$src_image_size[3]}></a></td>
</tr>
<tr>
<td><img src="images/1p.trans.gif" width="1" height="6" alt=""></td>
</tr>
<tr>
<td><a href="<? echo $link; ?>" class="tlcc_ukat2_link"><? echo $newsubheadline; ?></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="3" height="15"></td>
</tr>
</table>
</td>
</tr>
</table>
<!-- AUSGABE ARTIKEL ENDE D2 -->
<?
}
} else {
?>
<!-- AUSGABE ARTIKEL START -->
<table border="0" cellpadding="0" cellspacing="0" width="<? echo $tabellenbreite; ?>">
<tr>
<td colspan="3" valign="top" class="tlcc_ukat2"><img src="upload/tlcc/grafiken/tools/tlcc.pfeil.rot.gif" border="0" alt=""> <? echo urldecode($db->f("name")); ?></td>
</tr>
<tr>
<td colspan="3" class="tlcc_height_1"></td>
</tr>
<tr>
<td colspan="3">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%" class="tlcc_ukat2_link"><a href="<? echo $link; ?>" class="tlcc_ukat2_link"><? echo $newsubheadline; ?></a><br></td>
</tr>
<tr>
<td colspan="3" class="tlcc_height_1"></td>
</tr>
</table>
</td>
</tr>
</table>
<!-- AUSGABE ARTIKEL ENDE -->
<?
}
echo "</td>\n";
// wenn maximale spaltenbreite erreicht, setze spaltenzähler zurück
if($spalte == $spalten){
$spalte = 0;
}
// erhöhe spaltenzähler um 1
$spalte++;
$num++;
}
}
$spalte = $spalte - 1;
$cp = $spalten - $spalte;
if($cp > 1){
echo '<td colspan="'.$cp.'"></td>';
} else {
echo "<td></td>\n";
}
echo " </tr>\n";
echo "</table>\n";
if($navigationslink['display'] == ''){
if ($limit > 0 || $anzahl_artikel > $limit + $angezeigte_anzahl) {
echo '<table cellpadding="0" cellspacing="0" width="100%"><tr>';
if ($limit > 0) {
$displaylimit = ($limit - $angezeigte_anzahl >= 0)?($limit - $angezeigte_anzahl):(0);
echo "<td style=\"text-align:left\"><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['previous']}</a></td>";
} else {
echo '<td></td>';
}
if ($anzahl_artikel > $limit + $angezeigte_anzahl) {
$displaylimit = $limit + $angezeigte_anzahl;
echo "<td style=\"text-align:right\"><a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$navigationslink['next']}</a></td>";
} else {
echo '<td></td>';
}
echo '</tr></table>';
}
}
?>
Das wurde hinzugefügt ... (nur im OUTPUT)
Code: Alles auswählen
{$cfg['tab']['cat_lang']} AS h
Code: Alles auswählen
AND h.idlang = $lang
AND h.idcat = c.idcat
AND h.startidartlang = e.idartlang