Fork me on GitHub

Rapport de message :*
 

Re: probleme technique rencontre sous xoop

Titre du sujet : Re: probleme technique rencontre sous xoop
par LOKI2006 sur 13/02/2009 14:55:52

Ce n'est pas la bonne version du viewforum.php que tu as copié/collé ici.

Dans newbb 2.01 (celle qui est installée sur ton site), la ligne 87 est:

$xoopsTpl->assign("forum_id"$forum->getVar('forum_id'));


Le code signifie qu'à ce niveau là du script, pour une raison ou pour une autre, l'objet $forum n'est plus un objet.

Comme l'objet est utilisé un peu plus haut (ligne 77 et ligne 80) sans aucun message d'erreur, cela veut dire que l'objet est "détruit" ou "délinéarisé" quelque part entre la ligne 80 et la ligne 87.

cookie should be handled before calling XOOPS_ROOT_PATH."/header.php"otherwise it won't work for cache
$forum_lastview = newbb_getcookie('
LF',true);
$forum_lastview[$forum->getVar('
forum_id')] = time();
newbb_setcookie("LF", $forum_lastview);

$xoops_pagetitle = $xoopsModule->getVar('
name'). ' ' .$forum->getVar('forum_name');

$xoopsOption['
template_main'] = 'newbb_viewforum.html';
include XOOPS_ROOT_PATH."/header.php";

$xoopsTpl->assign('
xoops_module_header', $newbb_module_header);
$xoopsTpl->assign('
xoops_pagetitle', $xoops_pagetitle);
$xoopsTpl->assign("forum_id", $forum->getVar('
forum_id'));


Entre la ligne 80 et la ligne 87, le seul évènement notable, c'est l'include de header.php.

Il te suffit donc de sauvegarder l'objet juste avant et de le restaurer juste après l'include.

Par exemple comme ceci:

$sav_forum serialize($forum);  //sauvegarde objet $forum
include XOOPS_ROOT_PATH."/header.php";
$forum unserialize($sav_forum); //restauration objet $forum


Et le tour est joué. Bon, d'accord, ça n'explique pas vraiment la cause du problème, mais ça le contourne efficacement
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

84 Personne(s) en ligne (68 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 84 | Plus ...