Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-03-2009 09:18:29

kaboume
Membre
Lieu: Bagneux
Date d'inscription: 21-09-2007
Messages: 24
Site web

Include dans un phtml ?

Hello,

Question toute conne :

Je souhaite inclure dans mon phtml un autre phtml ou le rendu d'une action pariculière.

En effet, je souhaite que mon header et mon footer soient inclus dans toutes mes actions.

Quelles sont les solutions possibles ?

Merci d'avance.
Eric

Hors ligne

 

#2 19-03-2009 09:27:35

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: Include dans un phtml ?

Salut, j'ai effectué la même opération que toi, et voila ce que j'ai fait. Je suis loin d'etre un expert cependant, donc peut etre qu'il faudra me corriger. Voilà ce que j'ai fait :

Dans mon fichier bootstrap (index.php du dossier html (ou public ):

Code:

$actionStack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack');
// la section de la page, et le controleur qui va l'utiliser 

//le controlleur index va rendre l'action footerAction dans la vue footer
$actionStack->actionToStack('footer','index');
//idem 
$actionStack->actionToStack('menu','menu');
//idem
$actionStack->actionToStack('header','index');
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

On envoie dans chaque section, le resultat du controlleur (spécifié en deuxieme parametre)

en l'occurence, dans mon cas, chaque page a une section header footer et menu, qui est générée par le controlleur de l'index avec les action footerAction...Etc...

a savoir que dans le fichier index.php j'ai aussi quelque chose qui me permet d'utiliser le layout :

Code:

$layout =Zend_Layout::startMvc($config->layout);
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

et un fichier  config.ini où il y a les parametres du layout :

Code:

layout.layout     = template
layout.contentKey = contenu
layout.layoutPath = "../application/layouts"
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

comme on peut le remarquer, j'ai un fichier template.phtml dans le dossier MARACINE/application/layouts

dans mon fichier template.phtm:

Code:

<div id="footer"><?php echo $this->layout()->footer ?>
</div>
<!--et pareil pour toutes les sections-->
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

et pour finir dans mon indexController :

Code:

   public function headerAction()
   {
      $this->_helper->viewRenderer->setResponseSegment('header');
   }
//pareil pour toutes les sections.
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Voilà.
En espérant t'avoir aidé!

Dernière modification par gostbuster (15-04-2009 17:01:39)


Gostbuster - Développeur WEB

Hors ligne

 

#3 20-03-2009 08:06:48

kaboume
Membre
Lieu: Bagneux
Date d'inscription: 21-09-2007
Messages: 24
Site web

Re: Include dans un phtml ?

Hello,

Merci bcp pour avoir pris le temps de me répondre de manière précise.

Je vais creuser ta solution et l'implémenter.

A+.

Hors ligne

 

#4 20-03-2009 09:30:22

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: Include dans un phtml ?

avec plaisir


Gostbuster - Développeur WEB

Hors ligne

 

#5 15-04-2009 15:41:11

forevermoon
Membre
Date d'inscription: 10-04-2009
Messages: 45

Re: Include dans un phtml ?

Code:

<div id="footer"><?php echo $this->layout()->footer ?>
</div>
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

moi il ne m'affiche pas le footer ...
pourtant j'ai un "controllers/ footerController.php"
un "layouts/footer.phml"

Hors ligne

 

#6 15-04-2009 16:47:15

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: Include dans un phtml ?

Salut,

Je n'ai pas de footerController ........heu

En fait finalement j'ai changé de technique......Je vais maintenant te mentionner la technique a utiliser qui semble etre plus propre :

dans ton bootstrap :

Code:

$layout =Zend_Layout::startMvc($config->layout);
$view = new Zend_View();
$view->setEncoding('UTF-8');
$view->strictVars(true);
$view->doctype('XHTML1_TRANSITIONAL');

$view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Il te faut aussi un fichier de config. Dans ce fichier il y aura ceci :

Code:

layout.layout = "template"
layout.contentKey = "contenu"
layout.layoutPath = "../application/views/layouts"
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

ensuite, ton fichier template.phtml :

Code:

<?php 
echo $this->doctype();
//echo $this->doctype("XHTML1_TRANSITIONAL"),PHP_EOL; ?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<?php  echo $this->headMeta()
->setHttpEquiv('Content-type', 'text/html; charset=utf-8')

->setHttpEquiv('lang','fr')
->setHttpEquiv('imagetoolbar','no')
->setName('author','............')
->setName('generator','ZendFramework 1.6')
->setName('Language','fr');



?>


</head>
<body class="tundra">

<div id="header">
<?php echo $this->partial('common/header.phtml',array('pageTitle'=>/*$this->titre*/''));?>
</div>

<!-- ><div id="menu">
<?php// echo $this->layout()->menu ?>
</div>
-->
<!--contenu-->
<div id="contenu"><?php echo $this->layout()->contenu ?>
</div>

<!-- footer -->
<div id="footer"><?php echo $this->partial('common/footer.phtml'); ?>
</div></body></html>
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Si j'ai rien oublié, ca devrait fonctionner. Voilà


Gostbuster - Développeur WEB

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