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

  [Opened] [résolu] Fatal error: Call to a member function getBuilder()

Posted by jayjay on 07/20/2010 11:31

Bonjour,

J'ai créé une page "index" que j'ai découpée en Zones : index_publicationsForm et index_thematicTable.

Dans ma Ière Zone je veux afficher un formulaire de recherche et dans la seconde un tableau (résultat d'une requete type select). Mais quand j'appelle ma page index j'ai cette erreur : Fatal error: Call to a member function getBuilder() on a non-object in D:\DevServer\www\governance\temp\governance\compiled\templates\modules\governance\zone_index_publicationsForm_html_t.php on line 9

Voici le code de mes classes:

  • myHtmlResponse
class myHtmlResponse extends jResponseHtml {

<code>
    public $bodyTpl = 'governance~main';

    function __construct() {
        parent::__construct();

        // Include your common CSS files here
        //.....Do basic actions like loading all governance types, construct your table....
        //..... Include your form's objects like menulist and textbox, buttons
    }

    protected function doAfterActions() {
        // Include all process in common for all actions, like the settings of the
        // main template, the settings of the response etc..
        $this->title .= ($this->title !=''?' - ':'').' Index ';
        $this->body->assignZone('SearchForm','governance~index_publicationsForm');
        $this->body->assignZone('ThematicTable','governance~index_thematicTable');
        $this->body->assignIfNone('BurundiFlag','');
        $this->body->assignIfNone('PartnersFlags','');
        
    }
</code>
  • Zones
class index_publicationsFormZone extends jZone {
<code>
    
	protected $_tplname='zone_index_publicationsForm';
    
    protected function _prepareTpl()
    {
      	$this->_tpl->assign('SearchForm',$SearchForm);
    }

}

</code>
  • Zone 2
class index_thematicTableZone extends jZone {
<code>
    
	protected $_tplname='zone_index_thematicTable';

    protected function _prepareTpl()
    {
        
    	
        
    }

}

</code>
  • Template Main
<div id="header">
<code>
    <div id="burundi">
        {$BurundiFlag}
    </div>
    
    <div id="top">{@governance~index.title.database@}<p>{@governance~index.title.acces@}</p></div>

    <div id="partners">
        {$PartnersFlags}
    </div>
</div> <div id="main">
  <div id="publications">
    <div id="topPublications">{@governance~index.title.topPublications@}
    </div>
    <div id="searchForm">
     {@governance~index.title.criteriaSearch@} {$SearchForm} 
    </div>

    <div id="thematicTable">
      {@governance~index.title.thematicSearch@}{$ThematicTable}
    </div>
  
  </div>  
  
  <div id="projects">
   <div id="topProjects">{@governance~index.title.topProjects@}
   </div>
  </div>
   
</div> <div id="footer"> </div> </code>
  • Template zone_index_publicationsForm
<h1>{@governance~governance.index.title.criteriaSearch@}</h1>
{formfull $SearchForm,'governance~index:index'}
  • Controleur index
class indexCtrl extends jController {
<code>
    /**
    *
    */
	
    function index() {
    	
        $rep = $this->getResponse('html');
        return $rep;
    }

}

</code>

Quelqu'un peut m'aider? Merci

  [Opened] Fatal error: Call to a member function getBuilder()

Reply #1 Posted by foxmask on 07/20/2010 23:32

bonsoir,

pour le code c'est mieux de mettre ca dans les noeuds <code> et </code>

ensuite ce code n'est pas du tout facile à lire car dans le template principale, le varialbe recevant la zone est $SearchForm et dans le template de la zone zone_index_publicationsForm on a la meme variable de formulaire cette fois ci $SearchForm

Sinon pour ma part je purgerai le cache de l'appli et je changerai le nom de la variable de la zone par exemple dans la reponse :

<code>
 $this->body->assignZone('SEARCHZONE','governance~index_publicationsForm');
</code>

@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: Fatal error: Call to a member function getBuilder()

Reply #2 Posted by jayjay on 07/21/2010 10:26

Bonjour foxmask et merci de répondre,

J'ai tenté de faire comme tu m'a indiqué mais sans succès. J'ai remarqué que je n'avais pas passé mon formulaire et j'ai tenté ceci dans ma zone, sans succès.

 

class index_publicationsFormZone extends jZone {
<code>
    
	protected $_tplname='zone_index_publicationsForm';
    
    protected function _prepareTpl()
    {
      	$form = jForms::get('governance~searchEngine');
    	$this->_tpl->assign('SearchForm',$form);
    }

}

</code>

I still need a help

Merci

  [Opened] Fatal error: Call to a member function getBuilder()

Reply #3 Posted by Vincentv on 07/21/2010 17:21

Bonjour,

La tentative de l'utilisation de la balise code etait sympa mais faut enlever les espace autour de code je pense :D

Sinon pour ton problème, tu as penser a regarder a la ligne 9 du fichier D:\DevServer\www\governance\temp\governance\compiled\templates\modules\governance\zone_index_publicationsForm_html_t.php

pour voir quel variable devrait être un objet mais qui n'en est pas un? d'ailleur de la ligne 1 à 9 de ce fichier il y a quoi?

  [Opened] Fatal error: Call to a member function getBuilder()

Reply #4 Posted by jayjay on 07/21/2010 18:00

Le fameux fichier contient ceci et à mon avis c'est la variable formulaire qui cause le problème, mais je comprends pas comment?

 
<?php 
function template_meta_63477f8c8356486fed2499e734b09d73($t){
if(isset($t->_vars[['SearchForm']])) { $t->_vars[['SearchForm']]->getBuilder('html')->outputMetaContent($t);}

}
function template_63477f8c8356486fed2499e734b09d73($t){
?><h1><?php echo jLocale::get('governance~governance.index.title.criteriaSearch'); ?></h1>
<?php  $formfull = $t->_vars[['SearchForm']]; /*Ligne 9*/
<code>
    $formfullBuilder = $formfull->getBuilder('html');
    $formfullBuilder->setAction('governance~index:index',array());
    $formfullBuilder->outputHeader(array());
    $formfullBuilder->outputAllControls();
    $formfullBuilder->outputFooter();?><?php 

} ?>

</code>

et merci pour les petites remarques

  [Opened] Re: Fatal error: Call to a member function getBuilder()

Reply #5 Posted by foxmask on 07/22/2010 08:47

jayjay a dit :
Bonjour foxmask et merci de répondre,

J'ai tenté de faire comme tu m'a indiqué mais sans succès.
J'ai remarqué que je n'avais pas passé mon formulaire et j'ai tenté ceci dans ma zone, sans succès.

 
class index_publicationsFormZone extends jZone {
<code>
   
	protected $_tplname='zone_index_publicationsForm';
    
    protected function _prepareTpl()
    {
      	$form = jForms::get('governance~searchEngine');
    	$this->_tpl->assign('SearchForm',$form);
    }

}

</code>

un jForms::create serait plus approprié non ?

je vous invite à voir la doc jForms


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Fatal error: Call to a member function getBuilder()

Reply #6 Posted by laurentj on 07/22/2010 09:22

En effet, un jForms::get renvoi null si le formulaire n'a pas été déjà crée. get est pour récupérer un formulaire déjà créé.

  [Opened] Fatal error: Call to a member function getBuilder()

Reply #7 Posted by jayjay on 07/22/2010 15:52

C'était bien ce problème. Maintenant ça marche.

Merci

 
Page
  1. [résolu] Fatal error: Call to a member function getBuilder()