Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-10-2010 11:31:00

kami66
Membre
Date d'inscription: 18-10-2010
Messages: 12

router ou navigation avec ZEND

Bonjour,

Je découvre actuellement les possibilités de ZEND MVC, et en particulier, je me pose des questions au sujet de l'utilisation de NAVIGATION ou de ROUTER.
J'ai l'impression que on doit utiliser l'un ou l'autre.
Quelqu'un pourrait-il m'éclairer sur les cas d'utilisation de NAVIGATION et DE ROUTER.
Personnellement, j'utilise zend_navigation pour les breadcrumbs et ça marche nickel.
Par contre je ne sais pas quels sont les cas d'utilisation du ROUTER ZENd.
Merci de vos réponses.

Hors ligne

 

#2 25-10-2010 15:03:28

playmobilette
Membre
Date d'inscription: 05-10-2010
Messages: 50

Re: router ou navigation avec ZEND

Moi j'utilise les routes et la navigation ne je vois pas pourquoi tu dit qu'on doit utiliser soit l'un soit l'autre, est ce que tu peux etre un peu plus précis

Hors ligne

 

#3 26-10-2010 09:06:58

kami66
Membre
Date d'inscription: 18-10-2010
Messages: 12

Re: router ou navigation avec ZEND

Bonjour playmobilette,
J'ai du mal à comprendre le fonctionnement des routes avec navigation. est ce que ça doit se faire ds le bootstrap ou le controller. autrement, aurais tu un exemple concret avec routes et navigation à me proposer ?
J'utilise ZEND 1.10.
Je comprends mieux avec un exemple et malheureusement, tt ce que je trouve est souvent un peu confus ou avec une version plus ancienne de ZEND.
Pour la navigation, je l'utilise principalement pour les breadcrumbs mais ça ne marche pas bien si j'ai des paramètres.
Merci.

Hors ligne

 

#4 26-10-2010 09:47:17

playmobilette
Membre
Date d'inscription: 05-10-2010
Messages: 50

Re: router ou navigation avec ZEND

Pour ma part j'utilise aussi Zend 1.10 et  j'ai créé un Plugin
J'ai donc un fichier navigation.xml avec la définition de mon menu

Code:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <nav>
          <accueil>
            <label>ACCUEIL</label>
            <route>accueil</route>
               <resource>Accueil</resource>

un fichier de route de ce type la

Code:

<?xml version="1.0"?>
<zend-config xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/">
    <production>
<accueil>
                <route>Accueil</route>
                <defaults>
                    <controller>Toto</controller>
                    <action>monaction</action>
                </defaults>
            </accueil>

Et dans ma méthode PostDispatch de mon plug-in

Code:

$router = $front->getRouter();
$route = $router->getCurrentRouteName();
$activeNav = $this->view->navigation()->findByRoute($route);
if ($activeNav != null) {
            $activeNav->active = true;
            $activeNav->visible = true;
            $activeNav->setParams($this->getRequest()->getParams());
}

Bon c'est un peu condensé, dans mon bootstrap je charge seulement mon plugin

Hors ligne

 

#5 28-10-2010 16:20:11

kami66
Membre
Date d'inscription: 18-10-2010
Messages: 12

Re: router ou navigation avec ZEND

Voilà, je teste donc le routage et la navigation avec ZEND.
Voici le code pour la route

Code:

Zend_Controller_Front::getInstance()->getRouter()->addRoute(
'nom_route', // nom de la route
new Zend_Controller_Router_Route(
    ':nom'
    ,array(
        'controller' => 'index',
        'action' => 'test',
        'nom' => null
        )
    )
);

et pour la navigation

Code:

$href = Zend_Navigation_Page_Mvc::factory(array(
'action' => 'test'
,'route' => 'nom_route'
,'controller' => 'index'
,'params' => array('nom' => 'nomdelaroute')
))->getHref();

Le lien

Code:

printf('<p><a href="%s">Route nom_route</a></p>',$href);

Le lien obtenu est:   "xxxx/nomdelaroute" ce qui correspond bien au rewriting que je veux obtenir.
Le problème c'est que si je clique sur le lien, j'ai le message:

An error occurred
Page not found
Exception information:

Message: Invalid controller specified (nomdelaroute)

Ce qui est normal, car le controller est "index" et son action "test" qui serait activé si on avait le lien suivant:

"xxxx/index/action"

Je voudrais donc que "xxxx/nomdelaroute"  pointe en réalité sur "xxxx/index/action".

Comment faire ???

Merci de vos réponses.

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