Kategorie anzeigen

Gesperrt
b-wing
Beiträge: 8
Registriert: Fr 4. Mai 2007, 10:58
Kontaktdaten:

Kategorie anzeigen

Beitrag 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.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag 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...
*** make your own tools (wishlist :: thx)
b-wing
Beiträge: 8
Registriert: Fr 4. Mai 2007, 10:58
Kontaktdaten:

Beitrag 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...
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag 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;

?>
b-wing
Beiträge: 8
Registriert: Fr 4. Mai 2007, 10:58
Kontaktdaten:

Beitrag 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!
Gesperrt