Bonjour,

J'ai un menu de gauche composé de boutons(1 image par item de menu). L'option :hover permet de changer l'aspect du bouton.

Mon site doit être bilingue et les boutons contiennent du texte. Les boutons sont dans des répertoires distincts (bouton/fr et bouton/en).

J'ai une variable défini dans mes pages PHP/HTML qui se nomme $langue que j'aimerais utiliser dans le CSS (le nom de l'image du bouton est localisé dans le CSS).

Est-ce possible ?

<Petit à petit, l'oiseau fait son nid...>
Bonjour,

Placer du php dans la feuille de style n'est pas possible.
Par contre tu peux styler directement dans ton code à l'aide de php pour une utilisation ponctuelle.
Dans ton cas, ou tu utilises un fond de bouton standard pour toutes les langues et ton texte sera alors modifiable dans le code donc par php (c'est mieux pour l'accessibilité !!!).
Ou tu crées des feuilles de styles différentes que tu appeleras grâce à php en fonction de la langue.
Bonjour,

La méthode décrite dans le post utilise la commande $_GET qui permet de récupérer un paramètre passé entre les pages d'un site et non pas de pointer sur une variable PHP existante. Mais ça marche...

Puisque dans mon cas la variable langue est passée sur toute les pages, je peux donc la récupérer dans le CSS. Mes images sont dans 2 répertoires: fr pour français et en pour english. J'utilise le paramètre langue pour résoudre le nom de l'image. Voici un exemple:

Code dans le fichier CSS:


<?php header("Content-type: text/css");

/* vérifie si paramètre existe...*/
/* si oui: on prend son contenu (Get) */
/* sinon: français par défaut */
if (isset($_GET['langue']))
       { $langue = $_GET['langue']; }
else   { $langue = 'fr'; }  
?>

/* Il suffit ensuite d'utiliser la variable [b]$langue[/b] */
/* sans oublier les [#violet]balises php[/#] */

background-image: url(bouton/[#violet]<?php echo $langue; ?>[/#]/bouton3_off.png);


Merci,
Lancelot
<Petit à petit, l'oiseau fait son nid>
Hello,

Le problème avec cette technique, comme indiqué dans le post en question, est que la feuille de style ne sera pas mise en cache.

A ta place, je placerais le code CSS dynamique dans un élément style dans le HTML.
Modifié par Eldebaran (08 Dec 2006 - 19:39)
Bonsoir...

J'aurais simplement une petite suggestion : plutôt que de construire ta feuille de style en fonction de la langue choisie, pourquoi ne pas mettre une class ou un id au body qui changerait suivant la langue choisie par l'utilisateur ? Smiley rolleyes

Tu aurais alors une feuille de style commune pour toutes les langues.
Et les instructions seraient différentes suivant la class ou l'id du body... C'est pas plus simple ?
Et surtout ... Ca t'éviterais de devoir recharger constamment ta feuille de style !

lancelot a écrit :
Puisque dans mon cas la variable langue est passée sur toute les pages, je peux donc la récupérer dans le CSS.

Sinon, d'un point de vue linguistique, ghost à raison : il n'est pas possible de placer du php dans du CSS.
Tu génères ta feuille de style au moyen des paramètres parser en php.
C'est différent ... Smiley cligne

<edit>Grillée</edit>
Modifié par Cygnus (08 Dec 2006 - 19:45)
En plus, je n'aime pas trop $_get... Je suis trop souvent passé après des "pseudo" confrères peut scrupuleux au niveau sécurité... Quoique dans ce cas !!
Mais quand même!