Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-09-2011 09:38:15

MichaelB
Membre
Date d'inscription: 27-06-2010
Messages: 21

Mauvaises actions dans les routes traduites (:@controller)

Bonjour,

Voici mon problème, je suis en train de développer un site/cms qui construit la navigation (menu, ...) automatiquement depuis la base de données. J'ai également un fichier .ini contenant toutes les routes possibles. J'utilise la traduction de controller également. Le menu se construit correctement en français et en allemand avec les bonnes url.


EX: partie du fichier routes.ini
.....

; Contact - /fr/contact or /de/kontakt
routes.contact_index.route = ":lang/:@controller"
routes.contact_index.defaults.module = default
routes.contact_index.defaults.controller = contact
routes.contact_index.defaults.action = index
routes.contact_index.reqs.lang = "^(fr|de)$"

; FAQ - /fr/questions or /de/fragen
routes.faq_index.route = ":lang/:@controller"
routes.faq_index.defaults.module = default
routes.faq_index.defaults.controller = faq
routes.faq_index.defaults.action = index
routes.faq_index.reqs.lang = "^(fr|de)$"

; Product index - /fr/produits /de/produkte
routes.product_index.route = ":lang/:@controller"
routes.product_index.defaults.module = default
routes.product_index.defaults.controller = product
routes.product_index.defaults.action = supplierlist
routes.product_index.reqs.lang = "^(fr|de)$"

; Home
routes.home.route = ":lang"
routes.home.defaults.module = default
routes.home.defaults.controller = index
routes.home.defaults.action = index
routes.home.defaults.lang = fr
routes.home.reqs.lang = "^(fr|de)$"
...


Quand j'accède à l'url "/fr/produits" ou "/de/produkte" tout fonctionne correctement!! La page s'affiche en français ou en allemand avec le bon controller, action et locale. (contoller => product, action => supplierlist)

Si maintenant j'accède à "/fr/questions" ou en allemand, j'obtiens l'erreur ci-dessous (supplierlist pas trouvé.. mais c'est normal car cette action appartient à un autre controller, pourquoi prend il pas l'action index??).

Si j'inverse les routes, ca fonctionne maintenant avec "/fr/questions" mais plus avec "/fr/produits" (l'action index du controller product n'est pas utilisée, j'utilise l'action supplierlist)

Pour toutes les routes en dessus de ma routes "product_index", l'action ne change pas et reste sur "supplierlist" alors que le controller lui change... !?



**************************************
An error occurred
Page not found
Exception information:

Message: Action "supplierlist" does not exist and was not trapped in __call()
Stack trace:

#0 /var/www/cms.1234.local/bin/1234cms/library/Zend/Controller/Action.php(518): Zend_Controller_Action->__call('supplierlistAct...', Array)
#1 /var/www/cms.1234.local/bin/1234cms/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('supplierlistAct...')
#2 /var/www/cms.1234.local/bin/1234cms/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#3 /var/www/cms.1234.local/bin/1234cms/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#4 /var/www/cms.1234.local/bin/1234cms/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#5 /var/www/cms.1234.local/bin/1234cms/public/index.php(26): Zend_Application->run()
#6 {main} 

Request Parameters:

array (
  'lang' => 'fr',
  'controller' => 'faq',
  'module' => 'default',
  'action' => 'supplierlist',    <--- FAUX, DOIT ÊTRE "INDEX"
)
**************************************


Je construit la navigation comme ceci, il me semble que c'est correct:

...
$page = new Zend_Navigation_Page_Mvc(array(
        'id'    => $vo->getSiteNavigationId(),
        'label'    => $vo->getLabel(), 
        'title'    => $vo->getTitle(), 
        'route'    => $vo->getRoute()
        )
);
...



Pourquoi le paramètre action est faux ?


Merci d'avance,
Michael

Dernière modification par MichaelB (28-09-2011 09:48:55)

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