Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-02-2013 16:41:53

irumi
Membre
Date d'inscription: 29-04-2011
Messages: 47

Zf2 navigation et attribue data-*

Bonjour bonjour, c'est encore moi ^^.
Voila, j'ai un petit souci avec l'aide de vue Navigation. Pour le moment je n'utilise que le rendu de menu coupler aux ACL mais je me retrouve déjà très limité.

En faite, j'aimerais ajouter des attribues data-* qui vienne de html5 mais apparemment on ne peut pas. (ou alors j'ai raté quelques chose, si c'est le cas je veut bien qu'on me dise comment faire)

Ce que je voudrais faire par exemple :

Code:

'admin' => array(
        array(
            'label'      => 'Accueil',
            'module'     => 'Admin',
            'controller' => 'index',
            'action'     => 'index',
            'class'      => 'nav-header',
            'data-toggle'=> 'collapse',
        ),
    )

// ou alors ça
'admin' => array(
        array(
            'label'      => 'Accueil',
            'module'     => 'Admin',
            'controller' => 'index',
            'action'     => 'index',
            'class'      => 'nav-header',
            'attributes' => array(
                'data-toggle'=> 'collapse',
            ),
        ),
    )

J'ai donc fouillé un peut dans le framework pour voir comment je pourrait ajouté ça et j'ai trouvé que toutes les pages déclarer dans la navigation était 'transformé' en objet Zend\Navigation\Page\AbstractPage

Dans la méthode setOptions, on peut voir que pour chaque 'clé' => 'valeur' d'un page on va appeler  $this->set($key, $value);

Code:

 public function setOptions(array $options)
    {
        foreach ($options as $key => $value) {
            $this->set($key, $value);
        }

        return $this;
    }

Et dans cette fameuse méthode, zf2 appelle la fonction setClé($valeur). Donc  setLabel(), setClass(), ...

Code:

public function set($property, $value)
    {
        if (!is_string($property) || empty($property)) {
            throw new Exception\InvalidArgumentException(
                'Invalid argument: $property must be a non-empty string'
            );
        }

        $method = 'set' . static::normalizePropertyName($property);

        if ($method != 'setOptions' && method_exists($this, $method)
        ) {
            $this->$method($value);
        } else {
            $this->properties[$property] = $value;
        }

        return $this;
    }

Pour ajouter des attribues il faudrait donc surcharger cette classe et ajouter des méthodes setDataToogle et getDataToogle pour faire ce que je souhaite. Mais il faudrait également surcharger les autres classe en rapport avec la navigation car elle dépendent de Zend\Navigation\Page\AbstractPage.

Je ne peut donc pas juste créer Perso\Navigation\Page\AbstractPage. Il faut aussi surcharge les aides de vue en rapport avec l'aide navigation, ainsi que Zend\Navigation\Page\Mvc ...


Je trouve que c'est un peut barbare de surcharger toute la partie de l'aide navigation. Est ce que quelqu'un voie une autre solution?

Hors ligne

 

#2 24-02-2013 16:44:17

Bouks
Membre
Lieu: Paris
Date d'inscription: 31-08-2012
Messages: 241

Re: Zf2 navigation et attribue data-*

Ne pas utiliser Zend Navigation ?


22914720

Hors ligne

 

#3 01-03-2013 11:25:35

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Zf2 navigation et attribue data-*


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#4 12-03-2013 11:36:40

irumi
Membre
Date d'inscription: 29-04-2011
Messages: 47

Re: Zf2 navigation et attribue data-*

finalement je m'en suis sortie en créant mes aide de vue navigation  et menu. Comme ça je peut modifier le rendu html comme je le souhaite.

Hors ligne

 

#5 12-03-2013 11:50:54

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: Zf2 navigation et attribue data-*

Je pense qu'avec ce lien tu pouvais t'en sortir justement:
http://framework.zend.com/manual/2.1/en … -example10


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#6 12-03-2013 14:02:50

irumi
Membre
Date d'inscription: 29-04-2011
Messages: 47

Re: Zf2 navigation et attribue data-*

merci pour le lien, mais je souhaitait tous de même conserver la structure <ul><li> .....
J'ai donc surcharger le rendu de navigation en ajoutant les attribue que je souhaitait en fonction du niveau de liens dans arborescence.

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