Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-08-2008 16:49:11

mega_info
Nouveau membre
Date d'inscription: 31-08-2008
Messages: 8

zend frame work et les frameset html

bonjour , 

je travail  sur un projet avec zend  et je voulai bien travailler avec les frameset dans l'interface web , pour cela j'ai definit dans mon layout  le code suivant :


Code:

<frameset rows="105,*,100" border="0"  >
<frame name="haut" src="/TecTrace/application/default/layouts/header.phtml" scrolling="no">
  <frameset cols="*,350">
  <frame name="gauche" src="/TecTrace/application/default/layouts/map.phtml" scrolling="no">
  <frame name="droite" src="/TecTrace/application/default/layouts/menu.phtml" scrolling="no">
  </frameset>
<frame name="bas" src="/TecTrace/application/default/layouts/footer.phtml" scrolling="no">
</frameset><noframes></noframes>

mon problème c'est quand j'envoi  des données de mon controlleur vers les vues j'arrive pas a les récupérer

exemple  dans l'action index d'un  contrôlleur :

Code:

..

$this->view->message ="Hello world " ;
..

dans la page  header.phtml  je met :


Code:

  <?php echo  $this->message ?>

une erreur c affiicher dans la page :


Fatal error: Using $this when not in object context in F:\Projects\XXX\TecTrace\application\default\layouts\header.phtml on line 7


donc c'est un problème de récupération de données !!
Esq ya t'il  un moyen de régler ce problème ?

merci .

Dernière modification par mega_info (01-09-2008 00:43:35)

Hors ligne

 

#2 31-08-2008 18:02:12

lethak
Membre
Lieu: France
Date d'inscription: 05-04-2008
Messages: 168

Re: zend frame work et les frameset html

Code:

$this->view->message ="Hello world " ;

me semble plus approprié wink


pour la fatal error et bien si tu l'a encore c'est que le soucis viens d'ailler et dans ce cas la je ne sait pas trop.

Dernière modification par lethak (31-08-2008 18:04:08)


IT Dev @Twitter

Hors ligne

 

#3 31-08-2008 22:21:04

mega_info
Nouveau membre
Date d'inscription: 31-08-2008
Messages: 8

Re: zend frame work et les frameset html

merci  lethak  de me répondre ,

c vrai  , je me suis tremper dans dans l'écriture du  code dans la dissucution , 

j'ai eu on la même erruer fatal ,

j'ai besoin de votre aides les amis , si  quelqu'un a eu déja ce problème ou  toute proposition pour une solution sera la bien-venue .

merci  encore .

Hors ligne

 

#4 01-09-2008 09:12:21

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: zend frame work et les frameset html

Rien d'anormal a ce que ca plante.
tu appeles directement ta vue dans ton frameset

Code:

<frame name="haut" src="/TecTrace/application/default/layouts/header.phtml" scrolling="no">

Ton code est donc appelé hors contexte (hors pattern MVC) donc le moteur PHP ne sait pas a qui attribuer le $this. Appel une action qui gere le header et tu devrais voir que ca doit marcher.

Hors ligne

 

#5 01-09-2008 09:35:53

lethak
Membre
Lieu: France
Date d'inscription: 05-04-2008
Messages: 168

Re: zend frame work et les frameset html

ndesaleux a écrit:

Rien d'anormal a ce que ca plante.
tu appeles directement ta vue dans ton frameset

Code:

<frame name="haut" src="/TecTrace/application/default/layouts/header.phtml" scrolling="no">

Ton code est donc appelé hors contexte (hors pattern MVC) donc le moteur PHP ne sait pas a qui attribuer le $this. Appel une action qui gere le header et tu devrais voir que ca doit marcher.

ha oui exact !

et puis les frameset c'est vraiment le mal ! a éviter le plus possible wink


IT Dev @Twitter

Hors ligne

 

#6 01-09-2008 10:45:45

mega_info
Nouveau membre
Date d'inscription: 31-08-2008
Messages: 8

Re: zend frame work et les frameset html

bonjour a tout ,  merci  pour vos réponces  .

je vien de régler le problème , et je v répond aussi a vos proposition aussi :

--> ndesaleux  : si je fait appel directement mes vue dans mon frameset  je pourrai plus récupérer les données que je transefert a partir de mon contrôleur vers les vues . ( l'appel  avec $this ne va pas marché car les vue ne seront plus des vues de zend )


--> lethak :  j vraiment besoin d'utiliser les frameset afin d'optimiser l'affichage et le rendu des pages  , donc il falai que je trouve la source de problème .

la solution :  c'est une solution un peut  bête que j'ai pas pensé a ça :

dans le layout :

Code:

<frame name="haut" src="<?php echo $this->url(array('controller'=>'index','action'=>'header'));?>" scrolling="no">
  <frameset cols="*,350">
  <frame name="gauche" src="<?php echo $this->url(array('controller'=>'index','action'=>'map'));?>" scrolling="no">
  <frame name="droite" src="<?php echo $this->url(array('controller'=>'index','action'=>'menu'));?>" scrolling="no">
  </frameset>
<frame name="bas" src="<?php echo $this->url(array('controller'=>'index','action'=>'footer'));?>" scrolling="no">
</frameset><noframes></noframes>

</html>

et je définit dans mon contrôleur les action qui font le rendu des différents parties de la page :


Code:

 public function headerAction ()
    {
        $this->view->message= 'Hello world';
        $this->_helper->layout->disableLayout();
        $this->render("template/header",null,true); 
        return;
     
    }
    
    public function footerAction ()
    {

        $this->_helper->layout->disableLayout();
        $this->render("template/footer",null,true);  
        return;
     
      
    }
    
    public function mapAction ()
    {
        $this->_helper->layout->disableLayout();
        $this->render("template/map",null,true); 
        return;
      
    }
    
    public function menuAction ()
    {
      
        
        $this->_helper->layout->disableLayout();
        $this->render("layouts/menu",null,true);  
        
        return;
       
    }

- comme sa je peut récupérer la variable message dans le vue header sans aucun problème .

merci a tout . smile

Dernière modification par mega_info (01-09-2008 10:47:05)

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