2010-11-29 33 views
1

Je travaille sur le livre "Zend Framework - Un guide pour débutants". Une partie du troisième chapitre décrit l'utilisation d'une maquette principale.Comment récupérer les paramètres dans une mise en page Zend

Pour ma navigation, je voudrais définir dynamiquement l'attribut id du corps. Comment puis-je obtenir un paramètre de n'importe quel contrôleur dans ce fichier de configuration?

Le maître-layout est situé dans application.ini:

resources.layout.layoutPath = APPLICATION_PATH "/layouts" 
resources.layout.layout = master 

salutations Frank

Répondre

2

Vous pouvez utiliser la vue vars pour les variables simples que vous devez passer dans les scripts de mise en page:

Dans votre contrôleur:

function indexAction() 
{ 
    $this->view->pageTitle = "Zend Layout Example"; 
} 

Dans votre script de mise en page:

<html> 
<head> 
    <title><?php echo $this->escape($this->pageTitle); ?></title> 
</head> 
<body></body> 
</html> 
2

La meilleure façon de le faire, est d'utiliser des espaces réservés. Voici un exemple mise en page:

master.phtml 
------------ 
<html> 
    <head> 
     <title>My Master Layout</title> 
    </head> 
    <body id="<?= $this->placeholder('my_dynamic_id_attrib'); ?>"> 
    ... 
    </body> 
</html> 

Notez que la valeur de l'attribut « id » commence par « <?= ». C'est la même chose que "<?php echo" et cela devrait fonctionner correctement si vous utilisez le fichier .htaccess par défaut recommandé par Zend. Si « <?= » ne fonctionne pas pour vous, remplacez simplement avec:

<body id="<?php echo $this->placeholder('my_dynamic_id_attrib'); ?>"> 

Maintenant, dans votre contrôleur, vous pouvez configurer votre identifiant dynamique à l'aide:

IndexController.php 
------------------- 
public function indexAction(){ 

    //------------------------------------ 
    // Can either be $_GET or $_POST, etc. 
    $dynamicParam = $this->_getParam('id'); 

    //------------------------------------ 
    // Set the dynamic id 
    $this->view->placeholder('my_dynamic_id_attrib')->set($dynamicParam); 
} 
+0

thx, j'ai utilisé wajiws exemple –

+0

Anytime Frankie. Merci d'avoir posté votre question. Meilleur –