Back to top

Autore Topic: Override mod_mainmenu non funziona  (Letto 1056 volte)

Offline bass8tt8

  • Nuovo arrivato
  • *
  • Post: 3
    • Mostra profilo
Override mod_mainmenu non funziona
« il: 28 Mar 2010, 16:41:56 »
Salve a tutti, premessa, voglio creare un menu personalizzato partendo dal modulo mod_mainmenu.

1) Seguendo le numerose guide ho fatto l'override del modulo, copiando la default.php all'interno della cartella: templates\_mioTemplate_\html\mod_mainmenu

2) le modifiche alla default.php funzionano, ovvero ritrovo quello che mi aspetto a parte la seguente porzione di codice:

Codice: [Seleziona]
if ($node->name() == 'ul') {
if ($child->attributes('access') > $user->get('aid', 0)) {
$node->removeChild($child);
}
if ($node->attributes('id') == 'slide'){
$children_count = count($node->children());
$children_index = 0;
foreach ($node->children() as $child) {
if (($children_index == 0 ) || ($children_index == $children_count - 1)){
$child->addAttribute('class', 'top');
$child->addAttribute('style', 'height: 32px; display: block; font-weight: normal; font-size: 2em;');
}
else {
$child->addAttribute('class', 'sub');
$child->addAttribute('style', 'height: 32px; display: block; font-weight: normal; font-size: 2em;');
}
$children_index++;
}
}
}


Quello che mi aspetto è che nei tag <li> ci siano gli attributi che imposto, ma non è cosi.
Facendo un po' di test ho notato che finito il ciclo  foreach i tag <li> hanno effettivamente impostati i miei attributi, ma da qualche parte vengono o eliminati o sovrascritti dal sistema. Vi posto tutta la mia default.php :

Codice: [Seleziona]
// 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') {
if ($child->attributes('access') > $user->get('aid', 0)) {
$node->removeChild($child);
}
if ($node->attributes('id') == 'slide'){
$children_count = count($node->children());
$children_index = 0;
foreach ($node->children() as $child) {
if (($children_index == 0 ) || ($children_index == $children_count - 1)){
$child->addAttribute('class', 'top');
$child->addAttribute('style', 'height: 32px; display: block; font-weight: normal; font-size: 2em;');
}
else {
$child->addAttribute('class', 'sub');
$child->addAttribute('style', 'height: 32px; display: block; font-weight: normal; font-size: 2em;');
}
$children_index++;
}
}
}


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');

 



Web Design Bolzano Kreatif