Fork me on GitHub






Du php dans le theme
Aspirant
Inscrit: 12/04/2003 10:18
De Pas-de-Calais
Messages: 45
Bonjour à tous, depuis le temps...

J'ai un petit souci : je voudrais afficher aleatoirement une photo dans mon header (voir ici : http://www.cyclo62.com , c'est la patie droite, en fond de cellulle, avec un ephoto d'arras et d'un champs).

Pour cela, j'ai ecris un petit bout de code php, qui remmplacera le "logo2.jpg" exsitant par le nom du fichier :


<?
$pho=rand(1,3);
switch (
$pho) {
case 
1:
   echo 
"photo1.jpg";
   break;
case 
2:
   echo 
"photo2.jpg";
   break;
case 
3:
   echo 
"photo3.jpg";
   break;
}
?>


... mais je ne vois pa comment faire fonctionner ce script dans le fichier theme.html, car si je le copie-colle, il n'est pas execute, mais simplement insere dans le fichier, iden si j'utilise la syntaxe xoops: <{include file="obscene_v3_3c/photoaletoire.php"}>

Une idée ?

Merci d'avance !

Posté le : 25/02/2006 11:49

[i][color=CC00FF]Vous aimez le vèlo ? Visitez www.cyclo62.com
[url=http://ozmoz.celeonet.fr]Vous hèsitez entre ècole de commerce ou d'ingènieur, choisissez les deux, choisissez l'ITEEM...[/url
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Newbie
Inscrit: 27/10/2005 00:33
Messages: 15
Apparemment, les idées ne se bousculent pas ! Moi, je ne serais d'aucune aide, je n'y connait rien en php, mais le résultat m'intéresse. Au moins, ça fera remonter le sujet !
Bon, alors, quelqu'un aurait une piste ?
:xfsuper:

Posté le : 25/02/2006 15:06
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Supporter Xoops
Inscrit: 02/10/2004 14:09
Messages: 370
Essaye ceci,
{php}
$pho=rand(1,3);
switch (
$pho) {
case 
1:
   echo 
"photo1.jpg";
   break;
case 
2:
   echo 
"photo2.jpg";
   break;
case 
3:
   echo 
"photo3.jpg";
   break;
}
{/
php}


Maintenant voici sur quoi je me suis appuyé : http://smarty.php.net/manual/fr/language.function.php.php

Posté le : 25/02/2006 15:20
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Semi pro
Inscrit: 05/04/2003 19:03
Messages: 1645
Bonjour,

est-ce que ceci fonctionne ?

dans le fichier theme.html, ajouter:
<{include_php file="$xoops_rootpath/themes/obscene_v3_3c/photoaletoire.php"}>


Sinon, tu peux aussi hacker le module PictureURL...

@+

EDIT Fooups: ça, c'est de la synchronisation de réponses d'écureuils

Posté le : 25/02/2006 15:20
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
Bonjour,

Il existe le module "aleatoire" qui execute ce que tu désires, de nombreux thèmes également le font ; je t'invite donc à étudier le code de ceux-ci.

Des réponses dans le forum existe également, si j'ai bonne mémoire, notre ami patz en est devenu le spécialiste.

A +

Posté le : 25/02/2006 15:21

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Régulier
Inscrit: 28/10/2005 17:17
De Switzerland
Messages: 350
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

Posté le : 25/02/2006 15:28
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Aspirant
Inscrit: 12/04/2003 10:18
De Pas-de-Calais
Messages: 45
Merci pour toutes vos reponses !!!

Je teste ça se soir, et je vous tiens au courant.

Posté le : 25/02/2006 20:12

[i][color=CC00FF]Vous aimez le vèlo ? Visitez www.cyclo62.com
[url=http://ozmoz.celeonet.fr]Vous hèsitez entre ècole de commerce ou d'ingènieur, choisissez les deux, choisissez l'ITEEM...[/url
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Aspirant
Inscrit: 12/04/2003 10:18
De Pas-de-Calais
Messages: 45
Docn voici mon retour :

La première solution ne fonctionne pas, la balise {php} ne semble pas reconue, et le code n'est pas executé, mais suimplement convertit en texte.

La seconde solution ne fonctionne pas non plus et fait planter la page

La troisème solution fonctionne a merveille (en modifiant header avec une nouvelle variable smarty)

Merci pour ce mini totu personnalisé, qui m'aura permis de decouvrir le fonctionnement de smarty.

Posté le : 25/02/2006 21:37

[i][color=CC00FF]Vous aimez le vèlo ? Visitez www.cyclo62.com
[url=http://ozmoz.celeonet.fr]Vous hèsitez entre ècole de commerce ou d'ingènieur, choisissez les deux, choisissez l'ITEEM...[/url
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Supporter Xoops
Inscrit: 02/10/2004 14:09
Messages: 370
Si "{php}...{/php}" ne passer pas, fallait peut être faire comme pour les templates de xoops. C'est à dire : "<{php}>...<{/php}>"

Du moment que t'as résolu ton problème, c'est le principal.

Posté le : 25/02/2006 22:54
Partager Twitter Partagez cette article sur GG+
Re: Du php dans le theme
Newbie
Inscrit: 01/02/2006 16:39
De Madrid
Messages: 7
Citation :

jbboschung a écrit:
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.


Aucun navigateur sur terre n'a jamais interprété le code php. Le php ne sort pas du serveur web. C'est le module php du serveur qui est chargé de le traiter.

D'autre part, on peut très bien forcer les .html à se faire passer à la moulinette php (ou même les .jpg, les .gif ...) en tweakant le httpd.conf. C'est malheureusement une technique trop utilisée par les "sites vérolés" destinés a exploiter une faille de votre machine/propager des virus. Et c'est aussi pas très propre et source de plantages :D

Sinon très bon thread :) J'vais essayer tout de suite !
FenX

Posté le : 01/03/2006 10:13

--
Sylvain
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

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