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 :

modifier le fichier de vue à appeler [ZF 1.11]


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Par défaut modifier le fichier de vue à appeler
    Bonjour à tous,

    J'utilise dans mon projet un module par défaut, et une module "precos".
    Le contrôleur PrecosController de mon module Precos hérite du contrôleur ItemController de mon module default.

    J'ai ajouté ces deux lignes de code dans mon contrôleur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->_helper->viewRenderer->setNoController();
    $this->_helper->viewRenderer->setScriptAction('item/search');
    Ce qui fait qu'aujourd'hui, la vue associée à l'action "search" de mon contrôleur PrecosController se trouve dans
    =>application/modules/precos/views/scripts/item/search.phtml.

    Je voudrais qu'automatiquement la redirection se fasse sur le fichier search du module default:
    =>application/modules/default/views/scripts/item/search.phtml.

    Pour cela j'ai ajouté cette ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->_helper->viewRenderer->setViewBasePathSpec(PATH_ROOT.'application'.DS.'modules'.DS.'default'.DS.'views');

    Mais j'obtiens alors ce message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception information:
     
    Message: script 'item/search.phtml' not found in path (C:/Program Files/Zend/Apache2/htdocs/precos/application/modules/precos/views\scripts/)
    Comme s'il ignorait ma modification de ViewBasePath. Alors qu'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $this->_helper->viewRenderer->getViewBasePathSpec();
    m'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\Zend\Apache2\htdocs\precos\application\modules\default\views
    Je ne comprends donc pas ce qui coince, ce qui est vraiment bloquant puisque ce problème m'oblige à chaque fois à mettre mes fichiers de vue dans le module concerné, et empêche la factorisation initialement prévue.

    Toute aide serait la bienvenue, merci d'avance

  2. #2
    Membre éclairé Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Par défaut
    eh bien...je me réponds: j'ai en fait effectué ma modification dans un plugin, ainsi mon setViewBasePathSpec est pris en compte!

    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
    class AppliPlugin extends Zend_Controller_Plugin_Abstract{
     
    	public function dispatchLoopStartup($request){
     
    		//je redirige sur le module par défaut si le fichier spécifique n'existe aps 
    		//et s'il ne s'agit aps du controller  index
    		$vr = Zend_Controller_Action_HelperBroker::getExistingHelper('viewRenderer');
     
    		$suffix=$vr->getViewSuffix();
    		$ctl=$request->getControllerName();
    		$action=$request->getActionName();
     
    		if(($ctl!='index')&&($ctl!='auth')){
    			$file_spec=$vr->getModuleDirectory().DS.'views'.DS.'scripts'.DS.$ctl.DS.$action.'.'.$suffix;
    			//echo $file_spec;
    	    	if(!file_exists($file_spec)){
    	    		$chemin_vues=PATH_ROOT.'application'.DS.'modules'.DS.'default'.DS.'views';
    	        	$vr->setViewBasePathSpec($chemin_vues)
    	           ->setViewScriptPathSpec('item'.DS.':action.:suffix');// par défaut : :controller/:action.:suffix
     
     
    	    	}
    		}
     
    	}
    }

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

Discussions similaires

  1. Ouvrir et modifier un fichier .doc en l'appellant depuis une page html
    Par Dan99 dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 29/05/2012, 21h42
  2. Réponses: 7
    Dernier message: 17/02/2012, 11h57
  3. [JexcelAPI]Modifier un fichier excel
    Par sissi_l dans le forum Documents
    Réponses: 3
    Dernier message: 01/06/2007, 01h36
  4. [jar] Comment modifier un fichier jar
    Par newfsch dans le forum JBuilder
    Réponses: 5
    Dernier message: 18/07/2004, 14h25
  5. [LG]modifier un fichier
    Par fofovi72 dans le forum Langage
    Réponses: 3
    Dernier message: 15/04/2004, 21h30

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