Categories > TinyButStrong general (FR) >

Page vide et sous templates via onload avec PHP 5

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Jaigoff
Date: 2006-07-31
Time: 15:03

Page vide et sous templates via onload avec PHP 5

Bonjour, j'ai un problème qui n'arrive qu'avec PHP5:

Je sous utilisé un sous template pour cela voici le code des pages:

test.htm:
<html>

<head>
       <title>Title here!</title>
</head>
<body>
[onload;script=test2.php;subtpl]
</body>
</html>

test.php:
<?php
include("../include/config/tbs_class.php");


$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('test.htm') ;

$message = 'Hello' ;

$TBS->Show() ;

?>

test2.htm:
<html>

<head>
       <title></title>
</head>
<body>
[var.message2]
</body>
</html>

test2.php:
<?php
include("../include/config/tbs_class.php");


$TBS = new clsTinyButStrong ;


$TBS->LoadTemplate('test2.htm') ;

$message2 = 'test2htm' ;

$TBS->Show() ;

?>

Pour lancer j'affiche la page test.php et cela m'affiche une page vide (sauf si je suis en php 4). J'ai cherché dans le forum et j'ai essayé de remplacer $TBS=new clsTinyButStrong par $TBS=$this dans test2.php, sans résultat.

Je ne vois pas d'où peux venir le problème surtout que ça fonctionne nickel sous php 4...
By: Skrol29
Date: 2006-07-31
Time: 15:16

Re: Page vide et sous templates via onload avec PHP 5

Salut,

Ce qui ne va pas c'est que tu fais un double inlude() de la classe TBS.
Tu ne vois pas le message d'erreur de PHP car il sont détournés par le mode sous-modèle de TBS.

En mode sous-modèle créer une nouvelle instance de TBS ne donnera jamais le résultat attendu car la nouvelle instance est bien sûr indépendante du mode sous-modèle.

Voici ce qui est conseillé pour la récupération de la varibale TBS dans un sous-script :
if (isset($this)) {
  $TBS =& $this;
} else {
  include_once("../include/config/tbs_class.php");
  $TBS = new clsTinyButStrong ;
}

...

$TBS->LoadTemplate('test2.htm') ;
$message2 = 'test2htm' ;
$TBS->Show() ;

Ainsi ton sous-script marchera aussi bien en mode sous-modèle pour la production qu'en mode modèle normal pour le dév.