Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-11-2010 17:45:07

Logan0015
Nouveau membre
Date d'inscription: 30-07-2009
Messages: 2

[Zend_Route][1.10]- Un seul module commun à plusieurs sites

Bonjour,

J'espère que cette question n'a pas déjà été posée et que je ne suis pas passé à côté lors de ma recherche...

Voici mon problème :

Je suis en train de développer une application qui fonctionne de la manière suivante :

- Un site principal qui fonctionne selon un modèle donné avec une liste de produits "complète".
et
- X sous-sites qui fonctionnent tous selon un même modèle, mais avec une liste de produits réduite par rapport au site principal.

Donc en terme de structure, je pourrais partir sur un modèle de ce genre là (ici uniquement la partie concernant les modules pour simplifier) :

Code:

application
---+ modules
------+ site principal
---------+ controllers
---------+ views
------+ sous-site 1
---------+ controllers
---------+ views
------+ sous-site 2
---------+ controllers
---------+ views
------+ ...

Le problème avec ce système c'est que cela m'oblige à créer systématiquement un nouveau dossier de module pour chaque sous-site, ce que je trouve un peu dommage étant donné que tous les sous-sites utiliserons exactement les mêmes fonctions (donc c'est un peu faire de la copie de fichiers pour pas grand chose).

Aussi dans un but d'optimiser le codage de l'application et surtout d'automatiser la création des sous-sites via l'administration du site (sans avoir besoin de créer des nouveaux dossiers "à la mains"), je me demande s'il ne serait pas plutôt possible de trouver une astuce qui me permette de modifier le fonctionnement "normal" du ZF :

C'est-à-dire que "normalement", si un nom de module est renseigné dans l'url, le ZF rentre dans l'arborescence du module (s'il existe dans l'arborescence, sinon il renvoie une erreur), et si le nom de module n'est pas renseigné il utilise le module "default".

Jusque-là tout va bien.

Mon objectif est de conserver l'utilisation du module "default" si aucun nom de module n'est renseigné (ce sera mon site principal), MAIS d'utiliser un seul et même module pour tous les autres cas.

Ce qui reviendrait à faire, pour schématiser :

Code:

URL : www.monsite.com         =   MODULE : default
URL : www.monsite.com/site1   =   MODULE : site
URL : www.monsite.com/site2   =   MODULE : site
...

Avec une/des règle(s) de routage qui permettent de rendre le tout transparent à l'utilisateur qui verra toujours l'url qu'il a saisie et non le vrai nom du module.

Malheureusement je n'arrive pas à voir comment mettre cela en place. Si quelqu'un a eu idée...

Hors ligne

 

#2 23-11-2010 17:50:39

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: [Zend_Route][1.10]- Un seul module commun à plusieurs sites

J'ai lu rapidement mais peut-être que ceci pourrait t'aider :

Code:

public function routeStartup (Zend_Controller_Request_Abstract $request)
{

$router = Zend_Controller_Front::getInstance()->getRouter();

$router->addRoute('site1',new Zend_Controller_Router_Route('/site1',array(''module=>'site')));
$router->addRoute('site2',new Zend_Controller_Router_Route('/site2',array(''module=>'site')));

}

Lorsqu'il va récupérer ta requête url, s'il voit que ton url est /site1...il va utiliser le module site.
Ces routes sont configurables et tu peux en faire autant que tu veux.

Hors ligne

 

#3 24-11-2010 11:37:27

Logan0015
Nouveau membre
Date d'inscription: 30-07-2009
Messages: 2

Re: [Zend_Route][1.10]- Un seul module commun à plusieurs sites

Bonjour,

Mais évidement j'avais complètement oublié que l'on pouvait passer une URI au routeur....

Reste à coder un plugin qui récupère les différentes possibilités en base de données pour créer les routes automatiquement et ça devrait fonctionner.

Dès que j'ai codé un plugin qui fonctionne je vous tiens au courant.

Merci encore.

P.S. : si certain(e)s ont d'autres idées...

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