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

  [Opened] jZone : modifier à la voler le template de jZone

Posted by pr_bond on 09/27/2008 19:39

Bonjour,

voila j'ai une question sur les jZone. Je souhaite modifier le template assigné à une zone.

Une zone = un template fixe

 class sommaireZone extends jZone {
 protected $_tplname='sommaire';
 protected function _prepareTpl(){
 }

Vue que le nom du template est déclaré brut et en plus en protégé, je n'ai pas vu de méthode dans la doc qui permet de modifier cela. (G pt mal cherché)

Je souhaiterais à partir de mon contrôleur pouvoir afficher dans la même zone, différents résultats, donc différents templates.

Merci d'avance de vos lumières

Cordialement


Mon nom est Bond, James Bond !

  • Windows 7 Pro 64Bits
  • XAMPP 1.7.2
  • Apache 2.2.12
  • PHP 5.3.0
  • MySQL 5.1.37
  • Jelix 1.1.6

  [Opened] Re: jZone : modifier à la voler le template de jZone

Reply #1 Posted by Julien on 09/28/2008 12:32

Hello,

il faudrait, en fonction des paramètres que tu passes à la zone, faire les changements que tu souhaites via _prepareTpl().

Par exemple :

 class sommaireZone extends jZone {  
     protected $_tplname='sommaire';
 
     protected function _prepareTpl(){
         $type = $this->param('type');
         if($type == 'toto')
             $this->_tplname = 'autre_tpl';

     }
 }

à part ça, pourquoi ne pas plutôt assigner des zones différentes au template principal à partir du contrôleur ? Ton code en sera sans doute simplifié et plus clair, non ?

Sinon, si le but de la zone est uniquement d'avoir un "sous-template", alors tu peux aussi directement utiliser quelque chose comme ça dans le contrôleur :

 $tpl = new jTpl();
 $tpl->assign('toto',$toto);
 $response->body->assign('MAZONE',$tpl->fetch('mon~selecteur'));

Ça évite éventuellement d'avoir recours à une zone pour "si peu"


Julien

 
Page
  1. Re: jZone : modifier à la voler le template de jZone