Categories > TinyButStrong general (FR) >

onload et var

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Lolo
Date: 2006-02-03
Time: 06:32

onload et var

Bonjour,

Mon problème est un peu complexe...

Dans ma classe se chargeant de l'affichage de mes pages, j'ai ceci:

$tbs = new clsTinyButStrong();
$tbs -> ObjectRef = &$this;
$tbs -> LoadTemplate($this->template_file);
$tbs -> Show();

Ayant dans ma classe un tableau 'page_infos' qui contient une clef 'content' qui contient le contenu de ma page (issu d'une base de données). Ainsi si je met dans mon modèle

[var.~page_infos.content]

Cela fonctionne.

Maintenant le contenu de ma page "peu" être un "pointeur" vers un script php qq chose comme:

[var.~empty;script=monscript.php;subtpl]

Pour que cela fonction il faut que

(empty est une variable vide)

Pour que cla fonctionne il faudrait que mon ce code ,contenu dans mon tableau page_infos, soit placé avant le parsing de ma template. Donc je mets:

[onload; var.~page_infos.content]

Et là, [var.~page_infos.content] est remplacé, mais par rien, même si page_infos['content'] contient une simple chaîne....

Y a t il une solution a mon problème?

Cordialement
By: Skrol29
Date: 2006-02-03
Time: 10:09

Re: onload et var

Salut,

Tout d'abord, si tu veux charger un template entier venant d'un variable, tu n'as pas besoin de faire un LoadTemplate(). Tu peux faire comme cela:
$TBS->Source = $this->page_infos['content'];
$TBS->MergeSpecial('onload'); // ça c'est pour s'assurer que les [onload] soient traités

Ton champ [onload] était bien traité mais en revanche, il n'avait pas de paramètre. Pour forcer une variable PHP à s'afficher au chargement, on peut utiliser l'astuce suivante :
[onload;if 1=1;then [var.~page_infos.content]]
By: Lolo
Date: 2006-02-05
Time: 23:53

Re: onload et var

Merci

[onload;if 1=1;then [var.~page_infos.content]]

Fonctionne bien mais dans un de mes contenus de pages, j'ai
[var.~empty;script=news.php;subtpl]

Empty est une variable vide de ma classe afin de pouvoir faire fonctionner le paramètre script. Mon soucit est que ce dernier n'est pas parsé... Ce doit être du au fait que dans le code j'ai

[var.~empty;script=news.php;subtpl]

j'ai essayé:

[onload;if 1=1;then [var.~page_infos.content; htmlconv=no]]
et
[onload;if 1=1;then [var.~page_infos.content]; htmlconv=no]

Mais rien y fait...

Y'a t il un moyen d'arriver à mes fins?

Merci
By: Lolo
Date: 2006-02-05
Time: 23:54

Re: onload et var

j'oubliais mon cod PHP

$this->empty = ''
$tbs = new clsTinyButStrong();
$tbs -> ObjectRef = &$this;
$tbs -> LoadTemplate($this->template_file);
$tbs -> Show();
By: Lolo
Date: 2006-02-06
Time: 00:03

Re: onload et var

Autant pour moi c'est protect qu'il me fallait!!!

[onload;if 1=1;then [var.~page_infos.content; protect=no]]

Merci pour tout!!!
By: Skrol29
Date: 2006-02-06
Time: 00:18

Re: onload et var

Tu peux remplacer le :
[var.~empty;script=news.php;subtpl]

Par :
[onshow;script=news.php;subtpl]