IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Comment placer du PHP dans une feuille de style


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <link rel="stylesheet" type="text/css" href="style.php">
    ...
    Code style.php : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    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.

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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; ?>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Comment copier une Textbox et placer son contenu dans une feuille excel
    Par Tcool27 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/08/2014, 13h55
  2. intégrer du php dans une feuille de style
    Par grinder59 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 18/05/2007, 21h51
  3. Réponses: 3
    Dernier message: 08/11/2006, 21h06
  4. Réponses: 7
    Dernier message: 23/01/2006, 11h53
  5. pb eval pour le code php dans une feuille xslt
    Par nipepsi dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 10/09/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo