Hallo Zusammen
Ein Kollege von mir hat einmal auf der Basis von der Funktion "function.navigation.php" die Funktion "function.navitree.php" geschrieben. Meine Frage ist nun, ob man das in die nächste Version mit aufnehmen kann. Die Funktion Navitree, gibt wie der Name schon sagt einen Tree zurück, durch den man sich navigieren kann.
Jetzt habe ich aber noch ein Probleme mit der Version:
Leider wird mir in der Navigation immer nur die ID angezeigt und nicht der hinterlegte HTLM-Name. Ich denke da wird sich mit der letzten Bigace Version eine Änderunge gegeben haben. Ich hoffe es kann mir jemand helfen.
Nachfolgend der Code:
<?php
import('classes.util.SmartyLink');
import('classes.util.LinkHelper');
/*
* Smarty plugin
* -------------------------------------------------------------
* File: function.navigation.php
* Type: function
* Name: navigation
* Purpose: Prints a configurable Navigation
* -------------------------------------------------------------
*/
function smarty_function_navitree($params, &$smarty)
{
$id = (isset($params['id']) ? $params['id'] : $GLOBALS['_BIGACE']['PARSER']->getItemID());
$lang = (isset($params['language']) ? $params['language'] : $GLOBALS['_BIGACE']['PARSER']->getLanguage());
$css = (isset($params['css']) ? ' class="'.$params['css'].'"' : '');
$selected = (isset($params['selected']) ? ' class="'.$params['selected'].'"' : '');
$pre = (isset($params['prefix']) ? $params['prefix'] : '');
$after = (isset($params['suffix']) ? $params['suffix'] : '');
$html = (isset($params['start']) ? $params['start'] : '');
$subpre = (isset($params['subprefix']) ? $params['subprefix'] : '');
$subafter = (isset($params['subsuffix']) ? $params['subsuffix'] : '');
$menu_info = $GLOBALS['MENU_SERVICE']->getLightTreeForLanguage($id, $lang);
if(isset($params['counter']))
$smarty->assign($params['counter'], $menu_info->count());
for ($i=0; $i < $menu_info->count(); $i++)
{
$class = $css;
$temp_menu = $menu_info->next();
if ($temp_menu->getID() == $GLOBALS['MENU']->getID() || $GLOBALS['MENU_SERVICE']->isChildOf($temp_menu->getID(), $GLOBALS['MENU']->getID())) {
$class = $selected;
}
$link = new SmartyLink();
$link->setItemID($temp_menu->getID());
$link->setLanguageID($temp_menu->getLanguageID());
$html .= $pre . "<a href=\"".LinkHelper::getUrlFromCMSLink($link)."\"".$class.">".$temp_menu->getName()."</a>";
$html .= $after."\n";
if ($temp_menu->getID() == $GLOBALS['MENU']->getID() || $GLOBALS['MENU_SERVICE']->isChildOf($temp_menu->getID(), $GLOBALS['MENU']->getID())) {
$menu_info2 = $GLOBALS['MENU_SERVICE']->getLightTreeForLanguage($temp_menu->getID(), $lang);
if ($menu_info2->count()>0) $html .= $subpre."\n";
for ($ii=0; $ii < $menu_info2->count(); $ii++)
{
$class = $css;
$temp_menu2 = $menu_info2->next();
if ($temp_menu2->getID() == $GLOBALS['MENU']->getID() || $GLOBALS['MENU_SERVICE']->isChildOf($temp_menu2->getID(), $GLOBALS['MENU']->getID())) {
$class = $selected;
}
$link = new SmartyLink();
$link->setItemID($temp_menu2->getID());
$link->setLanguageID($temp_menu2->getLanguageID());
$html .= "<li class='level1' style='padding-left: 6px;'><a href=\"".LinkHelper::getUrlFromCMSLink($link)."\"".$class.">".$temp_menu2->getName()."</a>".$after."\n";
$html .= $after."\n";
if ($temp_menu2->getID() == $GLOBALS['MENU']->getID() || $GLOBALS['MENU_SERVICE']->isChildOf($temp_menu2->getID(), $GLOBALS['MENU']->getID())) {
$menu_info3 = $GLOBALS['MENU_SERVICE']->getLightTreeForLanguage($temp_menu2->getID(), $lang);
if ($menu_info3->count()>0) $html .= $subpre."\n";
for ($iii=0; $iii < $menu_info3->count(); $iii++)
{
$class = $css;
$temp_menu3 = $menu_info3->next();
if ($temp_menu3->getID() == $GLOBALS['MENU']->getID() || $GLOBALS['MENU_SERVICE']->isChildOf($temp_menu3->getID(), $GLOBALS['MENU']->getID())) {
$class = $selected;
}
$link = new SmartyLink();
$link->setItemID($temp_menu3->getID());
$link->setLanguageID($temp_menu3->getLanguageID());
$html .= "<li class='level2' style='padding-left:10px;'><a href=\"".LinkHelper::getUrlFromCMSLink($link)."\"".$class.">".$temp_menu3->getName()."</a>".$after."\n";
}
if ($menu_info3->count()>0) $html .= $subafter."\n";
}
}
if ($menu_info2->count()>0) $html .= $subafter."\n";
}
}
return $html . (isset($params['end']) ? $params['end'] : '');
}
?>