Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-07-2010 19:32:22

EricS
Membre
Date d'inscription: 15-04-2009
Messages: 60

[ZF 1.10][Zend_Navigation] Ajouter une classe[Résolu]

Bonjour,


Dans mon menu, je voudrais ajouter une classe à ma balise a et mettre le label entre <span>

Quelque chose comme ça :

Code:

<li><a href="#" class="btn><span>label</span></a></li>

Merci d'avance.

Dernière modification par EricS (20-07-2010 10:19:49)

Hors ligne

 

#2 20-07-2010 09:17:06

draghysck
Nouveau membre
Date d'inscription: 03-09-2009
Messages: 5

Re: [ZF 1.10][Zend_Navigation] Ajouter une classe[Résolu]

Bonjour,

Si vous voulez personnaliser le rendu de votre menu, vous avez plusieurs solutions :

- élaborer votre vue partielle (menu.phtml) et la passer au view helper de cette façon :

Code:

<ul id='menu' class='menu'>
<?php 
foreach ($this->container as $page) {
    // code pour le rendu ici
}
?>
</ul>

puis dans le layout :

Code:

$partial = array('menu.phtml', 'default');
$this->navigation()->menu()->setPartial($partial);
echo  $this->navigation()->menu()->render();

- ou alors dérivez la classe de base et faire le rendu dans cette classe dérivée. Un exemple ici :

Code:

 
<?php
class Core_View_Helper_MyMenu extends Zend_View_Helper_Navigation_Menu
{
    public function myMenu(Zend_Navigation_Container $container = null)
    {
        return parent::menu($container);
    }

    protected function _renderDeepestMenu(Zend_Navigation_Container $container,
                                          $ulClass,
                                          $indent,
                                          $minDepth,
                                          $maxDepth)
    {
        // code modifie ici
    }

    protected function _renderMenu(Zend_Navigation_Container $container,
                                   $ulClass,
                                   $indent,
                                   $minDepth,
                                   $maxDepth,
                                   $onlyActive)
    {
         // code modifie ici
    }
}

?>

puis ensuite (toujours pour la deuxième solution, il suffit d'appeler cette méthode dans ton layout :

Code:

 echo $this->navigation()->myMenu();

En espérant que cela vous a aidé.

Hors ligne

 

#3 20-07-2010 10:19:24

EricS
Membre
Date d'inscription: 15-04-2009
Messages: 60

Re: [ZF 1.10][Zend_Navigation] Ajouter une classe[Résolu]

Allons y pour la 1ere methode.

Merci beaucoup

Hors ligne

 

#4 20-07-2010 15:53:33

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [ZF 1.10][Zend_Navigation] Ajouter une classe[Résolu]

Pour la première méthode, j'avais essayé mais je m'étais retrouvé fasse à un problème au niveau des privilèges, tu as peut être la solutions, je m'explique :
J'avais par exemple le menu admin qui était défini dans mon fichier de navigation comme n'étant accésible qu'aux admin avec un

Code:

echo $this->navigation()->menu()

il n'y avait aucun soucis le menu admin été affiché seulement si on été log en admin mais avec la solution que tu donne en premier lieu le menu admin s'afficher dans tous les cas, j'ai raté quelque chose?

Merci d'avance et désolé de squatter ton topic :x

Hors ligne

 

#5 20-07-2010 17:18:41

draghysck
Nouveau membre
Date d'inscription: 03-09-2009
Messages: 5

Re: [ZF 1.10][Zend_Navigation] Ajouter une classe[Résolu]

C'est une bonne question, je suppose en lisant le code du composant Zend_View_Helper_Navigation_Menu que tu dois effectuer le contrôle "à la main". En effet si tu passe une vue partielle, l'aide de vue va uniquement faire appel à ton script et lui affecter le container via la méthode "renderPartial".

Si tu regardes  toujours le code Zend_View_Helper_Navigation_Menu, dans "_renderMenu" il fait appel à des méthodes qui vérifie les ACL :

Code:

 if ($depth < $minDepth || !$this->accept($page)) {
                // page is below minDepth or not accepted by acl/visibilty

Moralité :

Le faire à la main ou utiliser la 2eme solution ^^ et reprendre le code de Zend et le modifier (ce qui me parait plus facile).

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages