Site: plugins SPIP
Prise électrique

Graphisme du site public

COULEUR DE RUBRIQUE


15 votes
Version de SPIP
  • SPIP 2.0
  • SPIP 2.1
État : stable
Base de données
  • ? Pas d’accès SQL
Auteur : ARNO*
Pipelines
  • affiche_gauche
  • header_prive

Ce plugin permet de choisir une couleur pour chaque rubrique du site, au travers d’une roue chro­ma­tique acces­sible dans l’espace privé.

[SPIP 2.0] Ce plugin répond à un besoin extrê­mement fré­quent (en tout cas pour moi) de la manière la plus simple pos­sible : il s’agit de pouvoir indiquer une couleur dif­fé­rente pour chaque rubrique (en général : pour les grands sec­teurs du site).

Jusqu’à présent, je m’en sortais en ajoutant un champ #EXTRA aux rubriques : solution par­fai­tement fonc­tion­nelle, mais pas très amu­sante au niveau de l’interface…

Fonctionnement général

Une fois activé, ce plugin ne demande aucune confi­gu­ration sup­plé­men­taire. Il ajoute sim­plement un pavé sup­plé­men­taire dans la colonne de gauche des pages des rubriques (naviguer) :

La roue chro­ma­tique permet de sélec­tionner direc­tement la couleur. La valeur hexa­dé­cimale de cette couleur apparaît alors dans une case juste en dessous.

On peut modifier la couleur de deux façons :
— visuel­lement, en cliquant et glissant dans la roue chro­ma­tique ; la valeur hexa­dé­cimale est immé­dia­tement reportée dans le champ texte en dessous ;
— en modi­fiant direc­tement la valeur hexa­dé­cimale dans le champ texte (par exemple pour recopier une valeur récu­pérée depuis Pho­toshop ou The Gimp) ; la roue chro­ma­tique change immédiatement.

Une fois la couleur cor­rec­tement sélec­tionnée, il suffit de cliquer « Enre­gistrer ». (Cette fonction n’est pas AJAX : enre­gistrer pro­voque le rechar­gement de la page.)

Utilisation dans les squelettes

Pour récu­pérer la couleur d’une rubrique, il suffit d’indiquer dans le squelette :

  1. [(#ID_RUBRIQUE|couleur_rubrique)]

On peut uti­liser, évidemment, cette fonction :
— dans les feuilles de style,
— dans les filtres d’images (par exemple colo­riser une image en gris 50% avec image_sepia) et d’images typo­gra­phiques (fixer la couleur de l’image typo).

Il faut bien noter que ce filtre retourne la valeur hexa­dé­cimale sans le dièse qui accom­pagne habi­tuel­lement de telles valeurs. En effet, les filtres d’image, les filtres typo et les filtres de cou­leurs de SPIP fonc­tionnent sans le dièse.

Si l’on veut uti­liser cette fonction pour régler les CSS, il faut donc penser à ajouter le dièse. Ce qui donne par exemple :

  1. [color: #(#ID_RUBRIQUE|couleur_rubrique);]

Rubrique sans couleur

Par défaut, une rubrique n’a pas de couleur. Dans ce cas, le pavé de la roue chro­ma­tique apparaît plié. Quand une rubrique est dotée d’une couleur, le pavé apparaît déplié.

Une fois qu’on a fixé une couleur à une rubrique, on peut la sup­primer en cliquant, sous la roue chro­ma­tique, sur « Sup­primer la couleur ».

Si une rubrique n’a pas de couleur, le filtre couleur_rubrique ne retourne rien (chaîne vide). Cela permet d’utiliser toutes les sub­ti­lités habi­tuelles des filtres SPIP : ajouter un filtre |sinon pour indiquer une couleur par défaut, ou jouer avec les éléments condi­tionnels des balises.

L’intérêt de cette fonction est, évidemment, de ne pas avoir à fixer une couleur pour toutes les rubriques et sous-​​rubriques du site. Le cas typique consiste à fixer des cou­leurs pour les sec­teurs du site, les sous-​​rubriques héritant de la couleur du secteur dans lequel elles se trouvent.

Ce plugin ne propose pas de fonction pour qu’une sous-​​rubrique « hérite » de la couleur d’une rubrique parente. Cependant, cela se réalise faci­lement avec une boucle :

  1. [(#SET{couleur,[(#VAL{0}|couleur_rubrique)]})]
  2. <BOUCLE_principale(RUBRIQUES){id_rubrique}>
  3.         <BOUCLE_hier_couleur(HIERARCHIE){id_rubrique}>
  4.                 <BOUCLE_couleur_rubrique(RUBRIQUES){id_rubrique}{doublons gauche}>
  5.                         [(#SET{couleur,[(#ID_RUBRIQUE|couleur_rubrique|sinon{[(#GET{couleur})]})]})]
  6.                 </BOUCLE_couleur_rubrique>
  7.         </BOUCLE_hier_couleur>
  8.         [(#SET{couleur,[(#ID_RUBRIQUE|couleur_rubrique|sinon{[(#GET{couleur})]})]})]
  9. Couleur: [(#GET{couleur})]
  10. </BOUCLE_principale>

(Vraiment, j’adore les boucles de SPIP : il y a toujours des bidouilles sym­pa­thiques à trouver pour éviter de coder en PHP.)

Note : en règle générale, lorsqu’on com­mence à jouer avec des cou­leurs, je recom­mande for­tement d’utiliser les variables SPIP avec #GET, cela rend le code beaucoup plus facile à main­tenir. C’est d’ailleurs ce que nous faisons pour les feuilles de style de la dist.

Pourquoi une seule couleur ?

J’ai déjà vu quelques outils pour choisir des cou­leurs dans SPIP, et tous per­mettent de sélec­tionner plu­sieurs cou­leurs. Autant dire que j’ai préféré prendre le contre-​​pied avec ce plugin : ici, on ne peut attribuer qu’une seule couleur à une rubrique.

Pourquoi ?

— D’abord parce que je suis un adepte forcené de la tech­no­logie KISS. C’est-à-dire : « Keep it simple, stupid ! ». Je pense que plus une fonction est simple, plus elle sera utile. L’interface doit être évidente.

— Parce que, dans tous les sites sur lesquels je suis intervenu, le besoin est de changer une seule couleur pour chaque rubrique. D’abord par besoin de cohé­rence : géné­ra­lement la charte de couleur est glo­ba­lement fixe, et une seule couleur change. Ensuite, si j’ai besoin de plus de cou­leurs, je les calcule auto­ma­tiquement à partir de ma couleur de base.

Exemple type : je sou­haite écrire du texte dans un pavé dont le fond est la couleur. Inutile de régler la couleur du texte (contraste maximum) à la main, il suffit de faire :

  1. [background-color: #(#GET{couleur});]
  2. [color: #(#GET{couleur}|couleur_extreme|couleur_inverser);]

Ainsi, si la couleur du fond est foncée, le texte appa­raîtra en blanc ; si la couleur est claire, le texte appa­raîtra en noir.

Versions

1.5 : La fonction pb_couleur_rubrique devient couleur_rubrique. La roue chro­ma­tique est désormais pré­sente à la racine du site, per­mettant de sélec­tionner la « couleur prin­cipale du site », que l’on récupère avec :

  1. [(#VAL{0}|couleur_rubrique)]

1.6 : L’extension jQuery Farb­tastic devient une librairie, de façon à faci­liter le partage avec d’autres plugins. Pour per­mettre l’installation auto­ma­tique, penser à créer un dossier </lib à la racine du site.

Pour écrire une critique de ce plugin, vous devez être un rédacteur de ce site.
Écrire un message

Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

DJIMEL
il y a 3 semaines

Bonjour Arnaud, et encore merci pour le travail effectué !

Je suis débutant sous spip… mais ça m’intéresse beaucoup…

Votre plugin est ins­tallé… j’ai modifié la couleur d’une de mes rubriques…

Mais je bloque : je ne sais pas dans quel sque­lette intégrer [(#ID_RUBRIQUE|couleur_rubrique)]  ???

Je l’ai mis dans inc-​​rubrique ainsi :

BOUCLE_rubriques(RUBRIQUES) racine par num titre, titre

[(#ID_RUBRIQUE|couleur_rubrique)]

mais ça me retourne le code hexa­de­cimal. Pete­bowling a posé la question… mais hélas je ne com­prends pas la réponse…

Merci de votre patience !

Djimel


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

davux
Mai 2009

Une autre méthode pour trouver la couleur de façon récursive, sans faire appel à des variables : passer par un modèle rubrique_couleur.html, qui s’appelle lui-​​même dans le contexte de la rubrique parente si la rubrique en cours n’a pas de couleur.

<BOUCLE_rubrique(RUBRIQUES) {id_rubrique}>
<BOUCLE_couleur(RUBRIQUES){id_rubrique}>[(#ID_RUBRIQUE|couleur_rubrique)]</BOUCLE_couleur>
<BOUCLE_parent(RUBRIQUES){id_enfant}>[(#MODELE{rubrique_couleur})]</BOUCLE_parent>
[(#EVAL{0}|couleur_rubrique)]
<//B_parent>
<//B_couleur>
</BOUCLE_rubrique>

L’avantage d’utiliser un modèle est qu’on peut aussi uti­liser l’info dans les articles : <rubrique2|couleur>.

On peut bien sûr ima­giner une variante de modèle article_couleur.html.

Note : Mal­heu­reu­sement, il faut mettre 2 boucles sur id_​rubrique, sinon on ne peut pas sélec­tionner la couleur en-​​dehors de la boucle ’couleur’. (mais si quelqu’un voit une façon plus astu­cieuse de faire…)


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

davux
Mai 2009

Bug : Quand un auteur est admi­nis­trateur d’une ou plu­sieurs rubriques (mais pas admin du site), il ne peut pas modifier la couleur des rubriques qu’il administre.

ARNO*
auteur du plugin
Juillet 2009

Oui, c’est exprès. Idéa­lement, j’aurais préféré réserver car­rément au web­mestre du site (id_​webmestre), mais là ça devenait beaucoup trop contrai­gnant à l’usage.

L’idée, c’est que changer les cou­leurs des rubriques est une tâche qui doit être réservée au web­mestre, de façon à conserver la cohé­rence gra­phique du site.

davux
Juillet 2009

Je ne suis pas for­cément d’accord : la couleur d’une rubrique n’est qu’un champ, rien n’oblige le web­master à en tenir compte sys­té­ma­tiquement dans la CSS et les sque­lettes. (par exemple il peut choisir de ne tenir compte dyna­miquement que de la couleur "racine"). Par contre, inver­sement j’imagine des situa­tions où ça aurait du sens de per­mettre aux admins de rubrique de définir une couleur associée à leur rubrique : ensuite libre au web­master d’intégrer cette couleur de façon dis­crète et/​ou de la trans­former via les filtres (pastel, foncer, etc.) pour qu’elle s’intègre au site de façon harmonieuse.

Peut-​​être qu’un com­promis serait de laisser ou pas cette pos­si­bilité via une option de configuration ?


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

petebowling
Avril 2009

OUPS !

Je me suis trompé d’endroit pour poser ma question.

Alors voici,

Est-​​ce que ce mer­veilleux plu­gin fonc­tionne avec la ver­sion 1.9.2 ?

ARNO*
auteur du plugin
Avril 2009

Nope : comme indiqué en haut de page, c’est conçu pour SPIP 2.0.

Cyrille
Mai 2009

bonjour,

j’ai beau être sur spip 2.0.7, rien ne change avec ce plugin !!! Je ne com­prends pas, je choisis une couleur mais ça ne change rien sur le site ! Y a-​​t-​​il une manip à faire ?

Merci.

Petebowling
Juillet 2009

Bonjour Arno,

Je suis main­tenant en SPIP 2. Il me manque sûrement une infor­mation sur votre code à insérer dans le sque­lette, car c’est la valeur hexa­dé­ci­male qui apparaît au lieu de la couleur.

Code employé : [(#ID_RUBRIQUE|couleur_rubrique)] affiche "a8f74a" au lieu de la couleur.

ARNO*
auteur du plugin
Juillet 2009

Salut Petebowling,

Hé bien, tu es sur la bonne voie ! « a8f74a » est bien ta couleur. En code hexa­dé­cimal, tel qu’il est utilisé par le HTML et les feuilles de style.

Par exemple :

devrait te colorer ton titre.

Évidemment, il est bien plus conseillé d’utiliser cette fonction direc­tement dans les feuilles de style CSS :

Petebowling
Juillet 2009

Un GROS merci Arno,

Réponse ultra rapide et j’ai testé et ça marche pour le texte. Il me manquait le début et la fin…

Ma der­nière inter­ro­gation. Est-​​ce pos­sible de mettre la couleur qui serait semi-​​transparente par-​​dessus une image, comme sur cette page (image allées de bowling) (site en construction) " www​.heb​doquilles​.com/​spip/ ?-… ".

Mon code pré­sen­tement dans la feuille de style pour afficher l’image est : " #topbanner_​arch height : 70px ; border-​​bottom : 1px solid #999 ; back­ground : url(images/bg/archive_banner.png) no-​​repeat ;  "

Merci,

Pierre Demers

ARNO*
auteur du plugin
Juillet 2009

Tu as plusieurs possibilités.

- Une solution en HTML : tu t’arranges pour afficher l’image, et par dessus l’image (tu fais du position absolute) tu balances un div qui ne contient rien ayant pour background-​​color ta couleur (évidemment, il faut donner une hauteur et une largeur à ce div pour qu’il s’affiche), et tu rends ce div semi-​​transparent (avec opacity et filter:alpha). Là, c’est juste de la bidouille HTML. L’avantage, c’est que tu peux animer le div semi-​​transparent avec jQuery, pour faire de zolis effets de dévoi­lement de l’image.

- Une solution avec les filtres gra­phiques de SPIP.

  • Tu prends ton image d’origine, et tu la passes par le filtre image_​alpha, ce qui la rend semi-​​transparente. La variable uti­lisée pour image_​alpha te permet de gérer la trans­pa­rence.
  • Il te suffit main­tenant d’« aplatir » cette image semi-​​transparente en indiquant, comme deuxième variable, ta couleur.

Sauf erreur, ça donnerait quelque chose comme ça :

Petebowling
Juillet 2009

Merci Arno,

Après des test, tout fonctionne très bien.

Ne lâche surtout pas ton excellent travail. :)

Encore merci.

Juillet 2009

Re-​​bonjour Arno,

il fallait bien que j’aie une autre inter­ro­gation (pro­blème). Dans la page "som­maire", avec "[(#VAL0|couleur_rubrique)]", ça ne fonc­tionne pas.

Y a-​​t-​​il autre chose à ajouter ?

Merci.


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

spip user
Février 2009

bonjour

est ce que quelqun aurait une adresse de site ou un tutorial ou sim­plement du temps pour mex­pliquer :

quand on dit"Pour récu pé rer la cou leur d’une rubri que, il suf fit d’indi quer dans le sque lette :

[(#ID_RUBRIQUE|couleur_rubrique)]"
- dans quel fichier dois-​​je le placer ?? spip ou ahuntsic qui est le sque­lette que jutilise
- ai-​​je besoin d’un logiciel par­ti­culier pour lire ce type de fichiers ??

URGENT merci davance

aswadi
il y a 1 mois

je suis dans la même situation, ou est ce qu’il faut mettre cette boucle ?

Cordialement


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

go
Janvier 2009

Merci pour ce plugin que j’attendais avec impatience.

Main­tenant je cherche un plugin qui pourrait gérer les images de ban­nières pour les rubriques et le site en générale. Si quelqu’un en connait un j’suis preneur.


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

momax
Janvier 2009

Bonjour,

Je cherche à modifier ce plugin pour pouvoir donner une couleur au site. En fait j’aimerais retrouver la boite de cou­leurs dans le menu confi­gu­ration de l’espace privé afin de choisir la couleur domi­nante du site. Est-​​ce faisable ?

Cordialement

ARNO*
auteur du plugin
Janvier 2009

Oui, c’était un manque fla­grant. Je viens d’uploader une version 1.5 du plugin sur la zone, qui permet désormais de choisir la « couleur prin­cipale du site ».

momax
Janvier 2009

Un grand merci !


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

didier
Janvier 2009

Ce plugin peut être intéressant et fonctionne bien mais …

Comment peut on le sup­primer car il semble qu’en sup­primant le plugin, cela ne sup­prime pas la couleur des rubriques..


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

Décembre 2008

Bonjour

Ce plugin m’a l’air très inté­ressant, mais je ne com­prends pas où il faut mettre la balise pb_​couleur_​rubrique : dans quel sque­lette ? Et à quel endroit ?


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)
  • [Se connecter]

Site: plugins SPIP
Prise électrique
9 votes