Bonjour,
C'est normal que cela ne fonctionne pas, car le fichier du thème est un fichier html (extension html -> theme.html) et donc bien que ton code soit du PHP et inclut dans une balise php <? ?>, ce code ne peut être interprété par le navigateur.
Par contre, en utilisant le principe des templates smarty, principe utilisé dans Xoops et donc dans le fichier du thème, voici comment procéder :
Dans ton fichier theme.html :
<body>
<table cellspacing="0">
<tr id="header">
<td id="headerlogo"><a href="<{$xoops_url}>/"><img src="<{$xoops_imageurl}>[color=FF0000]logo.gif[/color]" width="150" height="80" alt="" /></a></td>
<td id="headerbanner"><{$xoops_banner}></td>
</tr>
...
- il faut remplacer le nom du logo par une balise smarty du type <{$xoops_logo}>, comme ceci :
<body>
<table cellspacing="0">
<tr id="header">
<td id="headerlogo"><a href="<{$xoops_url}>/"><img src="<{$xoops_imageurl}>[color=FF0000]<{$xoops_logo}>[/color]" width="150" height="80" alt="" /></a></td>
<td id="headerbanner"><{$xoops_banner}></td>
</tr>
...
Ensuite, il te faut modifier le fichier PHP qui va envoyer les données dans cette balise smarty, donc le fichier header.php (racine du site)
Je viens de tester en vitesse et ça fonctionne, donc à la fin de ton fichier tu ajoute ceci :
if (!isset($xoopsOption['template_main'])) {
// new themes using Smarty does not have old functions that are required in old modules, so include them now
include XOOPS_ROOT_PATH.'/include/old_theme_functions.php';
// need this also
$xoopsTheme['thename'] = $xoopsConfig['theme_set'];
ob_start();
}
}
[b]////// TEST Affichage logo aléatoire
$pho=rand(1,3);
switch ($pho) {
case 1:
[color=FF0000]$xoopsTpl->assign('xoops_logo', "photo1.jpg")[/color];
break;
case 2:
[color=FF0000]$xoopsTpl->assign('xoops_logo', "photo2.jpg")[/color];
break;
case 3:
[color=FF0000]$xoopsTpl->assign('xoops_logo', "photo3.jpg")[/color];
break;[/b]
}
?>
et normalement ça doit fonctionner.
Je précise que je n'ai pas testé avec des images, mais je me suis contenter d'afficher aléatoirement les valeurs : "Photo1.jpg", "Photo2.jpg", ... et ça a focntionné, donc ça devrait aussi marcher avec des images.
Tu peux naturellement nommé ta balise smarty autrement comme <{mon_logo}>, ... mais il faut mettre le même nom dans la fonction $xoopsTpl-assign...
Tiens nous au courant et bonne continuation
Edit: 4 réponses en 8 minutes, joli tout ça