Des liens vers plusieurs thémes css
Résolu
Chabanus
Messages postés
982
Date d'inscription
Statut
Membre
Dernière intervention
-
Chabanus Messages postés 982 Date d'inscription Statut Membre Dernière intervention -
Chabanus Messages postés 982 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Mon site comporte un fichier design1.css qui désigne l'interface du site, j'ai envie de créer plusieurs fichiers css avec une interface différente (couleur, images,...) S'il vous plait comment faire pour qu'en cliquant sur un lien le thème se change, un appel vers design2 avec lien2 ou design3 avec lien3.
thème design 1
thème design 2 // en cliquant sur ce lien le thème change
Merci
--
Il faut faire partie de la solution et non du problème ;-)
Mon site comporte un fichier design1.css qui désigne l'interface du site, j'ai envie de créer plusieurs fichiers css avec une interface différente (couleur, images,...) S'il vous plait comment faire pour qu'en cliquant sur un lien le thème se change, un appel vers design2 avec lien2 ou design3 avec lien3.
thème design 1
thème design 2 // en cliquant sur ce lien le thème change
Merci
--
Il faut faire partie de la solution et non du problème ;-)
Configuration: Windows XP Firefox 3.0.4
12 réponses
-
Allez jt'ai corriger les erreurs, s'était vraiment pas méchant:
<?php session_start(); $_SESSION['theme'] = 'design'; ?> <html> <head> <link rel="stylesheet" media="screen" type="text/css" title="Designn" href="<?php echo $_SESSION['theme'];?>.css" /> </head> <body> <ul> <li ><a href='index.php?Designn=design'>1 Octet</a></li > <li ><a href='#'>Chabanus</a></li > <li ><a href='index.php?Designn=design3'>Marine</a></li > <li ><a href='index.php?Designn=design4'>Vertvert</a></li > </ul> <?php if (isset($_GET['Designn'])) { if($_GET['Designn'] == 'design') { $_SESSION['theme'] = 'design'; } elseif($_GET['Designn'] == 'design3') { $_SESSION['theme'] = 'design3'; } elseif($_GET['Designn'] == 'design4') { $_SESSION['theme'] = 'design4'; } } echo $_SESSION['theme']; ?> </body>
petite explication:
Tu verifiais si la variable $_GET['theme'] == 'design', mais la variable $_GET['theme'] n'existe pas.
donc forcement... ^^
-
Merci mais cela ne veut toujours pas fonctionner
Cette ligne je dois la copier dans toutes les pages ?
<?php
$_SESSION['theme'] = 'design';
?>
Est-ce que j'ai besoin d'écrire un fragment de ce code dans l'index.php ? Car ce code je l'ai écris dans une page menu.php qui est inclus dans l'index.
Merci
-
-
Défini une variable de session ;)
genre $_SESSION['theme'] = 'design1';
puis dans ton head tu inclus le fichier css de cette façon:<link rel="stylesheet" media="screen" type="text/css" title="Design" href="chemin/vers/tes/css/<?php echo$_SESSION['theme']; ?>.css" />
Après tu fais des liens qui dirige vers une condition qui change ta variable de session, pour que tu puisse les choisir
genre<a href='index.php?design=design1'>design1</a> <a href='index.php?design=design2'>design2</a> <a href='index.php?design=design3'>design3</a> <?php if(isset($_GET('design')) { if($_GET['theme'] == 'design1' { $_SESSION['theme'] = 'design1'; } if($_GET['theme'] == 'design2' { $_SESSION['theme'] = 'design2'; } if($_GET['theme'] == 'design3' { $_SESSION['theme'] = 'design3'; } [etc...] } ?>
Et le tour est joué :)
Pense a définir la variable avec une valeur par défaut ;)
Ps: plutôt que de définir le nom du fichier css, tu peux egalement définir le nom des DIFFÉRENTS dossiers qui les contient: ça te permettra de stocker un dossier images différents pour chacun de tes designs ;) -
Bah tu peux faire un truc simple:
Avant ton head, en tout cas avant ta ligne incluant le css, tu fais une petite verif:if(!isset($_SESSION['design']) { $_SESSION['design'] == 'design1'; }(n'oublie pas, si ce n'est pas déjà fait, d'ouvrire une session: session_start() (en touuut début de fichier)
tu peux allé plus loin aussi, par exemple verifier que la valeur de la variable de session est bien autorisé:if($_SESSION['design']!='design1' AND $_SESSION['design']!='design2' AND $_SESSION['design']!='design3') { $_SESSION['design'] == 'design1'; }
plus long, mais on est jamais trop prudent en prog ^^
Bonne chance ;) -
Non pas besoin, l'avantage d'une variable de session, c'est qu'elle est définis sur la durée:
par exemple, lorsque tu te connecte sur un site, une session est crée avec, par exemple, une variable de session pour le pseudo, une pour ton n° d'identifiant, etc etc...
Elle sont "supprimées" lorsque tu te déconnecte, ou lorsque tu est inactif pendant longtemps.
Par contre, tu dois ouvrir la session ( <?php session_start();?> ) sur chaque page ou tu utilise une variable de session; et etant donné que tu utilise une variable de session pour definir ton fichier css, tu dois l'ouvrire sur presque toutes tes page;
Sauf, il y a un sauf ^^ et heureusement qu'il est la:
Sauf si tu as un tronc commun.
Par exemple, tu peux créer un fichier "head.php" qui contiendra l'ouverture de session, suivis de toute ta partie <head></head> et que tu inclura dans toute tes pages ( <?php include('head.php');?> )
Comme ça le jour ou tu dois modifier une partie de ton head, tu n'aura qu'a modifier ton fichier head.php et hop, toutes les pages seront mise a jours en même temps ;)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
$_SESSION['theme'] = 'design1'; // design1 c'est mon thème actuel, je suis donc obligé d'affecter design1 au debut.
Merci je vais essayer :p -
On me dit qu'il y a une erreur sur cette ligne:
if(isset($_GET('designn'))
Parse error: syntax error, unexpected T_IF in /www/sites/1/ifrance.com/1/o/1octet/site/index.php on line 102
<div id="menu"> <?php include("menu.php") if(isset($_GET('designn')) { if($_GET['theme'] == 'design') { $_SESSION['theme'] = 'design'; } if($_GET['theme'] == 'design2') { $_SESSION['theme'] = 'design2'; } if($_GET['theme'] == 'design3') { $_SESSION['theme'] = 'design3'; } if($_GET['theme'] == 'design4') { $_SESSION['theme'] = 'design4'; } } ?> </div>
S'il vous plait aidez-moi a trouver l'erreur merci-
J'ai fais comme vous aviez dit ça veut pas.
cela avant le code html:session_start(); $_SESSION['theme'] = 'design';
celui-ci entre le HEAD:
<link rel="stylesheet" media="screen" type="text/css" title="Designn" href="<?php echo $_SESSION['theme'];?>.css" />
et cela entre le body:<ul> <li ><a href='index.php?Designn=design'>1 Octet</a></li > <li ><a href='#'>Chabanus</a></li > <li ><a href='index.php?Designn=design3'>Marine</a></li > <li ><a href='index.php?Designn=design4'>Vertvert</a></li > </ul> <?php if (isset($_GET['Designn'])) { if($_GET['theme'] == 'design') { $_SESSION['theme'] = 'design'; } elseif($_GET['theme'] == 'design3') { $_SESSION['theme'] = 'design3'; } elseif($_GET['theme'] == 'design4') { $_SESSION['theme'] = 'design4'; } } ?>
-
-
Personne ne peut m'aider a trouver l'erreur ? Svp
-
J'ai enlevé tt les variables de session au début de la page et c'est résolu merciiiiiiiiiiiiiiiii
bonne fin de semaine ;-) et merci encore pour ton aide -
Sur l'index, avec la session_start() dans les deux menus et l'entête, le thème marche bien, mais lorsque je vais sur une autre page telle inscription.php avec session_start() inclus, le thème disparu ! Pourquoi ?
S'il vous plait merci de m'aider -
le theme disparait ?
c'est a dire ?
tu n'a plus aucun style, ou c'est le thème par défaut qui reviens ?
-
Le thème par défaut qui revient
L'index du site:
<?php
session_start();
.
.
.
?>
<html>
.
.
<head>
<link rel="stylesheet" media="screen" type="text/css" title="designs" href="<?php echo $_SESSION['theme'];?>.css" />
.
.
.
</head>
<body>
.
.
.
<div id="menu">
<?php include("menu.php") ?>
</div>
.
.
.
</body>
Le contenu du menu:
<?php
session_start();
$_SESSION['theme'] = 'design';
?>
<html>
.
.
<head>
<link rel="stylesheet" media="screen" type="text/css" title="designs" href="<?php echo $_SESSION['theme'];?>.css" />
.
.
.
</head>
<body>
.
.
.
<div class="element_menu">
<h3> Nos Thèmes</h3> <br/>
<ul>
<li ><a href='index.php?designs=design'>1 Octet</a></li >
<li ><a href='#'>Chabanus</a></li >
<li ><a href='index.php?designs=design3'>Verdure</a></li >
<li ><a href='index.php?designs=design4'>Marine</a></li >
<li ><a href='index.php?designs=design5'>Bonbon</a></li >
</ul>
<?php
if (isset($_GET['designs']))
{
if($_GET['designs'] == 'design')
{
$_SESSION['theme'] = 'design';
}
elseif($_GET['designs'] == 'design3')
{
$_SESSION['theme'] = 'design3';
}
elseif($_GET['designs'] == 'design4')
{
$_SESSION['theme'] = 'design4';
}
elseif($_GET['designs'] == 'design5')
{
$_SESSION['theme'] = 'design5';
}
}
?>
</ul></div>
.
.
.
</body>
Voici la page à laquelle je m'oriente pour voir si le thème reste:
<?php
session_start();
$_SESSION['theme'] = isset($_GET['designs']) ? $_GET['designs'] : "design";
.
.
.
?>
<html>
.
.
<head>
<link rel="stylesheet" media="screen" type="text/css" title="designs" href="<?php echo $_SESSION['theme'];?>.css" />
.
.
.
</head>
.
.
.
<body>
.
.
.
</body>
Si tu veux essayer voici le lien http://1octet.ifrance.com .
Merci de m'aider c'est gentil :P
-
-
tu dois definir $_SESSION['theme'] = 'design'; sans aucune condition.
surement juste après ton session_start();
modifie cette ligne en ajoutant une condition:
if(empty($_SESSION['theme'])){$_SESSION['theme'] = 'design'; }