Die dynamische Navigation laesst sich in ConPresso4 ueber ein einziges Wunderwerk an rekursiver Funktion ausgeben . Ich selber verstehe die Funktion nicht mehr, sie muss also technisch ein Meisterwerk sein .
Alles was ich jetzt schreibe ist zur Geisterstunde aus meinem Kopf gefallen und wurde nicht getestet. Sollte bei den Beispielen ein Problem auftauchen, haben die Geister mir einen Streich gespielt .
Diese Funktion befindet sich in der Datei _include/printnavigation.inc.php, die Ihr z.B. am Anfang im globalen Header einbinden muesst - in den folgenden Versionen von ConPresso wird das vermutlich automatisch passieren:
Code: Alles auswählen
include_once(CPO_BASEDIR.'_include/printnavigation.inc.php');
Code: Alles auswählen
array getActiveElements(array $navi, int $activeRubric)
Parameter:
$navi
Hier kann man das Navigationsarray übergeben, das man mit getNavigation() bekommen kann. Wird der Defaultwert '' uebergeben, lädt sich diese Funktion diese Daten alleine.
$activeRubric
Die aktuell aktive Rubrik. Wird der Defaultwert 0 übergeben, so wird automatisch die aktive Rubrik genommen ($GLOBALS['cpoRubric']['id']
Hiermit kann man z.B. ein Breadcrumb-Menue ausgeben:
Code: Alles auswählen
$aE = getActiveElements();
foreach ($aE as $k=>$v) {
if ($k=='X') continue; // dieses Element ist "Ebene 0", die es natuerlich nicht gibt.
echo "Ebene $k: Rubrik: $v >> ";
}
Code: Alles auswählen
boolean printNavigation(array $navi, int $activeRubric, int $levels, int $parent, boolean $activeOnly)
Parameter:
$navi
Hier kann man das Navigationsarray übergeben, das man mit getNavigation() bekommen kann. Wird der Defaultwert '' uebergeben, lädt sich diese Funktion diese Daten alleine.
$activeRubric
Die aktuell aktive Rubrik. Wird der Defaultwert 0 übergeben, so wird automatisch die aktive Rubrik genommen ($GLOBALS['cpoRubric']['id']
$levels
Wie viele Ebenen sollen angezeigt werden. Der Standardwert ist 99 - wer mehr Ebenen hat, hat ein Problem mit seiner Navigation
$parent
Welches ist das Elternelement der auszugebenden Navigation? Der Defaultwert von "0" faengt in der Wurzel der Navigation an. Wird hier z.B. eine andere Navigations-Id angegeben, gibt ConPresso den Inhalt erst ab diesem Punkt aus. Das kann man z.B. nutzen, wenn man ganz oben zwei Ebenen "Deutsch" und "Englisch" hat und je nach Sprache eine andere Navigation ausgeben moechte.
$activeOnly
Wird dieser Wert auf "true" gesetzt, werden nur die aktuell "aufgeklappten" Ebenen ausgegeben. wenn andere Ebenen auch Unterpunte haben, werden diese nicht angezeigt. Der Standardwert hier ist "false".
$target
Dieser Wert erlaubt es, die Ziele der Navigationslinks in einen anderen Frame zu verlinken.
Beispiele:
Ausgabe der kompletten Navigationsstruktur:
Code: Alles auswählen
printNavigation();
Code: Alles auswählen
printNavigation('', 0, 1, 0, false);
Code: Alles auswählen
printNavigation('', 0, 99, 0, true);
Hierzu werden natuerlich spaeter noch einige Beispiele folgen. Aber fuers erste hoffe ich Euch reicht dieses kleine Sammelsurium als Start fuer die Ausgabe eigener Navigationen.
Balu