ich verwende folgende Artikelliste:
Input:
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :	    w3concepts.alist.mod1.v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     06-05-2004
* Modified    :     06-05-2004
************************************************/
$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 der Subheadline:</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>Artikel anzeigen bis:</td>";
echo "<td><select name=\"CMS_VAR[6]\">";
$ebene = "CMS_VALUE[6]";
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
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     w3concepts_alist_v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     06-05-2004
* Modified    :     06-05-2004
************************************************/
    // konfiguration
    $categorie = "CMS_VALUE[0]";
    $angezeigte_anzahl = "CMS_VALUE[1]";
    if ($angezeigte_anzahl == '') $angezeigte_anzahl = 10;
    $startartikel = "CMS_VALUE[2]";
    if ($startartikel == '') $startartikel = false;
    $subheadline = "CMS_VALUE[3]";
    if ($subheadline == '') $subheadline = 200;
    $navigationslink['previous'] = "CMS_VALUE[4]";
    if ($navigationslink['previous'] == '') $navigationslink['previous'] = '[ « rückwärts ]';
    $navigationslink['next'] = "CMS_VALUE[5]";
    if ($navigationslink['next'] == '') $navigationslink['next'] = '[ vorwärts » ]';
    $ebene = "CMS_VALUE[6]";
    $limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);
    $db = new DB_Contenido;
    $db2 = new DB_Contenido;
    // wenn startartikel true ist, werden die startartikel dargestellt, sonst nicht
    $nurstartartikel = ($startartikel)?(''):('AND d.is_start = 0');
    // liest die anzahl betroffener artikel aus der datenbank
    switch ($ebene) {
        case -2:
            $sql_1 = "
                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 = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ";
            $sql_2 = "
                SELECT 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
                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 = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl
                ";
            break;
        case -1:
            $sql_1 = "
                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 = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ";
            $sql_2 = "
                SELECT 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
                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 = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl
                    ";
            break;
        case 0:
            $sql_1 = "
                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 = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ";
            $sql_2 = "
                SELECT 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
                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 = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY e.created DESC
                LIMIT $limit, $angezeigte_anzahl
                    ";
            break;
    }
    $db->query($sql_1);
    $db->next_record();
    $anzahl_artikel = $db->f("anzahl");
    $db->query($sql_2);
    echo '<table align="left" cellpadding="0" cellspacing="0" border="0" width="100%">';
     while ($db->next_record()) {
        
        $sql = "
            SELECT a.value, b.title FROM {$cfg['tab']['content']} as a
            LEFT JOIN {$cfg['tab']['art_lang']} as b ON a.idartlang = b.idartlang
            WHERE
            a.idartlang = ".$db->f("idartlang")."
            AND a.idtype <= 2
            ORDER BY 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"));
        echo "<tr><td class=Tabelle-Liste-Zeile-Normal style=\"WIDTH: 10%\" vAlign=middle align=left width=\"10%\">".$db->f("erstellungsdatum")."</td>";
        echo "<td class=Tabelle-Liste-Zeile-Normal style=\"WIDTH: 30%\" vAlign=middle align=left width=\"30%\"><a href=\"$link\">".urldecode($db2->f("title"))."</a></td>";
        $db2->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 
            WHERE 
            a.idartlang = ".$db->f("idartlang")." 
            AND ( 
                b.type = 'CMS_HTML' 
            ) 
            ORDER BY b.type, a.typeid ASC 
            "; 
        $db2->query($sql); 
        $db2->next_record(); 
        
        // den artikel 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 .= "... <a href=\"$link\">mehr</a>";
       } else {
            $newsubheadline = strip_tags(urldecode($db2->f("value")));
        }
        echo "<td class=Tabelle-Liste-Zeile-Normal style=\"WIDTH: 60%\" vAlign=middle align=left width=\"60%\">$newsubheadline</td></tr>";
    }
    echo '</table>';
    if ($limit > 0 || $anzahl_artikel > $limit + $angezeigte_anzahl) {
        echo '<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr>';
        if ($limit > 0) {
            $displaylimit = ($limit - $angezeigte_anzahl >= 0)?($limit - $angezeigte_anzahl):(0);
            echo "<td class=links><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 class=rechts><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>';
    }
?>
Leider habe ich nicht soooo viel Ahnung von der ganzen Materie, dass ich es selbst umsetzen könnte (bin ein newbee
Ich währe euch also sehr dankbar wenn Ihr mir helfen würdet und mir eine Möglichkeit posten könntet!!! Daaankäää!
Nun hab ich noch ne KLEINE Frage:
wie man auf der o.g. Seite auch sehen kann ist jede zweite Tabellenspalte mit einer Hintergrundfarbe versehen.
Wie bekomme ich es hin, dass das artikellistenmodul das generiert, also erste zeile weis, nächste zeile grau, usw.
Vielen lieben Dank im Voraus!!!
Scrabby