Joomla menu principal de la sortie html
Je suis en train de modifier la sortie de joomla main_menu module donc je peux faire un custom menu déroulant. Au moment où il actuellement des sorties html comme ceci:
<ul class="menu">
<li class="active item1" id="current"><a href="#"><span>First Level Item </span</a></li>
<li class="parent item63"><a href="#"><span>First Level Item Parent</span></a>
<ul>
<li class="item60"><a href="#"><span>Second Level Item</span></a></li>
<li class="item69"><a href="#"><span>Second Level Item</span></a></li>
</ul>
</li>
<li class="item64"><a href="#"><span>First Level Item</span></a></li>
<li class="item66"><a href="#"><span>First Level Item</span></a></li>
Ce que je voudrais faire est de retirer les balises span pour la sortie.
Ce que je sais, c'est que si je veux modifier la sortie; dans mon dossier de modèle je fais un répertoire appelé 'html' et puis à l'intérieur d'un nouveau répertoire appelé "mod___mainmenu" et une copie de la default.php fichier à partir de l'existant mod_mainmenu dossier dans le répertoire des modules. Tous les changements que je fais pour prendre le fichier de changer la sortie.
Le problème que je rencontre est que je ne peux pas comprendre ce qui se passe avec le code qui est écrit dans le default.php fichier utilisation du XML système que je suis unfamilar avec et il n'y a pas de commentaires.
Si quelqu'un a des idées, ce serait super utile!
Voici le code à partir de la default.php fichier pour le menu:
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))
{
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('level');
$node->removeAttribute('access');
}
define('modMainMenuXMLCallbackDefined', true);
}
modMainMenuHelper::render($params, 'modMainMenuXMLCallback');
mais je pense que vous aurez de meilleures réponses sur le forum joomla!
Cette page peut vous aider: fatica.net/blog/...
OriginalL'auteur Paul Sheldrake | 2008-12-29
Vous devez vous connecter pour publier un commentaire.
Vous devriez éviter d'édition de fichiers de base de chaque fois que possible pour éviter d'avoir vos modifications écrasé lorsque vous mettez à niveau. Utiliser un modèle de remplacer les fichiers.
Quand je suis tombé sur ce, je voulais ajouter et vide em balise pour chaque élément de menu pour permettre Doreur/Levin image de remplacement. Dans mon html remplacer ({templatedir}\html\mod_mainmenu\default.php) j'ai entouré l'appel à modMainMenuHelper::render (la dernière ligne, en gros) avec un tampon de sortie, et a utilisé un simple str_replace pour ajouter la balise em:
Puisque vous voulez juste pour se débarrasser de la balise span, vous pouvez faire:
OriginalL'auteur Jerph
Il s'avère que la durée de balises sont insérées dans un tout autre fichier.
Si vous allez dans modules/mod_mainmenu répertoire, il existe un helper.php fichier qui contrôle également une partie de la sortie.
Sur les lignes 285 et 293 il y a quelques balises span dans le code. La suppression de ces faits, le travail de sortie de la voie que je voulais que ça.
OriginalL'auteur Paul Sheldrake