Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 27/05/2006, 21h16   #1
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Par défaut Comment placer du PHP dans une feuille de style

Bonjour,
J'ai du mal avec ma mise en page CSS, en raison d'un style switcher.
Cela me simplifierait sans doute la tache si je pouvais placer un peu de php dans ma feuille de style. Il me semble avoir lu sur un forum que l'on peut faire ça.
Mais je ne vois pas du tout comment.
Le but serait de changer une propriété en fonction de la valeur d'une variable de session.

Par exemple, nous avons :
Code :
1
2
3
4
5
.centre
{
float:left;
width:600px
}
Le but est de changer la valeur de width pour la passer à 400px si $_SESSION['style']=1 et puis de repasser width à 600px si la valeur de la variable de session change et passe à 2.

C'est possible au moins ? Si oui je dois faire comment s'il vous plait ?

**edit**
Je précise que les propriétés de .centre ci dessus, sont définies dans la feuille global.css, c'est dans cette feuille qu'il faut placer le code php, si on peut.
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 21h27   #2
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Bein dans une feuille de style je sais pas si c'est vraiment possible directement, mais dans une page php directement oui.
C'est possible si tu fais un sytème de template. Dans ta feuille tu mets:

Code :
1
2
3
4
5
.centre
{
float:left;
width:[!WIDTH!]px
}
Puis dans ton code php, tu récupères le contenu de la page style.css, en remplaçant [!WIDTH!] par $_SESSION['width'] (avec fopen(), str_replace()...). Ensuite, tu affiches cette variable sur ta page php entre les balises head et style.
Moi je vois que ça.
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 21h32   #3
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Salut Anduriel,

J'ai pas trop compris ta proposition, mais avant d'y revenir, je pensais à cela au cas où on ne peut rien faire dans la feuille de style elle-même :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<style type="text/css">
<?php
if($_SESSION['style']==1)
{echo
'.centre
{
float:left;
width:600px
}'
;}
 
else
{
echo'
.centre
{
float:left;
width:400px
}'
;}
 
?>
</style>
A priori je ne vois pas pourquoi ça ne fonctionnerait pas, qu'est ce que tu en penses (je suis en train de manger là, je peux pas trop tester)
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 22h18   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Code :
1
2
3
...
<link rel="stylesheet" type="text/css" href="style.php">
...
Code style.php :
1
2
3
4
5
6
7
8
9
 
<?php
header('Content-type: text/css');
$width = (isset($_SESSION['style']) && $_SESSION['style']==1) ? 600 : 400;
?>
.centre {
   float:left;
   width:<?=$width?>px;
}
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 22h24   #5
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Je ne comprend pas ta notation :
? 600 : 400;

Cela veut dire quoi ça ? C'est typique de la manière d'insérer du PHP dans une feuille de style ?

Et quand tu écris :
width:<?=$width?>px;

C'est pareil si on met <?php à la place de seulement <? ?

En tout cas c'est chouette de savoir que c'est possible, par contre j'ai encore un autre problème avec la création des sessions, ça me lourde, ça me lourde, je vais de ce pas ouvrir un post j'en ai marre.
Mais merci hein.
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 22h48   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par psychoBob
Je ne comprend pas ta notation :
? 600 : 400;

Cela veut dire quoi ça ? C'est typique de la manière d'insérer du PHP dans une feuille de style ?
Non c'est un opérateur ternaire =>
http://php.net/language.operators.co...arison.ternary

Citation:
Envoyé par psychoBob
Et quand tu écris :
width:<?=$width?>px;
C'est l'équivalent de :
Code :
1
2
 
width:<?php echo $width; ?>px;
<?= n'est pas forcément accepté partout (et par tous par conséquent)
Mais comme je ne distribue pas mon code et que la configuration de mon serveur m'autorise à les utiliser, je ne m'en prive pas

Mais si un jour tu dois changer de plateforme ou si tu veux distribuer ton code source parce qu'il "déchire sa race", alors mieux vaut utiliser <?php echo $truc; ?>
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 00h10   #7
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
ok j'ai presque tout compris en plus j'ai réussi.

Merci !
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob 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 12h33.


 
 
 
 
Partenaires

Hébergement Web