Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-02-2009 11:03:58

sguary
Membre
Lieu: Rennes
Date d'inscription: 23-02-2009
Messages: 15
Site web

Ajout du paramètre langue dans l'url devant le controlleur et l'action

Bonjour,

Je parcours le forum régulièrement à la recherche d'informations. Aujourd'hui je n'ai pas trouvé de réponse. Alors je me lance et je m'inscris.

Je travaille sur un site un système multi langue. Pour des raisons de référencement et de convivialité je veux avoir des urls du type:

http://localhost/fr/controlleur/action
http://localhost/fr/module/controlleur/action

Je n'arrive pas à récupérer à faire fonctionner un router qui me permette ce comportement.

Je penses que je suis parti dans une mauvaise direction.

Je vous mets les quelques lignes de mon bootstrap

Code:

   // mise en place des répertoires et chargement des classes
   set_include_path('../application/library:../application/models/');
   include "Zend/Loader.php";

   Zend_Loader::registerAutoload();
   Zend_Session::start();

   $config = new Zend_Config_Ini('../application/configuration/configuration.ini');
   $db = Zend_Db::factory($config->bdd);
   Zend_Db_Table::setDefaultAdapter($db);



   // mise en cache de la structure de la base
   // D'abord, configurons le cache
   $frontendOptions = array('automatic_serialization' => true);
   $backendOptions  = array('cache_dir'=> $config->cache_db->dossier);
   $cache_db = Zend_Cache::factory('Core','File',$frontendOptions,$backendOptions);
   // Puis passons le comme objet de cache par défaut
   Zend_Db_Table_Abstract::setDefaultMetadataCache($cache_db);

   // gestion de la langue
   Zend_Registry::set('lang', $lang);
   $translate = new Zend_Translate('ini','../application/traduction/'.Zend_Registry::get('lang').'.ini');
         //
   $router = new Zend_Controller_Router_Rewrite();
      // setup controller
   $frontController = Zend_Controller_Front::getInstance();

   $frontController->throwExceptions(true);
   $frontController->setRouter($router);
  $frontController->addControllerDirectory('../application/site/controllers','default');
  $frontController->addControllerDirectory('../application/administration/controllers','administration');
   Zend_Layout::startMvc(array('layoutPath'=>'../application/layouts'));
   $frontController->dispatch();

Une fois la solution trouvée elle pourrait être étendu à plein de concept, css image ....

Hors ligne

 

#2 23-02-2009 11:26:32

baboune
Membre
Date d'inscription: 29-11-2008
Messages: 103

Re: Ajout du paramètre langue dans l'url devant le controlleur et l'action

routes dans un fichier ini :

Code:

[routes]
routes.news.type = "Zend_Controller_Router_Route"
routes.news.route = "/:language/:module/:controller/:action/*"
routes.news.defaults.language = "fr"
routes.news.defaults.module = "default"
routes.news.defaults.controller = "index"
routes.news.defaults.action = "index"

et bootstrap :

Code:

$router = new Zend_Controller_Router_Rewrite();
$router->addConfig(new Zend_Config_Ini('./../config/routes.ini', 'routes'), 'routes');
$controller = Zend_Controller_Front::getInstance();
$controller->setRouter($router);

Dernière modification par baboune (23-02-2009 11:27:35)

Hors ligne

 

#3 23-02-2009 11:39:40

sguary
Membre
Lieu: Rennes
Date d'inscription: 23-02-2009
Messages: 15
Site web

Re: Ajout du paramètre langue dans l'url devant le controlleur et l'action

Merci pour la réponse.

Sur le module administration, j'ai un problème de boucle infini
http://127.0.0.1/fr/administration/index/connexion/

Comment récupérer le paramètre langue dans le bootstrap?

Pour les pages du module par défaut pas de souci, elle fonctionne sous l'url /fr/ ou /

Sébastien

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