Site: plugins SPIP
Prise électrique

Graphisme du site public

COULEUR DE RUBRIQUE


15 votes
Version de SPIP
  • SPIP 2.0
É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 chromatique accessible 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 possible : il s’agit de pouvoir indiquer une couleur différente pour chaque rubrique (en général : pour les grands secteurs du site).

Jusqu’à présent, je m’en sortais en ajoutant un champ #EXTRA aux rubriques : solution parfaitement fonctionnelle, mais pas très amusante au niveau de l’interface...

Fonctionnement général

Une fois activé, ce plugin ne demande aucune configuration supplémentaire. Il ajoute simplement un pavé supplémentaire dans la colonne de gauche des pages des rubriques (naviguer) :

La roue chromatique permet de sélectionner directement la couleur. La valeur hexadécimale de cette couleur apparaît alors dans une case juste en dessous.

On peut modifier la couleur de deux façons :
— visuellement, en cliquant et glissant dans la roue chromatique ; la valeur hexadécimale est immédiatement reportée dans le champ texte en dessous ;
— en modifiant directement la valeur hexadécimale dans le champ texte (par exemple pour recopier une valeur récupérée depuis Photoshop ou The Gimp) ; la roue chromatique change immédiatement.

Une fois la couleur correctement sélectionnée, il suffit de cliquer « Enregistrer ». (Cette fonction n’est pas AJAX : enregistrer provoque le rechargement de la page.)

Utilisation dans les squelettes

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

  1. [(#ID_RUBRIQUE|couleur_rubrique)]

On peut utiliser, évidemment, cette fonction :
— dans les feuilles de style,
— dans les filtres d’images (par exemple coloriser une image en gris 50% avec image_sepia) et d’images typographiques (fixer la couleur de l’image typo).

Il faut bien noter que ce filtre retourne la valeur hexadécimale sans le dièse qui accompagne habituellement de telles valeurs. En effet, les filtres d’image, les filtres typo et les filtres de couleurs de SPIP fonctionnent sans le dièse.

Si l’on veut utiliser 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 chromatique 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 supprimer en cliquant, sous la roue chromatique, sur « Supprimer 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 subtilités habituelles des filtres SPIP : ajouter un filtre |sinon pour indiquer une couleur par défaut, ou jouer avec les éléments conditionnels 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 couleurs pour les secteurs 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 facilement 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 sympathiques à trouver pour éviter de coder en PHP.)

Note : en règle générale, lorsqu’on commence à jouer avec des couleurs, je recommande fortement d’utiliser les variables SPIP avec #GET, cela rend le code beaucoup plus facile à maintenir. 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 couleurs dans SPIP, et tous permettent de sélectionner plusieurs couleurs. 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 technologie 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éralement la charte de couleur est globalement fixe, et une seule couleur change. Ensuite, si j’ai besoin de plus de couleurs, je les calcule automatiquement à partir de ma couleur de base.

Exemple type : je souhaite é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 apparaîtra en blanc ; si la couleur est claire, le texte apparaîtra en noir.

Versions

1.5 : La fonction pb_couleur_rubrique devient couleur_rubrique. La roue chromatique est désormais présente à la racine du site, permettant de sélectionner la « couleur principale du site », que l’on récupère avec :

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

1.6 : L’extension jQuery Farbtastic devient une librairie, de façon à faciliter le partage avec d’autres plugins. Pour permettre l’installation automatique, 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]

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 utiliser l’info dans les articles : <rubrique2|couleur>.

On peut bien sûr imaginer une variante de modèle article_couleur.html.

Note : Malheureusement, il faut mettre 2 boucles sur id_rubrique, sinon on ne peut pas sélectionner la couleur en-dehors de la boucle ’couleur’. (mais si quelqu’un voit une façon plus astucieuse 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 administrateur d’une ou plusieurs 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éalement, j’aurais préféré réserver carrément au webmestre du site (id_webmestre), mais là ça devenait beaucoup trop contraignant à l’usage.

L’idée, c’est que changer les couleurs des rubriques est une tâche qui doit être réservée au webmestre, de façon à conserver la cohérence graphique du site.

davux
Juillet 2009

Je ne suis pas forcément d’accord : la couleur d’une rubrique n’est qu’un champ, rien n’oblige le webmaster à en tenir compte systématiquement dans la CSS et les squelettes. (par exemple il peut choisir de ne tenir compte dynamiquement que de la couleur "racine"). Par contre, inversement j’imagine des situations où ça aurait du sens de permettre aux admins de rubrique de définir une couleur associée à leur rubrique : ensuite libre au webmaster d’intégrer cette couleur de façon discrète et/ou de la transformer via les filtres (pastel, foncer, etc.) pour qu’elle s’intègre au site de façon harmonieuse.

Peut-être qu’un compromis serait de laisser ou pas cette possibilité 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 comprends 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 maintenant en SPIP 2. Il me manque sûrement une information sur votre code à insérer dans le squelette, 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 hexadé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 directement 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 dernière interrogation. Est-ce possible 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.hebdoquilles.com/spip/ ?-... ".

Mon code présentement dans la feuille de style pour afficher l’image est : " #topbanner_arch height : 70px ; border-bottom : 1px solid #999 ; background : 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évoilement de l’image.

- Une solution avec les filtres graphiques 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 utilisée pour image_alpha te permet de gérer la transparence.
  • Il te suffit maintenant 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 interrogation (problème). Dans la page "sommaire", avec "[(#VAL0|couleur_rubrique)]", ça ne fonctionne 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 simplement du temps pour mexpliquer : 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 squelette que jutilise
- ai-je besoin d’un logiciel particulier pour lire ce type de fichiers ??

URGENT merci davance

aswadi
il y a 2 semaines

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.

Maintenant je cherche un plugin qui pourrait gérer les images de banniè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 couleurs dans le menu configuration de l’espace privé afin de choisir la couleur dominante du site. Est-ce faisable ?

Cordialement

ARNO*
auteur du plugin
Janvier 2009

Oui, c’était un manque flagrant. Je viens d’uploader une version 1.5 du plugin sur la zone, qui permet désormais de choisir la « couleur principale 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 supprimer car il semble qu’en supprimant le plugin, cela ne supprime 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 comprends pas où il faut mettre la balise pb_couleur_rubrique : dans quel squelette ? 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
6 votes