Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Passer une variable dans la zone

Posted by bary on 05/04/2020 12:54

Bonjour , j'ai suivi la documentation sur la zone mais j'ai rencontré un petit problème. voici le code dans la zone

    protected function _prepareTpl(){
        $this->_tpl->assign('current_menu',$this->param('active'));
    }

et voici le code du controller

$current_menu = 1;
$rep->body->assignZone('zHeader','commun~header',['active'=>$current_menu]);

et le code du template header (zone)

<ul class="nav navbar-nav">
                <li class="{if $current_menu == 1}active{/if}"><a href="url1">Link1</a></li>
                <li class="{if $current_menu == 2}active{/if}"><a href="url2">Link2</a></li>
</ul>

mais ça ne marche pas. j'ai fait un echo de {$current_menu} dans le template header mais ça me retourne vide. Merci

  [Opened] Passer une variable dans la zone

Reply #1 Posted by laurentj on 05/04/2020 14:10

Bonjour,

Quel est ce template header ? C'est bien le template indiqué dans la propriété protected $_tplname=''; de la classe de zone concernée ?

  [Opened] Passer une variable dans la zone

Reply #2 Posted by bary on 05/04/2020 14:20

oui , c'est celui qui est indiqué dans la propriété protected $_tplname

  [Opened] Passer une variable dans la zone

Reply #3 Posted by laurentj on 05/05/2020 08:28

Je ne vois pas ce qui cloche avec ces quelques lignes :-/

Sache toutefois que les paramètres de la zone sont automatiquement assignées au template. donc du devrais pouvoir faire {if $active}...

  [Opened] Passer une variable dans la zone

Reply #4 Posted by laurentj on 05/06/2020 14:24

Pas de cache activé sur le zone ? répertoire temp vidé ?

jLog::dump($this->param('active')); ça donne quoi dans le message.log ?

  [Opened] Passer une variable dans la zone

Reply #5 Posted by bary on 05/08/2020 11:04

Non, pas de cache activé dans la zone , répertoire vidé. voici le résultat du jLog.

2020-05-08 11:02:33	::1	default	1
2020-05-08 11:02:33	::1	default	NULL

  [Opened] Passer une variable dans la zone

Reply #6 Posted by bary on 05/08/2020 11:07

laurentj a dit :
Je ne vois pas ce qui cloche avec ces quelques lignes :-/

Sache toutefois que les paramètres de la zone sont automatiquement assignées au template. donc du devrais pouvoir faire {if $active}...

ça me renvoie une erreur. Undefined index: active

  [Opened] Passer une variable dans la zone

Reply #7 Posted by laurentj on 05/08/2020 18:18

D'après les logs que tu me donnes, il semble que ta zone soit appelée deux fois, avec la deuxième fois sans paramètres.

L'erreur est donc provoquée au deuxième appel, sachant que le code de ton contrôleur que tu m'as montré, est bien exécute, mais son résultat à priori n'est pas celui que tu vois.

Tu inclus le template header ailleurs dans ton code ? Ou tu appelles ta zone ailleurs ?

 
Page
  1. Passer une variable dans la zone