Seite 1 von 1

Kategorie anzeigen

Verfasst: Di 15. Mai 2007, 09:14
von b-wing
Hallo,

ich habe für mein Problem bereits folgendes Modul gefunden:

Code: Alles auswählen

<?php
$sql = "SELECT
            name,parentid
        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
            B.idcat ='$idcat' AND
            B.parentid != 0";
$db->query($sql);
$db->next_record();
$pid = $db->f('parentid');
if ($pid != 1) {
echo $db->f('name');
} else {
$sql = "SELECT
            C.name,
            B.parentid
        FROM
            ".$cfg["tab"]["cat_tree"]." AS A,
            ".$cfg["tab"]["cat"]." AS B,
            ".$cfg["tab"]["cat_lang"]." AS C,
            ".$cfg["tab"]["cat"]." AS D1,
            ".$cfg["tab"]["cat_lang"]." AS D2
        WHERE
            A.idcat=B.idcat AND
            B.idcat=C.idcat AND
            C.idlang='$lang' AND
            B.idclient='$client' AND
            B.idcat ='$idcat' AND
            B.parentid != 0 AND
            D1.parentid = A.idcat AND
            D2.idcat = D1.idcat AND
            D2.public =1
         LIMIT 1";
$db->query($sql);
if( $db->next_record() )
  echo $db->f('name');
  }
?>
Hiermit lässt sich die aktuelle Kategorie, in der der Artikel liegt anzeigen.

Ich bräuchte aber ein Modul, was mir den Namen der darüberliegenden Kategorie innerhalb der Baumstruktur anzeigt.

Wahlweise ginge auch der Name der Ebene 0 des entsprechenden Navigationbaumes.

Gibt es dafür eine Lösung oder hat jemand eine?
Contenido Version 4.6.1.5.

Ausser das oben angezeigt Modul habe ich durch die Suche noch nichts gefunden. Könnte man auch eine Version der Sitemap oder der Breadcrumb anpassen?

Vielen Dank.

Verfasst: Di 15. Mai 2007, 17:06
von emergence
vielleicht so:

Code: Alles auswählen

<?php
$sql = "SELECT 
            name, idcat 
        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 
            B.parentid = '$idcat'";

$db->query($sql); 
if ($db->next_record()) {
    echo $db->f('name');
}

?>
nicht getestet...

Verfasst: Di 15. Mai 2007, 19:20
von b-wing
danke für die antwort,

bei test wird im frontend gar nichts angezeigt, das errorlog spukt folgendes aus:
[15-May-2007 20:13:09] /de/bungee/
MySQL error 1052: Column 'idcat' in field list is ambiguous
SELECT
name, idcat
FROM
con_cat_tree AS A,
con_cat AS B,
con_cat_lang AS C
WHERE
A.idcat=B.idcat AND
B.idcat=C.idcat AND
C.idlang='1' AND
B.idclient='1' AND
B.parentid = '37'
die angegebene parentid ist hierbei auch die kategorie, in dem der entsprechende artikel liegt, und nicht eine kategorie der struktur darüber (das wäre in meinem fall id 14)...

Schade...

Verfasst: Di 15. Mai 2007, 20:31
von Dodger77
Die Fehlermeldung bekommst du so weg:

Code: Alles auswählen

<?php
$sql = "SELECT
            C.name, B.idcat
        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
            B.parentid = '$idcat'";

$db->query($sql);
if ($db->next_record()) {
    echo $db->f('name');
}

?>
Aber soweit ich das sehe, gibt das den Namen einer Kategorie aus, die ein Kindelement der aktuellen Kategorie ist. Probier doch mal folgendes:

Code: Alles auswählen

<?php

cInclude("classes", "class.category.php");
cInclude("classes", "class.cat.php");

$oActualCategory = new CategoryItem($idcat);
$iParentID = $oActualCategory->get("parentid");

$oParentCategory = new Cat;
$sParentName = $oParentCategory->getCatName($iParentID, $lang);

echo $sParentName;

?>

Verfasst: Di 15. Mai 2007, 20:48
von b-wing
hi,

vielen dank dodger77. deine variante funktioniert.
somit wird immer der name der darüberliegenden kategorie angezeigt.

danke für die schnelle hilfe!

p.s: geht das auch, wenn man den namen der kategorie zwei ebenen darüber haben will? grad nicht urgent, aber kann ja mal auftreten...

vielen dank für den tollen support aller mitglieder!