Ich hab mal nen kleines (aber wie ich finde ganz nützliches) Modul geschrieben. Es zeigt den momentanen Standpunkt im Kategorienbaum an, also in der Art: Home/Punkt 1/Punkt 1.1 usw.
Dabei sind die Namen der Kategorien wieder Links darauf, um einfach wieder dorthin zurückzukommen!
Weiterhin kann man den Namen der Wurzel selber angeben oder, wie es bei den folgenden Kategorien auch ist, deren Kategorienamen anzeigen lassen.
Zuletzt lassen sich Ebenen angeben, die aus dem "Pfad" ausgeblendet werden sollen! Ich habe auf meiner Seite zum Beispiel eine Struktur:
Home
---Hauptnavigation
------Punkt 1
------Punkt 2
------...
---Servicenavigation
------Impressum
------AGB
------...
Dabei möcht ich z.B. die 2. Ebene ausblenden, da diese ja nur der Seitenorganisation dient und kein eigener Strukturpunkt ist, der auch angezeigt werden soll!
Hier ist der Code:
Output
Code: Alles auswählen
<?php
/****************************************************
** Contenido 4.4.x Modul
** OUTPUT
**
** Name: Locator
** Autor: Timo Goedel
** Version: 1.0
** Erstellt: 19.11.2003
** Modifiziert: 20.11.2003
*****************************************************/
$text = "Sie befinden sich hier: "; //Dies ist der Text, der vor der Pfadausgabe dargestellt wird!
$rootName = "Home"; //Dies ist der Name, der für die Wurzel des Baumes ausgegeben wird.
//Ist $rootName = "", dann wird der Kategoriename ausgegeben!
$filter = array(); //Alle Ebenen (von 1 (=Root) bis x) des Kategorienbaumes, die in
//diesem Array eingetragen sind, werden bei der Ausgabe ausgeblendet!
//z.B. $filter = array(1,3); => Dann wird die Wurzel und die zweite
//Ebene darunter NICHT angezeigt!
$kategorien = array();
$pfad = array();
$db_Connect = new DB_Contenido;
$sql_kategorien = "SELECT a.idcat, a.parentid, b.name
FROM ".$cfg["tab"]["cat"]." a,
".$cfg["tab"]["cat_lang"]." b
WHERE a.idcat = b.idcat AND
b.idlang = ".$lang." AND
a.idclient = ".$client."
ORDER BY a.idcat;";
//Alle Kategorien mit ihrer Elternkategorie und Namen im Array speichern!
$db_Connect->query($sql_kategorien);
while ($db_Connect->next_record())
{
$kategorien[$db_Connect->f('idcat')] = array($db_Connect->f('parentid'), $db_Connect->f('name'));
}
//Pfad suchen (von 0 (=aktuelle Kategorie) bis x (=Root))!
$aktKat = $idcat;
do
{
$pfad[] = $aktKat;
$aktKat = $kategorien[$aktKat][0];
}
while ($aktKat != 0);
//Pfad mit Links ausgeben!
if ($rootName == "")
{
$lastKat = $pfad[count($pfad)-1];
$rootName = $kategorien[$lastKat][1];
}
echo ("<span class=\"Locator\">");
echo ($text);
if (!in_array(1, $filter))
echo ("<a href=\"".$sess->url('front_content.php?idcat='.$pfad[count($pfad)-1])."\"onMouseover=\"status='".$rootName."';return true;\" onMouseout=\"status='';return true;\">".$rootName."</a>");
for ($i = count($pfad)-2; $i >= 0; $i--)
if (!in_array(count($pfad)-$i, $filter))
{
$aktKatID = $pfad[$i];
echo ("/<a href=\"".$sess->url('front_content.php?idcat='.$aktKatID)."\"onMouseover=\"status='".$kategorien[$aktKatID][1]."';return true;\" onMouseout=\"status='';return true;\">".$kategorien[$aktKatID][1]."</a>");
}
echo ("</span>");
?>
Code: Alles auswählen
.Locator { font-family:Verdana, Arial;
font-size:9px;
color:#7B7B7B;}
.Locator a:link { color:#7B7B7B;
text-decoration:underline;}
.Locator a:visited { color:#7B7B7B;
text-decoration:underline;}
.Locator a:hover { color:#0055AA;
text-decoration:underline;}
.Locator a:active { color:#0055AA;
text-decoration:underline;}
.Locator a:focus { color:#0055AA;
text-decoration:underline;}
Viele Grüße,
Black Widow
@die Administratoren:
Ich wollte das Modul auch auf die Contenido-Homepage uploaden, aber unter dem Pulldownmenü für die zu verwendende Contenido-Version ist 4.3b noch letzter Stand! Vielleicht könnt Ihr da gerade mal die 4.4er <option> hinzufügen! DANKE!