Posts tagged: layoutPath

Zend Framework par module à base de paramètres

Par , Vendredi 1er Janvier 2010 22:40

J'ai créé un suivi à ce poste qui nécessite moins de configuration, s'il vous plaît voir Mise en module en fonction - Zend Framework .

Lorsque vous utilisez le Zend Framework avec des modules, son évident que si vous utilisez différents (sous-) des sites au large de la même application que vous ne voulez pas nécessairement les mêmes scripts de mise en page pour chaque partie. J'ai décidé d'aller avec la structure du site suivant:

  / Application
     Régulateurs
         ...
     Ou modèles
     / Modules
         / Par défaut
             Régulateurs
             / Mise en page
                 / Scripts
             / Views
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Le problème a été mise en place des scripts de mise en page sur une base de chaque module. La réponse est venue par le biais l'aide d'un Helper action. Mise en place des dispositions sur une base par module comporte trois étapes:

  1. Application.ini (ou procédure de configuration similaire):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath = "/ modules APPLICATION_PATH / default / layouts / scripts"
     member.resources.layout.layoutPath = "/ modules APPLICATION_PATH / member / layouts / scripts"
     affiliate.resources.layout.layoutPath = Une APPLICATION_PATH "/ modules / Affilié / layouts / scripts» 
  2. Créer votre Helper action:
      <? Php
     / **
      * Définit le chemin tracé sur une base par module
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Since 01.01.2010
      * /
     classe Pro_Controller_Action_Helper_SetLayoutPath
         s'étend Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Chemin de mise en page Ensembles basé sur le module
          * /
         preDispatch fonction publique ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg («bootstrap»)) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['ressources'] ['layout'] ['layoutPath'])) {
    	             LayoutPath $ =
    	                  [Module $] $ config ['ressources'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("layout")
    	                  -> SetLayoutPath (layoutPath $);
    	         }
        	 }
         }
     } 
  3. Et enfin boostrap l'aide d'action:
      ...
         / **
          * Met en place des scripts de mise en page sur une base de chaque module
          * /
         protégé fonction _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker :: addHelper (
    	         nouvelle Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












Thème Panorama par Themocracy

8 visiteurs en ligne maintenant
7 invités, 1 bots, 0 membres
Max visiteurs aujourd'hui: 12 à 12:28 am UTC
Ce mois-ci: 16 à 13:02 UTC 05/01/2012
Cette année: 69 à 09:56 am UTC 27-02-2012
Tout le temps: 130 à 28-03-2011 22:40 UTC