Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
// 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
routes dans un fichier ini :
[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 :
$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
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
Pages: 1