opensidex et cookie
Publi� par kiko26 le 27 mai 2007 à 13:15

Bonsoir à tous

voila, je cherchais depuis un moment déjà comment mémoriser dans un cookie les panneaux ouverts et fermés (opensidex), lorsque l'utilisateur rouvre son site en php-fusion. Comme je n'ai rien trouvé de concluant, je l'ai fait moi-même. Cela fonctionne bien et donc je donne à la communauté ce que j'ai fait.
Il est tout à fait possible d'améliorer ce que j'ai fait, alors n'hésitez pas.
J'ai travaillé uniquement sur le thème shunt, alors il est ossible que toutes mes modifs ne correspondent pas à la lettre aux autres thèmes.

Étape 1: Ouvrir le theme.php de votre theme.

1.1 Rechercher :
function opensidex($title,$open="on") {

1.1 Remplacer par :
function opensidex($title) {

1.1 On a donc enlevé :
,$open="on"

1.2 Juste après :
function opensidex($title) {

1.2 Rajouter :
$titleAFF = str_replace("_", " ", $title);

1.3 Juste avant :
$box_img = $open == "on" ? "off" : "on";

1.3 Rajouter :
if (isset($_COOKIE["fusion_box_".$title])) {
if ($_COOKIE["fusion_box_".$title] == 'nono') {
$open = "off";
} else {
$open = "on";
}
} else {
$open = "on";
}

1.4a Rechercher : (cas 1 : thème Milestone, thème conforme)
echo "<td class='panel-main'>$title</td>";

1.4a Remplacer par :
echo "<td class='panel-main'>$titleAFF</td>";

1.4a On a donc rajouté :
AFF

1.4b Rechercher : (cas 2 : thème Shunt, thème non conforme)
echo "><font class='block-title'>$title</font>";

1.4b Remplacer par :
echo "><font class='block-title'>$titleAFF</font>";

1.4b On a donc rajouté :
AFF

Étape 2: Ouvrir includes/jscript.js

2.1 Rechercher la fonction suivante, pour y faire 2 modifs :
function flipBox(who) {

2.2 Juste après :
var tmp;

2.2 Ajouter :
date=new Date;
date.setFullYear(date.getFullYear()+1); // expire dans un an

2.3 Juste avant :
} else {

2.3 Ajouter :
document.cookie="fusion_box_"+who+"="+escape("nono")+"; expires="+date.toGMTString();

2.4 Juste avant : (c'est la fin de la fonction)
}
}

2.4 Ajouter :
document.cookie="fusion_box_"+who+"="+escape("yeye")+"; expires="+date.toGMTString();

Étape 3: Modif des fichiers xxxxxxx_panel.php

Pour chaque panneau que l'on veut pouvoir fermer/ouvrir, il faut ouvrir le fichier xxxxxxx_panel.php

exemple :
infusions\popular_downloads_panel\popular_downloads_panel.php
infusions\the_kroax_random_movie_panel\the_kroax_random_movie_panel.php

3.1 Rechercher toutes les occurences de :
openside(

3.1 Remplacer par :
opensidex(

3.2 Rechercher toutes les occurences de :
closeside(

3.2 Remplacer par :
closesidex(

Étape 4: Remplacer tous les espaces par des _ dans les noms de panneaux

exemple :
infusions\popular_downloads_panel\popular_downloads_panel.php

Chaque openside remplacé par opensidex, se termine par un numéro de locale.

Pour popular_downloads_panel.php, cela donne :
opensidex($locale['PD_001']);

Il faut donc retrouver le texte associé à PD_001.
En général, il se trouve dans infusions\LePanneauQueJeModifie\locale\french.php
Ce qui donne dans notre exemple :
infusions\popular_downloads_panel\locale\french.php

4.1 Ouvrir infusions\popular_downloads_panel\locale\french.php

4.2 Rechercher la ligne qui contient PD_001 :
La voici :
$locale['PD_001'] = "Derniers téléchargements";

4.2 Remplacer les espaces par _ :
$locale['PD_001'] = "Derniers_téléchargements";

Étape 5: Modifier les noms de panneaux afin qu'ils ne contiennent plus d'espace :

5.1 Ouvrir le site fait en php-fusion
5.2 aller sur Panneau Administration
5.3 aller sur Configuration du Site
5.4 aller sur Panneaux
5.5 Éditer le panneau associé à popular_downloads_panel, chez moi il s'appelle :
Derniers téléchargements
5.6 Remplacer l'espace par _ :
Derniers_téléchargements

Étape 6: Tester
Ouvrir le site
Fermer un panneau
Fermer le site
Ouvrir le site
Le panneau doit être fermé. Si c'est le cas, ma méthode est bonne.
En tout cas elle fonctionne sur mon site http://www.meeting-gamstat-valence.com , dans les 2 thèmes disponibles : shunt (public/membre) et milestone (superadmin).



Pour finir :
Pour chaque panneau que l'on veut pouvoir fermer/ouvrir, répéter les étapes 3, 4 et 5.
Bon courage.