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

  [Opened] [RESOLU]Zone: Erreur (oubli tags php dans le fichier zone)

Posted by Didou on 05/24/2007 15:42

Bon, je souhaite répartir ma page en plusieures zones donc j'ai suivis le manuel sur la création de zone avec insertion direct dans le template. Mais j'ai l'erreur suivante :

 class banniereZone extends jZone { protected $_tplname='template_banniere'; }
 Fatal error: require_once() [function.require]: Failed opening required  '/home.10.12/centresos/lib/jelix/utils/banniereZone.class.php' (include_path='.:/usr/local/lib/php') in  /home.10.12/centresos/lib/jelix/init.php on line 1977

Sinon, si je veux les insérer dans un controleur comment puis-je faire pour désigner où je veux que soit insérer la zone si j'en ai plusieurs (une en haut pour la bannière, une sur le côté pour le menu et une centrale) car dans le manuel on parle que de la zone "MAIN"...

Enfin, question subsidiaire où mettre le css pour la mise en page d'un template ?

Merci

Adeline


Adeline

  [Opened] Re: Zone

Reply #1 Posted by laurentj on 05/24/2007 15:56

Pour l'erreur, à priori le nom du fichier de ta zone ne correspond pas au nom de ta classe.

un conseil : utilise l'édition developer pour développer, et non pas l'édition optimized (celle ci est déstinée à être installer sur un serveur de prod).

je veux les insérer dans un controleur comment puis-je faire pour désigner où je veux que soit insérer la zone si j'en ai plusieurs (une en haut pour la bannière, une sur le côté pour le menu et une centrale) car dans le manuel on parle que de la zone "MAIN"...

euh, la zone MAIN, ce n'est qu'un exemple hein. Suffit que dans ton template principale tu definisse plusieurs endroit où mettre du contenu pour faire ensuite des assignZone..

Enfin, question subsidiaire où mettre le css pour la mise en page d'un template ?

dans ton www bien sûr et tu fais le addCssLink qu'il faut sur la réponse html...

  [Opened] Re: Zone

Reply #2 Posted by Didou on 06/27/2007 09:11

Bon la je sèche toujours ... J'ai toujours la même erreur... pourtant j'ai bien le meme nom pour la classe et le fichier : banniereZone et banniere.zone.php

J'ai tout refait en suivant bien le tuto pourtant mais ça marche pas ....


Adeline

  [Opened] Re: Zone

Reply #3 Posted by laurentj on 06/27/2007 10:20

à quel moment et comment tu appel ta zone ?

  [Opened] Re: Zone

Reply #4 Posted by christophec on 06/27/2007 11:07

Voici un contrôleur que j'utilise dans mon application. J'espère que celà pourra t'aider.

 function modutilform() {
       /**
	* Affichage du formulaire utilisateur
	*/
	$listuser = jAuth::getUserList();
	$fact = jDao::get('login~centres');
	$listcentre = $fact->findall();
	$message=$this->param('message');
       $rep = $this->getResponse('html');
       $rep->title =  "RACER";
	$rep->addCSSLink('./design/racer.css');
	$rep->addJSLink('./java/date.js');
	$rep->addJSLink('./java/heure.js');
       $rep->addJSLink('./java/browserdetect.js');
	$rep->addJSLink('./java/DynMenu.js');
	$rep->addJSLink('./java/UpdateUser.js');
       $rep->bodyTpl = 'main~main';
	$rep->body->assignZone ('baniere', 'main~banniere');
	if(jAcl::check("cms.racer","admin")) {
		$rep->body->assignZone ('menu', 'main~menuadmin');
	}else{
		$rep->body->assignZone ('menu', 'main~menuutil');
	}
	$rep->body->assignZone ('main', 'login~moduserform', array('listcentre'=>$listcentre, 'listuser'=>$listuser));
	$rep->body->assignZone ('messages', 'main~messages', array('message'=>$message));
 
       return $rep;
   }
  • la réponse commence par:
 $rep = $this->getResponse('html');
  • ensuite l'insertion du CSS:
 $rep->addCSSLink('./design/racer.css');
  • le chargement du tpl principal
 $rep->bodyTpl = 'main~main';
  • pour info le main.tpl
 <div id="banniere">
 {$banniere}
 </>
 <div id="cadremenu">
 {$menu}
 </>
 <div id="main">
 {$main
 </>
 <div id="messages">
 {$message}
 </>
  • enfin j'affecte les zones au tpl principal
 $rep->body->assignZone ('baniere', 'main~banniere');
	if(jAcl::check("cms.racer","admin")) {
		$rep->body->assignZone ('menu', 'main~menuadmin');
	}else{
		$rep->body->assignZone ('menu', 'main~menuutil');
	}
	$rep->body->assignZone ('main', 'login~moduserform', array('listcentre'=>$listcentre, 'listuser'=>$listuser));
	$rep->body->assignZone ('messages', 'main~messages', array('message'=>$message));

La div banniere du tpl principal reçoit la zone main~banniere etc...

  [Opened] Re: Zone

Reply #5 Posted by Didou on 06/28/2007 13:36

Merci de vos réponses. Vous pouvez consulter la page qui pose problème sur @www.centresocialvilleneuve.fr@

Et voici mes fichiers (j'ai fait QUE des copier-coller, aussi bien pour les noms que les contenus des fichier) :

Le fichier de la zone dans le répertoire zone :

banniere.zone.php

 class banniereZone extends jZone {
	
	protected $_tplname='zone_banniere';
 
   	protected function _prepareTpl(){
       		$this->_tpl->assign('foo','bar');
    	}
 }

Le template correspondant dans le répertoire templates :

zone_banniere.tpl

 <p>Ici banniere</p>

Le template principal dans le répertoire templates:

accueil.tpl

 <div id="banniere"> {$BANNIERE} </div>

 <h1>Bienvenue sur le site du Centre Socio-Culturel</h1>
 <h2>de Villeneuve de Berg</h2>
 <p>Ouverture prochaine du site</p>

Le controleur dans le répertoire controllers :

default.classic.php

 <?php
 /**
 * @package
 * @subpackage 
 * @author
 * @copyright
 * @link
 * @licence  http://www.gnu.org/licenses/gpl.html GNU General Public Licence, see LICENCE file
 */

 class defaultCtrl extends jController {
    /**
    *
    */
    function index() {
        $rep = $this->getResponse('html');
        $rep->title = 'Centre Socio-Culturel de Villeneuve de Berg';
        $rep->bodyTpl = 'accueil';
	$rep->body->assignZone('BANNIERE', 'banniere');
        return $rep;
    }
 }
 ?>

Si vous avez une idée... ça peut venir de ma configuration avec des liens symboliques ? Bon je réponds à cette dernière question, j'ai mis le mêmes fichiers dans un sous domaine (pas besoin de liens symboliques) et j'ai la même erreur...

Merci d'avance

Adeline


Adeline

  [Opened] Re: Zone

Reply #6 Posted by laurentj on 06/28/2007 15:12

Là franchement, il ne me reste qu'une idée à ton problème : est ce que dans ton fichier de zone, il y a bien les tags <?php et ?> ?

Si ça ne vient pas de ça, je ne sais pas d'où vient le problème :-(

  [Opened] Re: Zone

Reply #7 Posted by Didou on 06/28/2007 16:09

J'ai honte la franchement, tu avais raison, j'avais fais un copié collé depuis le tuto et j'ai donc fait un fichier .php sans tags....

La solution :

banniere.zone.php

 <?php
 class banniereZone extends jZone {

 protected $_tplname='zone_banniere';

  	protected function _prepareTpl(){
      		$this->_tpl->assign('foo','bar');
   	}
 }
 ?>

Et ça marche... dsl du dérangement pour une si peite chose :(

Peut être rajouter dans le tuto les tags pour les étourdis comme moi ;)

Merci Adeline


Adeline

 
Page
  1. Re: Zone