Utilisation de Zend_Navigation
Bonjour,
je travaille actuellement sur un site dont le contenu est multilingue. Tout ce contenu est stocké en BDD. Pour choisir la langue, j'ai ceci dans mes layouts :
Code:
1 2 3 4 5
|
<div id="flags">
<a href="<?= $this->url(array('lang' => 'fr'),null,false); ?>" class="fr"></a>
<a href="<?= $this->url(array('lang' => 'en'),null,false); ?>" class="eng"></a>
</div> |
Les liens de mon menu sont écrit comme ceci :
Code:
1 2
|
<li><a href="<?= $this->url(array('module' => 'contents', 'controller' => 'index', 'action' => 'index', 'id' => 12, 'lang' => $this->lang), null, true) ?>">Consulting</a></li> |
La langue par défaut est le français, pour le reste je récupère le paramètre de langue.
Pour simplifier la gestion de la navigation, j'aimerais utiliser Zend_Navigation qui, me semble t-il, est fait pour. J'ai écrit le fichier XML nécessaire et dans mon bootstrap, j'ai :
Code:
1 2 3 4
|
$config = new Zend_Config_Xml(APPLICATION_DIRECTORY . '/navigation.xml', 'nav');
$Zend_Layout = Zend_Layout::getMvcInstance()->getView();
$Zend_Layout->navigation(new Zend_Navigation($config)); |
Tout fonctionne pour très bien mais une chose m'échappe : comment gérer le multilingue? Tant que je navigue en français, tout est ok mais comment récupérer le paramètre de langue au cas ou je passe en anglais par exemple?
Dans mon XML j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
... some xml ...
<label>Menu link</label>
<class>myclass</class>
<module>contents</module>
<controller>index</controller>
<action>index</action>
<params>
<id>43</id>
<lang></lang>
</params>
... some xml ... |
Ce qui correspond à :
Citation:
<a class="myclass" href="/contents/index/index/id/43/lang/">Menu link</a>
Donc ça coince au niveau de l'élément "lang". Je ne sais pas ce qu'il faut lui mettre comme valeur par défaut car je dois avoir :
Code:
1 2 3 4 5 6
|
<a class="myclass" href="/contents/index/index/id/43/lang/fr">Menu link</a>
ou
<a class="myclass" href="/contents/index/index/id/43/lang/en">Menu link</a> |
Voilà, j'espère avoir été clair et fourni les informations nécessaires. Je vous remercie d'avance pour l'aide que vous pourrez m'apporter.