Help!
:: ::
PHP Fusion France

Navigation

Google

Google

Téléchargements

Top 10 des Liens

Dernières connexions




Chargement...



opensidex et cookie

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.

Commentaires

#1 | Quartzkyte le 30 May 2007 à 19:11
Bon à savoir, merci... Grin
#2 | itsmi le 31 May 2007 à 08:59
Alors là je dis bravo !
#3 | itsmi le 08 June 2007 à 19:34
J'aimerais assez le voir fonctionner pour le plaisir ! la mise en place est assez contraignante et j'ai renoncé pour le moment
#4 | itsmi le 09 June 2007 à 13:03
. je pense qu'il vaut mieux modifier d'abord tous les theme.php surtout si on en utilise plusieurs, avant de toucher au JS

. il semble qu'on puisse choisir overt ou fermer par défaut en mettant on OU off ici *:

1.3 Rajouter :

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

Enfin, ce qui serait vraiment parfait ce serait de pouvoir choisir on ou off par défaut ET par panel.

Pour 2 raisons : ne pas surprendre les utilisateurs et surtout considérer ceux qui désactivent les cookies
#5 | itsmi le 09 June 2007 à 14:21
Il semble que tous les navigateurs ne prennent pas en compte même en acceptant les cookies. Camino sur mac par exemple.

Publier un Commentaire

Connectez-vous pour publier un Commentaire.

Evaluations

L'évalutation n'est disponible que pour les membres.

Connectez-vous ou enregistrez-vous pour voter.

Aucune évaluation publiée.

Top!