ich sitze hier und überlege mir wie man am einfachsten eine Kategoriebeschreibung realisieren kann. Die Kategorien werden ja in der Navi ausgegeben. Clickt man nun eine Kategorie an möchte ich im oberen Teil der Seite eine Kategoriebeschreibung bzw. eine kurze Zusammenfassung darstellen. Dazu lassen sich die Startartikel wunderbar verwenden. Darunter sollen aber die Kategoriebeschreibungen (also dessen Startartikel) der unmittelbar darunter liegenden Unterkategorien ausgegeben werden. (untereinander oder nebeneinander)
Dazu habe ich schon einen guten Ansatzpunkt gefunden. Das Modul w3concepts.ukatlist von w3concepts.net tut ja schon so ziemlich das was ich machen möchte. Es müsste jedoch abgeändert werden das nur die unmittelbar darunter liegenden Unterkategorien ausgegeben werden und nur die dazugehörigen Startartikel.
Input Code
Code: Alles auswählen
***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : w3concepts.ukatlist.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-08-2004
* Modified : 06-08-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 "</table>";
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.ukatlist.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-09-2004
* Modified : 06-09-2004
************************************************/
// konfiguration
$categorie = "CMS_VALUE[0]";
$db = new DB_Contenido;
$db2 = new DB_Contenido;
// liest die unterkategorien aus der datenbank
$sql = "
SELECT a.idcat, b.name FROM {$cfg['tab']['cat']} AS a
LEFT JOIN {$cfg['tab']['cat_lang']} AS b ON a.idcat = b.idcat
WHERE
b.idlang = $lang
AND a.parentid = $categorie
ORDER BY b.name
";
$db->query($sql);
while ($db->next_record()) {
$categorie = $db->f("idcat");
// liest die anzahl artikel aus der datenbank
$sql2 = "
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
";
$db2->query($sql2);
$db2->next_record();
$unterkategorie[$db->f("name")] = array($db2->f("anzahl"),$sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")));
}
// ausgabe an den schirm
echo "<p>";
foreach ($unterkategorie as $bezeichner => $details) {
echo "<a href=\"{$details[1]}\">{$bezeichner} ({$details[0]})</a><br/>";
}
echo "</p>";
?>
Danke für jegliche Hilfe