Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2011, 13h58   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Par défaut Changer la css automatiquement

Bonjour à tous!

J'ai ma petite question à vous poser. J'avais trouvé la réponse il y a un moment, mais impossible d'y remettre la main dessus.
Je souhaiterais que la CSS de mon site (fait en grande partie avec Wordpress) change automatiquement toutes les 3 visites par exemple.
J'imagine bien qu'il faut un code php (correct?), et l'image de mon fond d'écran est appelée dans ma CSS.
Il me semble que ce n'est pas très compliqué à mettre en place, mais j'ai oublié comment faire! J'ai cherché sur le forum et un peu partout sur le web, mais ma requête ne doit pas être assez bien formulée: je ne trouve rien....

Si vous pouvez m'aider, j'en serai ravie!

thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 08h53   #2
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Bonjour,

Mhh avec un cookie ça devrait se faire...
En pondant un bout de code comme ça ca devrait te donner une piste :

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// Durée de vie de mon cookie, presque 6 mois par exemple :
$expire = (6*30*24*3600);
 
// Je zieute combien de fois mon visiteur est venu, s'il a un "theme" css défini :
if(isset($_COOKIE['nb_visite'])){ 
$nb_visite = $_COOKIE['nb_visite'];
$themecss = $_COOKIE['themecss'];
} else {
// S'il n'est jamais venu je lui en assigne un de base :	
$nb_visite = 0;
$themecss= 'themecss1';
setcookie("themecss","themecss1", time()+$expire, "/");
}
$nb_visite=($nb_visite+1);
setcookie("nb_visite",$nb_visite, time()+$expire, "/");
// Toutes les 3 visites tu changes le thème :
if ($nb_visite%3==0) { 
// tu insères ici un code pour déterminer ton nouveau thème css
setcookie("themecss",$monnouveautheme, time()+$expire, "/");
$themecss=$monnouveautheme;
}
?>
Tu n'auras plus qu'à appeler ton thème css en fonction de cette variable :
Code :
<link rel="stylesheet" type="text/css" media="screen,projection" href="<?php echo $themecss; ?>">
Une idée comme ça...
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 13h15   #3
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 618
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 618
Points : 6 238
Points : 6 238
Bonjour

C'est exact, il faut un langage coté serveur comme PHP, voici un tutoriel : http://css4design.developpez.com/tut...ique-avec-php/.

Sinon on peut aussi modifier des styles avec JavaScript, mais je ne maitrises pas assez ce langage pour t'en dire plus...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 14h16   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
waouw, ça a l'air super! Merci beaucoup.
Je vais faire des tests et je vous tiendrai au courant.
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 15h48   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Bien, évidemment j'ai encore des questions....
En ce qui concerne le cookie, je pense que ça va. Là où je ne comprends pas bien, c'est au niveau de la CSS.

$themecss= 'themecss1';
Est-ce que 'themecss1' correspond au nom de mon fichier css?

$themecss=$monnouveautheme;
Là j'imagine que je dois préciser à quoi correspond $monnouveautheme, en faisant par exemple:
$monnouveautheme='themecss2'

C'est bien ça?
Ce sont des questions de débutants...
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 15h50   #6
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 773
Points : 2 332
Points : 2 332
Citation:
Envoyé par thecaco Voir le message
Bien, évidemment j'ai encore des questions....
En ce qui concerne le cookie, je pense que ça va. Là où je ne comprends pas bien, c'est au niveau de la CSS.

$themecss= 'themecss1';
Est-ce que 'themecss1' correspond au nom de mon fichier css?

$themecss=$monnouveautheme;
Là j'imagine que je dois préciser à quoi correspond $monnouveautheme, en faisant par exemple:
$monnouveautheme='themecss2'

C'est bien ça?
Ce sont des questions de débutants...
Oui ces variables correspondent à tes différentes css
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h25   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Ça marche! Merci beaucoup!
Voici le code que j'ai mis:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$monnouveautheme='style2.css';
// Durée de vie de mon cookie, presque 6 mois par exemple :
$expire = (6*30*24*3600);
 
// Je zieute combien de fois mon visiteur est venu, s'il a un "theme" css défini :
if(isset($_COOKIE['nb_visite'])){ 
$nb_visite = $_COOKIE['nb_visite'];
$themecss = $_COOKIE['themecss'];
} else {
// S'il n'est jamais venu je lui en assigne un de base :	
$nb_visite = 0;
$themecss= 'stationweb.css';
setcookie("themecss","style2.css", time()+$expire, "/");
}
$nb_visite=($nb_visite+1);
setcookie("nb_visite",$nb_visite, time()+$expire, "/");
// Toutes les 3 visites tu changes le thème :
if ($nb_visite==3) { 
// tu insères ici un code pour déterminer ton nouveau thème css
setcookie("themecss",$monnouveautheme, time()+$expire, "/");
$themecss=$monnouveautheme;
}
?>
Il me reste juste une petite question.
- Ce code permet-il de faire une boucle? (il me semble que non). J'aimerais qu'on puisse obtenir cela: 1ère visite: style1.css / 3ème visite: style2.css / 6ème visite: style1.css ou quelque chose d'approchant...

Je suppose dans ce cas qu'il faut utiliser la boucle foreach....
Je vais chercher encore.

Merci de votre aide!
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h40   #8
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
as-tu lu (et compris) le code ?
Car il répond à tes questions ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h47   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Citation:
Envoyé par jreaux62 Voir le message
Bonjour,
as-tu lu (et compris) le code ?
Car il répond à tes questions ...
Bien sûr, j'ai lu le code. Je n'ai peut-être pas tout compris, mais j'essaie. En tout cas, je ne suis pas du genre à faire des copier-coller sans chercher à comprendre, si ça peut te rassurer.


Je suis en train de tester des modifications pour arriver à ce que je veux, mais je fais des erreurs.
Je teste en ce moment avec des else, else if.... mais j'avoue que je patauge un peu, surtout dans la syntaxe. Car en lisant le code je comprends vers où je dois aller, et je vois à quoi correspondent les choses. Mon problème est que je n'arrive pas à écrire, tout simplement.
En tout cas, je continue.
J'avance petit à petit, et j'essaie en ce moment de reproduire une partie de ce code pour faire afficher une troisième css.
Voilà où j'en suis:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$monnouveautheme='style2.css';
$monnouveautheme2='style3.css';
 
// Durée de vie de mon cookie, presque 6 mois par exemple :
$expire = (6*30*24*3600);
 
// Je zieute combien de fois mon visiteur est venu, s'il a un "theme" css défini :
if(isset($_COOKIE['nb_visite'])){ 
$nb_visite = $_COOKIE['nb_visite'];
$themecss = $_COOKIE['themecss'];
} else {
// S'il n'est jamais venu je lui en assigne un de base :	
$nb_visite = 0;
$themecss= 'style.css';
setcookie("themecss","style.css", time()+$expire, "/");
}
$nb_visite=($nb_visite+1);
setcookie("nb_visite",$nb_visite, time()+$expire, "/");
// Toutes les 3 visites tu changes le thème :
else ($nb_visite%3==0) { 
// tu insères ici un code pour déterminer ton nouveau thème css
setcookie("themecss",$monnouveautheme, time()+$expire, "/");
$themecss=$monnouveautheme;
}
else ($nb_visite%6==0) { 
// tu insères ici un code pour déterminer ton nouveau thème css
setcookie("themecss",$monnouveautheme, time()+$expire, "/");
$themecss=$monnouveautheme2;
}
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h48   #10
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Tout ce que tu as à faire, c'est indiquer les noms de tes fichiers CSS.

J'ai posé la question ,car tu n'as peut-etre pas bien compris le fonctionnement du fichier, ou l'utilisation du cookie

regarde ici :
Code :
1
2
3
4
5
6
7
8
9
10
<?php
...
$nb_visite=($nb_visite+1); // ici : on incrémente le cookie AUTOMATIQUEMENT
// Toutes les 3 visites tu changes le thème :
if ($nb_visite==3) { 
	// tu insères ici un code pour déterminer ton nouveau thème css
	setcookie("themecss",$monnouveautheme, time()+$expire, "/");
	$themecss=$monnouveautheme;
}
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h54   #11
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Je pense avoir assez bien compris le code. Je me suis du coup également mieux renseignée sur les cookies (que je connaissais quand même déjà).

J'ai bien mis le nom de mes fichiers, mais je n'arrive pas à revenir à la première css après être passée par la deuxième...

Je sais, ça peut paraître tout bête!

Code :
1
2
// Toutes les 3 visites tu changes le thème :
else ($nb_visite==3)
Effectivement, j'étais bien dans ce coin. Mais au lieu de ça, j'avais:
Code :
1
2
// Toutes les 3 visites tu changes le thème :
else ($nb_visite%3==0)
Chose que je ne comprends pas...
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 18h58   #12
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Tu peux faire simplement
Code :
1
2
3
4
5
6
7
8
9
<?php
if ($nb_visite%3==1) { 
	// -> theme 1
} elseif ($nb_visite%3==2) { 
	// -> theme 2
} else { 
	// -> theme 3
}
?>
Encore plus simple :
Code :
1
2
3
4
5
6
<?php
// 3 themes css en alternance
$mes_themes = array('theme1.css','theme2.css','theme3.css');
	setcookie("themecss",$mes_themes[($nb_visite%3)], time()+$expire, "/");
	$themecss=$mes_themes[($nb_visite%3)];
?>
[Edit] Ah non, j'ai mal lu ta demande ... Ici je change à chaque nouvelle visite ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 19h02   #13
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
D'accord! C'est en plein dans la partie qui n'était pas claire pour moi!
Je vais faire ça. Merci beaucoup!
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 19h09   #14
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Ce qui porte encore à confusion, c'est ca :
Citation:
Envoyé par thecaco Voir le message
toutes les 3 visites
Ca veut dire :
-> à la 3ème visite
-> OU après la 3ème visite ?

Car c'est CA qui va déterminer l'algorithme correct.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
visite 1 -> theme 1		-	1%3 = 1		-	1%9 = 1
visite 2 -> theme 1		-	2%3 = 2		-	2%9 = 2
visite 3 -> theme 1		-	3%3 = 0		-	3%9 = 3
-------------------
visite 4 -> theme 2		-	4%3 = 1		-	4%9 = 4
visite 5 -> theme 2		-	5%3 = 2		-	5%9 = 5
visite 6 -> theme 2		-	6%3 = 0		-	6%9 = 6
-------------------
visite 7 -> theme 3		-	7%3 = 1		-	7%9 = 7
visite 8 -> theme 3		-	8%3 = 2		-	8%9 = 8
visite 9 -> theme 3		-	9%3 = 0		-	9%9 = 0
-------------------
visite 10 -> theme 1		-	10%3 = 1	-	10%9 = 1
visite 11 -> theme 1		-	11%3 = 0	-	11%9 = 2
...
=> donc :
Code :
1
2
3
4
- tu changes de thème à chaque fois que $nb_visite%3==1
- tu passes au thème 1 à chaque fois que $nb_visite%9==1
- tu passes au thème 2 à chaque fois que $nb_visite%9==4
- tu passes au thème 3 à chaque fois que $nb_visite%9==7
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/08/2011, 19h37   #15
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Citation:
Envoyé par jreaux62 Voir le message
Encore plus simple :
Code :
1
2
3
4
5
6
<?php
// 3 themes css en alternance
$mes_themes = array('theme1.css','theme2.css','theme3.css');
	setcookie("themecss",$mes_themes[($nb_visite%3)], time()+$expire, "/");
	$themecss=$mes_themes[($nb_visite%3)];
?>
[Edit] Ah non, j'ai mal lu ta demande ... Ici je change à chaque nouvelle visite ...
Mais c'est pas mal ça. J'ai voulu l'essayer, mais ça me laisse toujours le premier thème.
Pourrais-tu m'expliquer ce que signifie: ($nb_visite%3)
Ça m'aiderait beaucoup pour pouvoir travailler le code.
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 19h41   #16
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
le modulo (xxx%yyy) renvoie "le reste de la division de XXX par YYY".
exemple avec "modulo3" et "modulo9" :
Citation:
1%3 = 1 - 1%9 = 1
2%3 = 2 - 2%9 = 2
3%3 = 0 - 3%9 = 3
-------------------
4%3 = 1 - 4%9 = 4
5%3 = 2 - 5%9 = 5
6%3 = 0 - 6%9 = 6
-------------------
7%3 = 1 - 7%9 = 7
8%3 = 2 - 8%9 = 8
9%3 = 0 - 9%9 = 0
-------------------
10%3 = 1 - 10%9 = 1
11%3 = 0 - 11%9 = 2
...
$nb_visite%3 ne prends que 3 valeurs : 0,1 ou 2
$nb_visite%9 ne prends que 9 valeurs : 0,1,2,3,4,5,6,7 ou 8
...

Voici 2 exemples concrets d'utilisation : table html - Affichage "en ligne" avec array() et V-B. Affichage "en Colonne"
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 21h07   #17
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Encore une fois, merci beaucoup pour tes explications et ton temps.
Je pense avoir bien compris.
J'avais étudié les modulos, mais j'avais eu beaucoup de mal avec ça il y a quelques années, et là je ne les avais pas reconnus.

J'ai fait quelques tests, je pense que ça marche. J'arrive bien à changer les CSS selon le nombre de visites que je choisis.
Je teste encore un peu, et quand je serai sûre de moi, je mettrai le message comme "réglé".

thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2011, 14h42   #18
Candidat au titre de Membre du Club
 
Inscription : novembre 2007
Messages : 67
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 67
Points : 13
Points : 13
Merci beaucoup. J'arrive maintenant à bien manipuler le code pour en faire ce que je veux grâce à vos explications!
J'ai encore quelques soucis pour l'appeler sur Wordpress, mais c'est une autre histoire. Je vais bien arriver à trouver.

Merci encore!
thecaco est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h43.


 
 
 
 
Partenaires

Hébergement Web