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

  [Opened] plugin de template non fonctionnel dans une zone appellée par Ajax

Posted by bastnic on 05/24/2008 02:06

Par appel jQuery (load, ou ajax), j'essaye de remplir un div de mon template.

Code JS :

 var refresh = {urljsstring 'upload~default:getlist', array(), array()};

 $.ajax({ 
    type:'POST', 
    url:refresh,
    dataType:'html', 
    async:true, 
    success:function(result){ 
        $('#gallery').html(result); 
    } 
 });

ou :

 $("#gallery").load(refresh);

L'appel se fait sur une méthode getList de mon controller.

    function getlist() {        
        $rep = $this->getResponse("htmlfragment");
  
        $rep->tplname = "upload~getlist";
        $rep->tpl->assignZone('gallery', "gallery");
 
        return $rep;
    }

Contenu de mon getlist.tpl

    {$gallery}

Contenu de mon fichier gallery.zone.php

 protected $_tplname='gallery';

 protected function _prepareTpl(){
     $this->_tpl->assign("photo", "/images/toto.jpg");
 }

Contenu de mon fichier gallery.tpl

    {image $image,array('maxwidth'=>150, 'maxheight'=>150)}

Et je constate dans ma console firebug :

 <p style="margin:0;"><b>[exception 302]</b> 
 <span style="color:#FF0000">Dans le template {...}/gallery.tpl 
 __la fonction image est inconnue__</span> 
 {...}/lib/jelix/tpl/__jTplCompiler.class.php 483__</p>

Donc les plugins de template appelés dans le template de la zone ne sont pas pris en compte. Dans ce très simple exemple, je peux copier le code php de la zone et le mettre dans le controller et ça fonctionne. Mais vous vous doutez bien que ce n'est pas réalisable IRL.

Quelqu'un a une idée ?

Je poste ça en bug ?

  [Opened] Re: plugin de template non fonctionnel dans une zone appellée par Ajax

Reply #1 Posted by bballizlife on 05/25/2008 11:07

Je pense comprendre d'où vient ton problème ici. Ta réponse est de type htmlfragment et ce type se propage au template de ta zone gallery. Du coup comme le plugin jTpl image est de type html, il ne le trouve pas.

Dans ta zone gallery, force donc le type de template à html avec la propriété $_tplOuputType (cf l'api de jZone) et ça devrait passer.


N'importe comment c'est dans la doc

  [Opened] Re: plugin de template non fonctionnel dans une zone appellée par Ajax

Reply #2 Posted by bastnic on 06/01/2008 00:31

Quelqu'un l'a-t-il déjà essayé ? Car là en l'état pour moi, ça ne change pas grand chose. Mais j'y travaille.

Merci pour ta réponse tout de même Loïc.

  [Opened] Re: plugin de template non fonctionnel dans une zone appellée par Ajax

Reply #3 Posted by bastnic on 06/01/2008 00:37

En fait j'avais oublié que dans mon template de template de template j'appelais une zone qui elle-même n'était pas définie comme il fallait.

EDIT : dix minutes plus tard ça ne marche plus, rien n'a changé. Je n'y comprends rien... :s

 
Page
  1. plugin de template non fonctionnel dans une zone appellée par Ajax