Artikelliste mit Artikeln der Kategorie und Unterkategorien
Verfasst: Mi 8. Aug 2007, 13:00
Hallo,
ich habe auf meiner Seite für eine Newsspalte auf einigen Seiten bisher die folgende Artikelliste aus einer älteren Cont.-Version benutzt und so angepasst, dass die Artikel in der Reihenfolge des Startdatums angezeigt werden.
Jetzt hat sich die Notwendigkeit ergeben, dass ich die Artikel in Unterkategorien aufteilen wollte/musste, um sie an anderer Stelle nach Kategorien geordnet darzustellen. Dadurch wird in dieser Artikelliste nichts mehr dargestellt, weil die obere Kategorie praktisch leer ist.
Lässt sich das Modul mit wenigen Handgriffen erweitern, oder gibt es ein Ähnliches, das die Unterkategorien mit einschließt? Ich habe beim Suchen nichts gefunden, was direkt von diesem Modul abgeleitet ist (sprich: mit den vorhandenen HTML-Modultemplates kompatibel scheint). Bisher reicht übrigens eine Unterebene, aber wenn mehr abgedeckt würden, umso besser.
Leider reichen meine Kenntnisse nicht aus, um das selbst zu erstellen, aber irgendwo ist dieses Rad sicher schon erfunden worden, sodass man das einbauen könnte, oder?
Das Problem holt mich beim RSS-Feed-Creator auch nochmal ein, aber "dat krieje mer später".
Vielen Dank im Voraus.
schulzi
ich habe auf meiner Seite für eine Newsspalte auf einigen Seiten bisher die folgende Artikelliste aus einer älteren Cont.-Version benutzt und so angepasst, dass die Artikel in der Reihenfolge des Startdatums angezeigt werden.
Jetzt hat sich die Notwendigkeit ergeben, dass ich die Artikel in Unterkategorien aufteilen wollte/musste, um sie an anderer Stelle nach Kategorien geordnet darzustellen. Dadurch wird in dieser Artikelliste nichts mehr dargestellt, weil die obere Kategorie praktisch leer ist.
Lässt sich das Modul mit wenigen Handgriffen erweitern, oder gibt es ein Ähnliches, das die Unterkategorien mit einschließt? Ich habe beim Suchen nichts gefunden, was direkt von diesem Modul abgeleitet ist (sprich: mit den vorhandenen HTML-Modultemplates kompatibel scheint). Bisher reicht übrigens eine Unterebene, aber wenn mehr abgedeckt würden, umso besser.
Leider reichen meine Kenntnisse nicht aus, um das selbst zu erstellen, aber irgendwo ist dieses Rad sicher schon erfunden worden, sodass man das einbauen könnte, oder?
Das Problem holt mich beim RSS-Feed-Creator auch nochmal ein, aber "dat krieje mer später".
Vielen Dank im Voraus.
schulzi
Code: Alles auswählen
/**
* Artikelliste mit I1,H1,T1
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* INPUT
*
* Author Jan Lengowski
* Copyright four for business AG
*/
// selected category
$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>";
}
// fetch all categorys
$query = "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";
// execute query
$db->query($query);
// loop result and build the options
while ($db->next_record()) {
// indent spacer
$spaces = "|";
// how many levels
$levels = $db->f("level");
for ($i = 0; $i < $levels; $i ++) {
// add 2 spaces for every level
$spaces = $spaces . "--";
} // end for
$spaces .= ">";
if ($selected == $db->f("idcat")) {
// selected category
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
// category
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} // end if
} // end while
echo " </select>";
echo " </td>
</tr>
<tr>
<td>Überschrift</td>
<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\"></td>
</tr>
<tr>
<td>Angezeigte Länge in Zeichen</td>
<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>
</tr>
</table>";
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author : Jan Lengowski
* Copyright : four for business AG
* Created : 15-08-2002
* Modified : 16-08-2002
************************************************/
// second db class instance
$db2 = new DB_Contenido;
// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY ARTLANG.datestart DESC limit 5";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idartlang");
$linkID[] = $db->f("idart");
} // end while
// loop through subarticles
echo '
<ul class="news">
<li class="news" style="font-size:12px; font-weight:bold;">CMS_VALUE[2]</li>
';
if (is_array($articleID)) {
foreach ($articleID as $key => $value) {
// select all CMS variables of the article
$sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
$db->query($sql);
$db->next_record();
$head = $db->f("value");
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
}
// link
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
echo '<li class="news"><a class="newslink" href="'.$link.'">'.urldecode($db->f("value")).'</a></li>';
} // end while
unset($headline);
unset($text);
} // end foreach
} // end if (is_array)
echo '<li class="news" style="border-bottom:1px #C0761B solid"><a class="newslink" href="http://www.schulz-tauberschmidt.de/cms/8.html">weitere News...</a></li></ul><br>';
?>