Seite 1 von 1

Titel der übergeordneten Kategorie ausgeben

Verfasst: Do 15. Sep 2011, 12:00
von beachcoder
Hallo Zusammen,

ich habe ein Modul "Titel", welches jeweils den Titel der übergeordneten Kategorie des aktuellen Artikels ausgeben soll, jedoch NICHT wenn die übergeordnete Kategorie die Wurzel eines Kategoriebaumes ist.
Den Contenido-Datenbanktabellen konnte ich nicht entnehmen, wie ich das am besten herausfinde.

Hier mein bisheriges Schaffen (Output):

Code: Alles auswählen

<?php

if (!isset($tpl) || !is_object($tpl))
{
    $tpl = new Template();
}

$db = new DB_Contenido;

//Suche den Vater der aktuellen Kategorie
$sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";
$db->query($sql);
$db->next_record();
$parentid = $db->f("parentid");


// Ist der Vater die Baumwurzel?
/*
if( Was muss ich hier prüfen, damit ich weis, ob dies ein neuer Baum ist? )
	$parentid = $idcat;
*/

//Jetzt den Titel holen...
$sql = "SELECT name FROM " . $cfg["tab"]["cat_lang"] . " WHERE idcat = " . $parentid . " AND idlang = " . $lang;
$db->query($sql);
$db->next_record();
$sText = $db->f("name");

$tpl->reset();
if ($contenido && $edit) 
{
    $tpl->set('s', 'text', $sText);
    $tpl->generate('templates/headline_h1.html');
}
else 
{
    if ($sText != '') 
    {
        $tpl->set('s', 'text', strip_tags($sText));
        $tpl->generate('templates/headline_h1.html');
    }
}

?>
Teile des Codes habe ich aus dem Beitrag http://forum.contenido.org/viewtopic.php?p=24454#p24454. Was könnte ich nun bei

Code: Alles auswählen

if( Was muss ich hier prüfen, damit ich weis, ob dies ein neuer Baum ist? )
	$parentid = $idcat;
einsetzen, damit es klappt? Da ich mehrere Kategoriebäume habe ist es auch nicht sinnvoll, die Kategorie-IDs dort zu prüfen.

Viele Grüße,
beachcoder

Re: Titel der übergeordneten Kategorie ausgeben

Verfasst: Do 15. Sep 2011, 13:08
von idea-tec
Versuch mal das (nicht getestet, aber etwas komprimierter und mit einem DB-Zugriff weniger):

Code: Alles auswählen

    <?php
    if (!isset($tpl) || !is_object($tpl)) { $tpl = new Template(); }
    $db = new DB_Contenido;

    //Den Titel holen...
    $sql = "SELECT a.name FROM " . $cfg["tab"]["cat_lang"] . " a, ".$cfg["tab"]["cat"]." b WHERE b.parentid>0 and a.idcat = b.parentid and b.idcat=".$idcat." AND a.idlang = " . $lang;
    $db->query($sql); $db->next_record();
    if ($db->num_rows()>1) {
        $sText = $db->f("name");
    } else {
        $sText = '';
    }

    $tpl->reset();
    if ($contenido && $edit) {
        $tpl->set('s', 'text', $sText);
        $tpl->generate('templates/headline_h1.html');
    } else {
        if ($sText != '') {
            $tpl->set('s', 'text', strip_tags($sText));
            $tpl->generate('templates/headline_h1.html');
        }
    }
    ?>