Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Class TPL de FSB2

Flamme ardente
Avatar de Dusk
  • Age : 29 ans
  • Messages : 293
  • Inscrit : 16 Février 2006
Message édité 1 fois, dernière édition par Dusk, 16 Janvier 2008, 23:50     Lien vers ce message 16 Janvier 2008, 23:49
J'essaie d'utiliser le nouveau fichier class_tpl.php créer par Genova pour gérer plusieurs templates dans la futur version de mon site.

voilà le code :
$tpl = new Tpl($tpl_files);
$tpl->prepare_file('header');
$tpl->set_file('header.html','header');
$tpl->set_vars(
    array(
    'SITE_NAME'        =>     $name_site,
    'L_INDEX'          =>    ROOTSITE,
    'IMG_LOGO'         =>    $data_tpl['img_logo'],
    'NAME_TPL'        =>    $name_tpl,
    ),'header');

$tpl->parse('header');



mais voilà j'ai une page blanche qui s'affiche sans une ligne de code html :\

Est ce que quelqu'un aurait une idée?
Merci d'avance

PS: j'ai remarqué une erreur dans le wiki pour cette class au sujet de la méthode set_file: les paramètres ont été inversé.

Edit: je ne sais pas si le sujet est au bon endroit donc n'hesitez pas à le déplacé au cas ou ;)
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 16 Janvier 2008, 23:58
Salut,
pour commencer utilises tu le SDK ? Qu'y a t'il avant dans ta page ?


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flamme ardente
Avatar de Dusk
  • Age : 29 ans
  • Messages : 293
  • Inscrit : 16 Février 2006
Message édité 1 fois, dernière édition par Dusk, 17 Janvier 2008, 0:25     Lien vers ce message 17 Janvier 2008, 0:23
J'utilise pas le SDK pour l'instant mais il est déclaré pour une utilisation futur.

j'ai copié le fichier class_tpl.php dans mon répertoire class.

avant il y a ça :

include("config/config.php");
/* Class */
require('includes/class/class_tpl.php');
include("includes/class/class_sql.php");

/* Extension PHP */
define('PHPEXT', substr(strrchr($_SERVER['PHP_SELF'],'.'), 1));
/* connexion à la base de donnée */
$SQL_CONFIG = new DB();

/* sql pour récuperer les données de config */ 
$query_config  = 'select * from ' . SQL_PREFIX . 'CONFIG';
$id_sql        = $SQL_CONFIG -> query($query_config);
$row           = $SQL_CONFIG -> next_record();

//for($i=0;$i<=$num_row;$i++){
while ($row)	{
	if ($row['CO_ZONE'] == 'name_site')
		$name_site = $row['CO_VAL'];
	
	if ($row['CO_ZONE'] == 'forum_sdk')
		$forum_sdk = $row['CO_VAL'];
	
	if ($row['CO_ZONE'] == 'theme')
		$name_tpl = $row['CO_VAL'];
	$row = $SQL_CONFIG -> next_record();
}

$SQL_CONFIG -> clean_results();
// Récupération config dans le fichier config
define('ROOT', $forum_sdk);
define('ROOTSITE','');

$tpl_dir    = 'tpl/' . $name_tpl . '/';
$tpl_files  = $tpl_dir . 'files/';
$tpl_data   = $tpl_dir . "data_tpl." . PHPEXT;
include($tpl_data);
$tpl = new Tpl($tpl_files);

$tpl->prepare_file('header');
$tpl->set_file('header.html','header');
$tpl->set_vars(
	array(
	'SITE_NAME'		=> 	$name_site,
	'L_INDEX'  		=>	ROOTSITE,
	'IMG_LOGO'  	=>	$data_tpl['img_logo'],
	'NAME_TPL'		=>	$name_tpl,
	),'header');

$tpl->parse('header');



j'utilisais avant l'ancienne class tpl de FSB1.
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 17 Janvier 2008, 1:28
Chez moi ça marche très bien, mais j'ai testé uniquement avec le SDK car le SDK inclu tout ce qu'il faut.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1552
  • Inscrit : 28 Septembre 2006
Message édité 1 fois, dernière édition par Talus, 17 Janvier 2008, 2:04     Lien vers ce message 17 Janvier 2008, 2:04
Me semble que maintenant la class TPL de FSB2 a pas mal de dépendances avec le reste du script FSB2 (le cache, le mode "debug" pour afficher ou non le contenu, etc). Non ?


 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 17 Janvier 2008, 2:06
Oui, mais le cache est quelque chose d'indispensable quand on utilise un moteur de template.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flamme ardente
Avatar de Dusk
  • Age : 29 ans
  • Messages : 293
  • Inscrit : 16 Février 2006
  Lien vers ce message 17 Janvier 2008, 10:13
Arf donc on peut plus utiliser la class_tpl de FSB2 comme celle de FSB1 ???
 
Etoile
Avatar de BlackJowy
  • Age : 22 ans
  • Messages : 3477
  • Inscrit : 01 Mars 2007
  Lien vers ce message 17 Janvier 2008, 10:30
Bah tu peux l'utiliser avec quelques classes supplémentaires qui ne t'apportent que plus de performances :D


"It's backup day today so I'm pissed off. Being the BOFH, however, does have it's advantages. I reassign null to be the tape device — it's so much more economical on my time as I don't have to keep getting up to change tapes every 5 minutes. And it speeds up backups too, so it can't be all bad can it? Of course not." S.Travaglia

 
Flamme ardente
Avatar de Dusk
  • Age : 29 ans
  • Messages : 293
  • Inscrit : 16 Février 2006
Message édité 2 fois, dernière édition par Dusk, 17 Janvier 2008, 10:54     Lien vers ce message 17 Janvier 2008, 10:50
Donc mon code devient celui-ci :


include("config/config.php");
/* Class SQL*/
include("includes/class/class_sql.php");

/* Extension PHP */
define('PHPEXT', substr(strrchr($_SERVER['PHP_SELF'],'.'), 1));
/* connexion à la base de donnée */
$SQL_CONFIG = new DB();

/* sql pour récuperer les données de config */ 
$query_config  = 'select * from ' . SQL_PRE . 'CONFIG';
$id_sql        = $SQL_CONFIG -> query($query_config);
$row           = $SQL_CONFIG -> next_record();

//for($i=0;$i<=$num_row;$i++){
while ($row)	{
	if ($row['CO_ZONE'] == 'name_site')
		$name_site = $row['CO_VAL'];
	
	if ($row['CO_ZONE'] == 'forum')
		$forum = $row['CO_VAL'];

	if ($row['CO_ZONE'] == 'sdk')
		$sdk = $row['CO_VAL'];
	
	if ($row['CO_ZONE'] == 'theme')
		$name_tpl = $row['CO_VAL'];
	$row = $SQL_CONFIG -> next_record();
}

$SQL_CONFIG -> clean_results();
// Récupération config dans le fichier config
define('ROOT', $forum);
define('ROOTSITE','');

$forum_sdk = $forum . $sdk;

include($forum_sdk);
require($forum . 'main/class/' . class_tpl.php) 


$tpl_dir    = 'tpl/' . $name_tpl . '/';
$tpl_files  = $tpl_dir . 'files/';
$tpl_data   = $tpl_dir . "data_tpl." . PHPEXT;
include($tpl_data);
$tpl = new Tpl($tpl_files);

$tpl->prepare_file('header');
$tpl->set_file('header.html','header');
$tpl->set_vars(
	array(
	'SITE_NAME'	=> 	$name_site,
	'L_INDEX'  	=>	ROOTSITE,
	'IMG_LOGO'  	=>	$data_tpl['img_logo'],
	'NAME_TPL'	=>	$name_tpl,
	),'header');

$tpl->parse('header');


j'ai rajouté l'include du sdk.php et changer le répertoire de la class tpl.

Par contre je peux pas testé car je suis au taff et que j'ai pas allumé mon pc chez moi mouarrff

Edit :
Là mon site sera totalement lié à FSB :
- Avantage de FSB2
- Incovénient : perte de portabilité (en même temps c'est minime :p)

je pense que si ce morceaux de code fonctionne je vais faire comme cela ^^
 
Volcan
Avatar de Talus
  • Age : 20 ans
  • Messages : 1552
  • Inscrit : 28 Septembre 2006
  Lien vers ce message 17 Janvier 2008, 13:17
Oui, mais le cache est quelque chose d'indispensable quand on utilise un moteur de template.


Ce que je disais, c'est qu'elle est dépendante d'autres classes de FSB2. Par exemple, le cache de FSB2.... Bien entendu, une bonne class de TPL doit maintenant fonctionner avec un cache +/- élevé... :p


 
Flamme ardente
Avatar de Dusk
  • Age : 29 ans
  • Messages : 293
  • Inscrit : 16 Février 2006
Message édité 2 fois, dernière édition par Dusk, 17 Janvier 2008, 23:44     Lien vers ce message 17 Janvier 2008, 22:44
Bon là j'arrive à avoir quelque chose dans le source de la page mais aucune variable remplacé :\

$tpl->prepare_file('header');
$tpl->set_file('header.html','header');
$tpl->set_vars(
	array(
	'SITE_NAME'	=> 	$name_site,
	'L_INDEX'  	=>	ROOTSITE,
	'IMG_LOGO'  	=>	$data_tpl['img_logo'],
	'NAME_TPL'	=>	$name_tpl,
	),'header');

$tpl->parse('header');
 
Flamme ardente
Avatar de Dusk
  • Age : 29 ans
  • Messages : 293
  • Inscrit : 16 Février 2006
  Lien vers ce message 18 Janvier 2008, 1:02
Rhaaaaaaaaaaa j'ai réussi

suffisait de bien lire les fonctions SDK

	/*
	** Change le chemin du thème, afin de pouvoir utiliser le système de template en utilisant un thème
	** indépendant à celui du forum
	** -----
	** $dir ::	Nouveau chemin vers le thème
	*/
	public function template_path($dir)
	{
		Fsb::$tpl->tpl_dir = $dir;
	}



Merci à Dieu Génova d'avoir bien commenté tout ça ^^
 
Répondre


.