Artikelliste w3concepts_alist_v1: Auch dritte Ebene auslesen
Verfasst: So 9. Jan 2005, 14:22
Hallo,
habe fleissig gesucht, aber zu diesem Thema nix gefunden. Vielleicht gibt's aber doch eine schnellere Lösung als dass ich mich als PHP Laie in mühevoller Kleinarbeit an den Code mache.
Das Artikellisten-Modul von w3concepts (Version 1) tut bislang gute Dienste. Unsere Site wird aber größer, und obwohl ich weiss, dass man tunlichst tiefe Kategorienbäume vermeiden sollte, lässt sich das jetzt nicht mehr umgehen. Ich habe neben den Ebenen 0, -1, -2 auch eine Ebene -3 durch die Artikelliste auszulesen. Das Modul aber liest nur bis zur Ebene -2 aus.
Im Inputbereich ist das leicht zu ändern. Was Kopfschmerzen macht ist der Outputbereich, in dem es eine Fallunterscheidung für die verschiedenen Ebenen gibt. Die sind alle recht ähnlich, so dass ich mir prinzipiell zutraue, einen weiteren Fall hinzuzufügen. Nur habe ich den Verdacht, dass - um eine Ebene -3 einzuführen - die Anzahl der definierten Variablen nicht reicht. Ich vermute, für eine Ebene -3 brauche ich (mindestens) eine Variable namens d.parentid, um den folgenden Fall case -2 auf eine case -3 umzuschreiben.
Vielleicht hat jemand das schon gemacht, oder bestätigt mich zumindest in meiner Annahme. Dann setze ich mich nochmal in Ruhe ran.
Guido
habe fleissig gesucht, aber zu diesem Thema nix gefunden. Vielleicht gibt's aber doch eine schnellere Lösung als dass ich mich als PHP Laie in mühevoller Kleinarbeit an den Code mache.
Das Artikellisten-Modul von w3concepts (Version 1) tut bislang gute Dienste. Unsere Site wird aber größer, und obwohl ich weiss, dass man tunlichst tiefe Kategorienbäume vermeiden sollte, lässt sich das jetzt nicht mehr umgehen. Ich habe neben den Ebenen 0, -1, -2 auch eine Ebene -3 durch die Artikelliste auszulesen. Das Modul aber liest nur bis zur Ebene -2 aus.
Im Inputbereich ist das leicht zu ändern. Was Kopfschmerzen macht ist der Outputbereich, in dem es eine Fallunterscheidung für die verschiedenen Ebenen gibt. Die sind alle recht ähnlich, so dass ich mir prinzipiell zutraue, einen weiteren Fall hinzuzufügen. Nur habe ich den Verdacht, dass - um eine Ebene -3 einzuführen - die Anzahl der definierten Variablen nicht reicht. Ich vermute, für eine Ebene -3 brauche ich (mindestens) eine Variable namens d.parentid, um den folgenden Fall case -2 auf eine case -3 umzuschreiben.
Code: Alles auswählen
// 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
AND c.parentid != 6 AND c.idcat != 6
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
AND c.parentid != 6 AND c.idcat != 6
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
AND c.idcat != 6
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
$nurstartartikel
";
Guido