git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
83 lines
1.9 KiB
PHP
83 lines
1.9 KiB
PHP
<?php
|
|
|
|
// no direct access
|
|
defined('_JEXEC') or die('Restricted access');
|
|
|
|
|
|
if ( ! defined('modMainMenuXMLCallbackDefined') )
|
|
{
|
|
function modMainMenuXMLCallback(&$node, $args)
|
|
{
|
|
$user = &JFactory::getUser();
|
|
$menu = &JSite::getMenu();
|
|
$active = $menu->getActive();
|
|
$path = isset($active) ? array_reverse($active->tree) : null;
|
|
|
|
if (($args['end']) && ($node->attributes('level') >= $args['end']))
|
|
{
|
|
$children = $node->children();
|
|
foreach ($node->children() as $child)
|
|
{
|
|
if ($child->name() == 'ul') {
|
|
$node->removeChild($child);
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($node->name() == 'ul') {
|
|
foreach ($node->children() as $child)
|
|
{
|
|
if ($child->attributes('access') > $user->get('aid', 0)) {
|
|
$node->removeChild($child);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (($node->name() == 'li') && isset($node->ul)) {
|
|
$node->addAttribute('class', 'parent');
|
|
}
|
|
|
|
if (isset($path) && (in_array($node->attributes('id'), $path) || in_array($node->attributes('rel'), $path)))
|
|
{
|
|
if ($node->attributes('class')) {
|
|
$node->addAttribute('class', $node->attributes('class').' active');
|
|
} else {
|
|
$node->addAttribute('class', 'active');
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (isset($args['children']) && !$args['children'])
|
|
{
|
|
$children = $node->children();
|
|
foreach ($node->children() as $child)
|
|
{
|
|
if ($child->name() == 'ul') {
|
|
$node->removeChild($child);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (($node->name() == 'li') && ($id = $node->attributes('id'))) {
|
|
if ($node->attributes('class')) {
|
|
$node->addAttribute('class', $node->attributes('class').' item'.$id);
|
|
} else {
|
|
$node->addAttribute('class', 'item'.$id);
|
|
}
|
|
}
|
|
|
|
if (isset($path) && $node->attributes('id') == $path[0]) {
|
|
$node->addAttribute('id', 'current');
|
|
} else {
|
|
$node->removeAttribute('id');
|
|
}
|
|
$node->removeAttribute('rel');
|
|
$node->removeAttribute('level');
|
|
$node->removeAttribute('access');
|
|
}
|
|
define('modMainMenuXMLCallbackDefined', true);
|
|
}
|
|
|
|
modMainMenuHelper::render($params, 'modMainMenuXMLCallback');
|