Changer CSS selon les connexions au site

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Changer CSS selon les connexions au site

Re: Changer CSS selon les connexions au site

par thecaco » 13 août 2011, 19:23

Merci pour vos réponses.
J'ai fini par trouver chaussure à mon pied. Voici la solution:
<?php 
// Duree de vie des cookies (6 mois)
$expire = (6*30*24*3600);
 
// NOMBRE de VISITES
if(isset($_COOKIE['nb_visite'])){
	// deja venu : on incremente
	$nb_visite = $_COOKIE['nb_visite'] + 1;
} else { // 1ere visite
	$nb_visite = 1;
}
// on crée/modifie le cookie "nb_visite"
setcookie("nb_visite",$nb_visite, time()+$expire, "/");
 
// THEMES : definition des différents thèmes
$themecss[0] = 'style.css';
$themecss[1] = 'style2.css';
$themecss[2] = 'style3.css';
 
// CHOIX du THEME
// $nb_visite%3 prend 3 valeurs : 0,1 ou 2 ->  on en profite pour changer de theme
// Je détermine le nouveau theme css assigné au cookie
	setcookie("themecss",$themecss[$nb_visite%3], time()+$expire, "/");
?>
Et pour appeler la CSS
	<link rel="stylesheet" type="text/css" media="screen,projection" href="<?php echo $_COOKIE['themecss']; ?>">
Mais il me reste un léger soucis, tout bête:
Comment appeler ma CSS quand elle se trouve dans un sous-dossier (voire 2 dossiers plus bas)? Je ne connais pas la syntaxe, et je n'arrive pas à mettre la main dessus.

Re: Changer CSS selon les connexions au site

par sam12 » 05 août 2011, 05:53

Je propose peut-être une bêtise (je n'ai pas testé) mais pourquoi pas un simple:
<?php

if (($nombre_visite % 3) == 0 )
{
?>
<link href="style1.css" rel="stylesheet" type="text/css" />

<?php 

}

else
{
?>
<link href="style2.css" rel="stylesheet" type="text/css" />

<?php 

}

?>

Re: Changer CSS selon les connexions au site

par moogli » 05 août 2011, 03:50

perso je ne connais pas wordpress, mais globalement le principe est la.

bon ce que j'ai mis a ses limites, car si trop de visite, le lock du fichier suffit pas et c'est le brin, un sgbd sera, je pense, mieux, a voir si sqlite peux faire l'affaire ;)

et effectivement après tu package sa dans un beau plugins et c'est bon.

Par contre le mieux c'est ajouter un fichier css à la fin des autres (sinon y a des chances de surcharge et la c'est le drame ;) )

mais bon je pense comme gaspard qu'il y ai des chance que le plugins existe déja ?

@+

Re: Changer CSS selon les connexions au site

par Castor Gaspard » 05 août 2011, 00:03

Bonsoir...

Sinon, moins élégant que la solution de Moogli mais plus simple, tu envoies un Cookie au client.

A sa visite suivante, tu lis son Cookie et tu changes la Css.

Mais, je trouve qu'implémenter des fonctions "maison" dans WordPress est casse-tête. Quoiqu'envoyer ou lire un Cookie en tête du fichier "header.php" ne doit pas être problématique. Je serai surpris qu'un Plugin ne propose pas la fonctionnalité, en cherchant bien, même si je n'aime pas trop cette solution.

Cordialement,

Gaspard

Re: Changer CSS selon les connexions au site

par Invité » 04 août 2011, 20:36

Ça a l'air pas mal, mais il n'y aurait pas quelque chose d'un peu plus simple avec la condition if de php?
Je vais regarder quand même ce que tu me proposes de plus près, mais ce n'est pas très clair pour moi à priori... :oops:

Re: Changer CSS selon les connexions au site

par moogli » 04 août 2011, 18:30

salut,

par exemple avec un fichier texte dans lequel tu met le nb de visite si (nombre de viste %3) === 0 tu change de fichier de fond
perso je mettrais la css actuelle et le nb de visiteur dans le fichier (via un tableaux sérializé).

Après pour l'utiliser, tu peux, par exemple l'ajouter dans une balise style après l'inclusion du fichier css ou simplement utiliser un fichier php pour la css qui va faire le choix du background.

exemple
<?php
// pour récupérer le contenu du fichier
$tab = unserialize(file_get_contents('tab.txt'));
// $tab est un tableau que tu peux exploiter directement dans le code (par exemple un index cpt et un css

//pour modifier l'index et le fichier css il suffit de modifier le table et de le remettre dans le tableau
// par exemple
$a = array('cpt'=>512,'css'=>'fichierbackground.ext');
file_put_contents('tab.txt',serialize($a));
?>
Si tu a trop de visite tu va devoir changer ton fusil d'épaule et pourquoi pas utiliser sqlite ou mysql :)
le tous dans le fichier css que tu appel normalement
<link rel="stylesheet" media="all" href="css/css.php" />

@+

Changer CSS selon les connexions au site

par thecaco » 04 août 2011, 17:47

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!