IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

plugin predispatch et bootstrap


Sujet :

MVC PHP

  1. #1
    rib
    rib est déconnecté
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 70
    Points : 55
    Points
    55
    Par défaut plugin predispatch et bootstrap
    bonjours, je voudrait charger ce plugin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    class App_Plugins_LayoutManagment extends Zend_Controller_Plugin_Abstract
    {
    	public function preDispatch(Zend_Controller_Request_Abstract $request)
    	{
    		$module = $request->getModuleName();
    		$controller = $request->getControllerName();
    		$action = $request->getActionName();
     
    		$layout = Zend_Layout::getMvcInstance();
    		$layout->getView()->headTitle()->prepend(SITE_TITLE);
    		$layout->getView()->headTitle()->setSeparator(' - ');
     
    		switch ($module) {
    			case 'default':
    			break;
     
    			case 'menu':
    			$layout->disableLayout();
    			break;
     
    			case 'submenu':
    			$layout->disableLayout();
    			break;
     
    			default:
    			break;
    		}
    	}
    }
    mais je ne sait pas comment le faire dans le boostrap, voici mon bootstrap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    <?php
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {  
    	public static function autoload($class) 
    	{
    		include str_replace('_', '/', $class) . '.php';
    		return $class;
    	}
     
        /**
         * Fonction de chargement
         */
    	protected function _initAutoload()
    	{
    		//on configure le module par défaut avec son namespace, son chemin et les ressources associées
    		$moduleLoader = new Zend_Application_Module_Autoloader(array(
    		'namespace' => 'Default_',
    		'basePath' => APPLICATION_PATH . '/modules/default'));
    		$moduleLoader->addResourceType('Models', 'models', 'Models');
    		$moduleLoader->addResourceType('Forms', 'forms', 'Forms');
    		Zend_Session::start(); 
            return $moduleLoader;
    	}
     
    	/**
    	 * Fonction servant à initialiser la vue
    	 */
    	protected function _initView()
        {
            // Initialize view
            $view = new Zend_View();
            $view->doctype('XHTML1_STRICT');
            $view->headMeta()->appendHttpEquiv('Content-Type',
                                               'text/html; charset=utf-8');
            $view->addHelperPath('App/View/Helper/', 'App_View_Helper');
    		$view->addHelperPath('App/View/Helper/Navigation', 'MyApp_View_Helper_');
    		$view->addHelperPath('ZendX/JQuery/View/Helper', 'ZendX_JQuery_View_Helper');
     
     
            Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');
            // Add it to the ViewRenderer
            $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
            $viewRenderer->setView($view);
            //ZendX_JQuery_View_Helper_JQuery::enableNoConflictMode();
            // Return it, so that it can be stored by the bootstrap
            return $view;
        } 
     
        protected function _initModifiedFrontController()
    	{
    		$this->bootstrap('FrontController');
    		$front = $this->getResource('FrontController');
    		$response = new Zend_Controller_Response_Http;
    		$response->setHeader('Content-Type','text/html; charset=UTF-8', true);
    		$front->setResponse($response);
    	}
     
    	protected static function _initNamespaces() 
    	{
    		$autoloader = Zend_Loader_Autoloader::getInstance();
    		$autoloader->registerNamespace('App_');
    		$autoloader->registerNamespace('Doctrine_');
    		$autoloader->registerNamespace('Doctrine');
    	}
     
    	protected function _initDoctrine() 
    	{
    		//on met Doctrine en autoload
            $this->getApplication()
                 ->getAutoloader()
                 ->pushAutoloader ( array ('Doctrine', 'autoload' ) );
            spl_autoload_register(array('Doctrine', 'modelsAutoload'));
     
            //on récupère une instance de Doctrine
            $manager = Doctrine_Manager::getInstance ();
     
            //permet de valider automatiquement l'intégrité des données
            //ce qui veut dire que l'on ne peut pas mettre une variable de type string
            //dans une variable de type int.
            $manager->setAttribute (Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL);
            //l'AUTO_ACCESSOR_OVERRIDE va nous permettre de personnaliser l'assignation de données.
            $manager->setAttribute ( Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDE, true );
            //Doctrine permet de personnaliser également les classes de table en permettant 
            //de créer des méthodes propres à une table. 
            //Ce paramètre permet de charger le fichier contenant nos méthodes personnalisées.
            $manager->setAttribute (
            	Doctrine::ATTR_MODEL_LOADING, 
            	Doctrine::MODEL_LOADING_CONSERVATIVE
            );
            //on permet le chargement des classes table
            $manager->setAttribute ( Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true );
     
            //on récupère toutes les options doctrine du fichier app.ini
            $doctrineConfig = $this->getOption('doctrine');
     
            //on récupère la variable doctrine.models_path du fichier app.ini
            //afin d'avoir le répertoire des models
            //pour que Doctrine les charge
            Doctrine::loadModels($doctrineConfig['models_path']);
     
            //on récupère la connexion à mysql et on la nomme doctrine
            $conn = Doctrine_Manager::connection($doctrineConfig['dsn'],'doctrine');
            //je sais plus ce que sa veut dire, mais il le faut
            $conn->setAttribute(Doctrine::ATTR_USE_NATIVE_ENUM,true);
     
            //on définit la sortie encodée en UTF-8
            $conn->setCharset('utf8');
            $conn->setCollate('utf8_general_ci');
     
            //on retourne la connexion
            return $conn;
        }
    }
    merci d'avance.

  2. #2
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Salut,

    dans ta methode initFrontConller ajoute ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        protected function _initModifiedFrontController()
    	{
    		$this->bootstrap('FrontController');
    		$front = $this->getResource('FrontController');
    		$response = new Zend_Controller_Response_Http;
    		$response->setHeader('Content-Type','text/html; charset=UTF-8', true);
    		$front->setResponse($response);
     
    //Chargement de ton plugin
    $front->registerPlugin(new App_Plugins_LayoutManagment());
    	}

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    S'il vous plaît, ou il faut créer le fichier d'un nouveau plugin ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [bootstrap] Mon premier plugin :)
    Par boboss123 dans le forum jQuery
    Réponses: 2
    Dernier message: 12/10/2012, 11h59
  2. [ZF 1.10] Bootstraps, Plugin, module = Besoin d'un coup de pouce ^^'
    Par Sereine dans le forum MVC
    Réponses: 9
    Dernier message: 24/09/2012, 19h11
  3. [ZF 1.11] Emplacement d'un plugin et instanciation dans le bootstrap
    Par CinePhil dans le forum MVC
    Réponses: 3
    Dernier message: 15/03/2012, 11h06
  4. [ZF 1.11] Probleme pour la mise en place d'un plugin pour le bootstrap
    Par offnight dans le forum MVC
    Réponses: 1
    Dernier message: 02/02/2012, 14h07
  5. Plugin Bootstraper
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/12/2010, 23h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo