8797 sujets

Développement web côté serveur, CMS

Sujet un peu classique auquel je ne trouve pas de réponse...
J'aimerais tout logiquement stocker dans un fichier de conf (disons "conf.php")des variables de couleurs comme ceci :
$couleur_fond=#FFFFFF; 
$couleur police=#555555;

Je voudrais ensuite faire appel à ces variables directement dans mon css (disons "style.css") comme ceci :

body {
background-color: <?=$couleur_fond;?>
color: <?=$couleur_police;?>
}


Ma page d'index serait construite alors ainsi :

<? include (conf.php); ?>
<html>
<head>
<link rel="stylesheet" id="normal_screen" type="text/css" href="css/normal_screen.css" media="all" />
</head>
<body>
mon texte
</body>
</html>


Aussi simple cela puisse paraître, ça ne fonctionne pas !
Une idée pour que le CSS soit interprété ?
Je voudrais essayer de faire un htaccess qui contiendrait un addType qui indiquerai qu'il faille interpreter aussi les fichiers d'extension .css....
Mais j'ai pas encore retrouvé la syntaxe...

Je vous tiendrai au courant de toute façon.

Merci à vous si vous avez une autre idée
Modifié par chben (06 Jun 2005 - 15:27)
ton serveur PHP interprète les fichiers .css ? Si ce n'est pas le cas ca risque pas de marcher.
Tu peux aussi donner l'extension .php à ton fichier css, à condition d'envoyer le bon header ensuite.

++
Ton include doit se trouver dans le style CSS sinon, comment veux tu qu'il trouve à quoi correspond les variables.

Ensuite, pour le AddType, c'est une version, mais je te conseille plutôt un header php

Fichier de style CSS :

<?php
header("Content-Type: text/cssl;charset=iso-8859-1");
include "conf.php";
?>

body {
color: <?php echo $color1; ?>;
}


Je déplace dans le salon langage côté serveur.
Modifié par Olivier (06 Jun 2005 - 13:43)
Pourquoi ne pas mettre sur ta page php/xhtml un pti bout de code pour sélectionnner le style que tu veux et faire plusieurs feuilles de style css :-?
Hé bien le but de la manoeuvre est de développer par la suite une petite interface d'admin qui permettra de changer les coueurs de façon simple et personnalisée, sans apporter de changement à la feuille de style : juste aux variables de couleurs....
Modifié par chben (06 Jun 2005 - 14:45)
OK Olivier, je m'en vais tester ça tout de suite....J'avais vu l'astuce sur un autre forum, mais ça m'avait l'air un poil sauvage....alors que c très logique.

Mais dans ce cas, ma CSS ne validera plus dans le validateur du W3C...si ?
AddType application/x-httpd-php .css
Voilà ce que j'ai mis dans un fichier .htaccess dans le répertoire de mon css....mais rien à faire : les variables sont inconnues au bataillon.

D'autres pistes ?
Tu as fais la méthode que je t'indiquais ?
A savoir header php avec type mime CSS, fichier extension PHP, inclusion du fichier conf.php DANS la feuille de style (style.php par exemple)

Fais voir le code que tu as actuellement.

Pour la validation CSS, ça ne change rien, le traitement est executé côté serveur, le retour côté client est une feuille de style tout ce qu'il y a de plus normal (grâce au header PHP notament).
Arf...c bon, j'avais oublié un détail qui a toute son importance : la feuille CSS n'a plus l'extension .css, mais .php !!!

Donc pour résumer, voici la marche à suivre :

Créez votre fichier conf.php dans lequel vous déclarez vos variables :

$couleur_fond=#FFFFFF;


Faîtes ensuite une feuille de style intitulée style.php qui fait appel au fichier de configuration :

<?php
header("Content-Type: text/css");
include "../conf/vargen.php";
?>
body {
background-color: <?=$couleur_fond?>;
}


Structurez enfin votre page xhtml tout à fait normalement en appelant pour votre feuille de style la page CSS en .php que vous venez de créer :

<html>
<head>
<link rel="stylesheet" id="normal_screen" type="text/css" href="css/normal_screen.php" media="all" />
</head>
<body>
mon texte
</body>
</html>
Pour ma part, sans changer l'extension de ma feuille de style de .css en .php, mon style n'était pas pris en compte...