29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Extensions / eZ Publish : ezoe - Online Editor 5.0 / Online Editor OE 5.0 : configurer les couleurs





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : ezoe - Online Editor 5.0

Table des matières

  1. eZ Publish : ezoe - Online Editor 5.0
  2. Version enrichie de Online Editor 5.0
  3. Modifier son apparence
  4. Version mini / simple formatting
  5. Configurer les couleurs
  6. Gestion des images
  7. Souligner du texte
  8. Exposant et indice
  9. Fonctions rechercher et remplacer
  10. Configurer le correcteur orthographique
  11. Ajouter des caractères spéciaux
  12. Aligner du texte dans les cases d'un tableau

Online Editor OE 5.0 : configurer les couleurs

Date de publication: le vendredi 15 juillet 2011 à 11h17
Dernière modification: par Pascal BOYER le vendredi 15 juillet 2011 à 13h23

Mettre de la couleur dans les textes

Par défaut, Online Editor, dans son ancienne version 4 comme dans sa nouvelle mouture 5.0, ne propose pas aux rédacteurs de contenus la possibilité de mettre du texte en couleur.

Ce choix, qui peut de prime abord sembler curieux, repose en fait sur un constat simple: plus vous offrez de possibilités à un rédacteur et plus vous augmentez les chances que la charte graphique du site soit détériorée par l'emploi excessif, entre autres, d'une multitude de polices de différentes tailles et couleurs. Pour cette raison, un rédacteur de contenu ne dispose, par défaut, que des options suivantes:

  • Gras
  • Itallique
  • Gras et Itallique
  • Barré
  • Souligné (qui ne fonctionne pas chez moi avec ma version 4 de Online Editor)
  • Titres 1 à 6
  • ainsi que deux trois autres possibilités.

Il arrive cependant que l'emploi de couleurs réponde à un besoin incontournable. Pour cela, Online Editor autorise, après configuration par les développeurs du site, la mise à disposition soit de quelques couleurs soit d'un sélecteur de couleurs traditionnel proposant 2^24 couleurs (16.777.216 couleurs).

:
Je n'ai pas vérifié, mais il est fort probable que cet article puisse s'appliquer également aux versions 4 de Online Editor.

Une liste de quelques couleurs

Voilà l'objectif que je vous propose d'atteindre et dont le résultat final est illustré par les 3 captures d'écran ci-après:

Fig. 1: La liste des couleurs disponibles à partir du Online Editor

Fig. 2: L'affichage des couleurs dans le champ Bloc XML de l'interface d'édition des objets

Fig. 3: L'affichage des couleurs sur le site public

I - Définir les nouvelles balises personnalisées

Afin de proposer une liste de couleurs aux rédacteurs de contenus, il faut commencer par définir de nouvelles balises personnalisées dans le fichier de surcharge content.ini.append.php du siteaccess d'administration.

22 [CustomTagSettings]
23 AvailableCustomTags[]
24 AvailableCustomTags[]=couleur_sansCouleur
25 AvailableCustomTags[]=couleur_bleu1     <== CHAQUE NOUVELLE BALISE EST AJOUTÉE AU TABLEAU «AvailableCustomTags[]»
26 AvailableCustomTags[]=couleur_bleu2
27 AvailableCustomTags[]=couleur_bleu3
28 AvailableCustomTags[]=couleur_bleu4
29 AvailableCustomTags[]=couleur_bleu5
30 AvailableCustomTags[]=couleur_jaune1
31 AvailableCustomTags[]=couleur_jaune2
32 AvailableCustomTags[]=couleur_orange1
33 AvailableCustomTags[]=couleur_orange2
34 AvailableCustomTags[]=couleur_orange3
35 AvailableCustomTags[]=couleur_rose1
36 AvailableCustomTags[]=couleur_rose2
37 AvailableCustomTags[]=couleur_rose3
38 IsInline[couleur_sansCouleur]=true
39 IsInline[couleur_bleu1]=true
40 IsInline[couleur_bleu2]=true
41 IsInline[couleur_bleu3]=true   <== CHAQUE NOUVELLE BALISE EST AJOUTÉE AU TABLEAU «IsInline[]»
42 IsInline[couleur_bleu4]=true
43 IsInline[couleur_bleu5]=true
44 IsInline[couleur_jaune1]=true
45 IsInline[couleur_jaune2]=true
46 IsInline[couleur_orange1]=true
47 IsInline[couleur_orange2]=true
48 IsInline[couleur_orange3]=true
49 IsInline[couleur_rose1]=true
50 IsInline[couleur_rose2]=true
51 IsInline[couleur_rose3]=true
 
 
56 [couleur_bleu1]          <== POUR CHAQUE NOUVELLE BALISE ON CRÉE UNE SECTION À SON NOM
57 CustomAttributes[]=bleu1  <== UN ATTRIBUT PERSONNALISÉ ASSOCIÉ À LA BALISE PERSONNALISÉE
58 CustomAttributesDefaults[bleu1]=#000079  <== VALEUR HEXADÉCIMALE DE LA COULEUR ASSOCIÉE À L'ATTRIBUT PERSONNALISÉ DE LA NOUVELLE BALISE
59 [couleur_bleu2]
60 CustomAttributes[]=bleu2
61 CustomAttributesDefaults[bleu2]=#334499
62 [couleur_bleu3]
63 CustomAttributes[]=bleu3
64 CustomAttributesDefaults[bleu3]=#4c4c7e
65 [couleur_bleu4]
66 CustomAttributes[]=bleu4
67 CustomAttributesDefaults[bleu4]=#b8bfb8
68 [couleur_bleu5]
69 CustomAttributes[]=bleu5
70 CustomAttributesDefaults[bleu5]=#007bff
71 [couleur_jaune1]
72 CustomAttributes[]=jaune1
73 CustomAttributesDefaults[jaune1]=#ffff00
74 [couleur_jaune2]
75 CustomAttributes[]=jaune2
76 CustomAttributesDefaults[jaune2]=#f5ff00
77 [couleur_orange1]
78 CustomAttributes[]=orange1
79 CustomAttributesDefaults[orange1]=#ff7b00
80 [couleur_orange2]
81 CustomAttributes[]=orange2
82 CustomAttributesDefaults[orange2]=#feaa33
83 [couleur_orange3]
84 CustomAttributes[]=orange3
85 CustomAttributesDefaults[orange3]=#ffc900
86 [couleur_rose1]
87 CustomAttributes[]=rose1
88 CustomAttributesDefaults[rose1]=#ed33fe
89 [couleur_rose2]
90 CustomAttributes[]=rose2
91 CustomAttributesDefaults[rose2]=#ff00a0
92 [couleur_rose3]
93 CustomAttributes[]=rose3
94 CustomAttributesDefaults[rose3]=#ff64ff

Configuration du fichier de surcharge content.ini.append.php du siteaccess d'administration

Point importants:

  • Lignes 23 à 94 : elles sont toutes situées sous la même section [CustomTagSettings]
  • Ligne 24 : la balise couleur_sansCouleur servira à supprimer une couleur précédemment affectée à une chaîne de caractères. Je n'ai en effet trouvé aucun moyen direct et simple de désactiver l'application d'une balise à une chaîne de caractères.
    Les deux solutions possibles: soit supprimer le texte coloré puis à le réécrire (ce qui n'est vraiment pas pratique s'il s'agit d'un paragraphe complet), soit désactiver l'éditeur puis effacer le code autour du texte coloré (impossible de demander à un rédacteur de recourir à ce genre de méthode).
    La balise couleur_sansCouleur est donc une alternative à ces deux méthodes.
  • La balise couleur_sansCouleur est absente des lignes 56 à 94.
  • Lignes 38 à 51 : indiquent au système que l'application de ces balises personnalisées devra se faire en ligne, c'est à dire qu'elles ne devront pas être directement encadrées par des balises <p> et </p> qui provoqueraient alors un passage à la ligne avant et après le texte mis en couleur.

:
Sur la base du dernier point ci-dessus, on en déduit que la même information devra être passée au système quant à l'affichage du texte coloré sur le site public. Il découle donc de cela que le fichier de surcharge content.ini.append.php du siteaccess public devra également contenir ces lignes:

11 [CustomTagSettings]
12 IsInline[couleur_sansCouleur]=true
13 IsInline[couleur_bleu1]=true
14 IsInline[couleur_bleu2]=true
15 IsInline[couleur_bleu3]=true
16 IsInline[couleur_bleu4]=true
17 IsInline[couleur_bleu5]=true
18 IsInline[couleur_jaune1]=true
19 IsInline[couleur_jaune2]=true
20 IsInline[couleur_orange1]=true
21 IsInline[couleur_orange2]=true
22 IsInline[couleur_orange3]=true
23 IsInline[couleur_rose1]=true
24 IsInline[couleur_rose2]=true
25 IsInline[couleur_rose3]=true

Configuration du fichier de surcharge content.ini.append.php du siteaccess public

  • La liste déroulante de la figure 1 est réalisée par l'appel du template extension/ezoe/design/standard/templates/ezoe/customattributes.tpl
  • La valeur sélectionnée dans le champ Balise fait appel au template extension/ezoe/design/standard/templates/ezoe/customattributes/select.tpl
  • Le nom du champ Bleu1 ainsi que la valeur inscrite dans le champ (voir figure 5) fait appel au template extension/ezoe/design/standard/templates/ezoe/customattributes/text.tpl

Création des templates de vue

Chaque nouvelle balise utilise un template de vue dont le nom est celui de la balise.

La liste suivante de templates doit donc être créée dans design/plain_site/templates/content/datatype/view/ezxmltags/ plain_site correspond au design du siteaccess public:

ls -la design/plain_site/templates/content/datatype/view/ezxmltags/

-rw-r--r-- 1 root     root       11 mai 19 20:48 couleur_sansCouleur.tpl
-rw-r--r-- 1 root     root       90 mai 19 20:57 couleur_bleu1.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_bleu2.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_bleu3.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_bleu4.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_bleu5.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_jaune1.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_jaune2.tpl
-rw-r--r-- 1 root     root       78 mai 19 21:03 couleur_orange1.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_orange2.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_orange3.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_rose1.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_rose2.tpl
-rw-r--r-- 1 root     root       78 mai 19 20:50 couleur_rose3.tpl

Liste des templates à créer dans le répertoire design/plain_site/templates/content/datatype/view/ezxmltags/

A l'exception du template couleur_sansCouleur.tpl, chacun de ces templates contient une ligne semblable à celle-ci:

<span {if is_set( $bleu1 )}style="color: {$bleu1}"{/if}>{$content}</span>

Dans la ligne ci-dessus on voit que l'attribut personnalisé (voir ligne 57, 60, 63 etc...) sert à créer un style color appliqué à la balise <span> dont la valeur est celle associée à l'attribut personnalisé (voir ligne 58, 61, 64 etc...).

Quant au template couleur_sansCouleur.tpl, il contient simplement:

{$content}

Utilisation des nouvelles balises

Après avoir vidé tous les caches il devient possible d'utiliser les nouvelles balises à partir de l'interface de Online Editor.

Pour mettre un caractère, un mot, une phrase ou un paragraphe en couleur, on commence par le surligner puis on clique sur le bouton « Insérer une balise personnalisée»:

Fig. 4: Les 2 premières étapes pour colorer une chaîne de caractères

Le bouton « Insérer une balise personnalisée» engendre l'affichage de la bote de dialogue suivante:

Fig. 5: La boite de dialogue de sélection d'une couleur

...dans laquelle il est possible de sélectionner l'une des nouvelles couleurs que l'on vient de créer:

Fig. 6: Le menu déroulant de sélection d'une couleur

Après avoir choisi une couleur puis valider son choix avec le bouton OK, l'affichage dans le champ de type Block XML du Online Editor ressemble à ceci:

Fig. 7: Affichage par défaut d'un texte coloré dans l'interface de Online Editor

Si l'on clique sur le bouton Envoyer pour publication puis que l'on rafraîchit la page du site public, on obtient alors:

Fig. 8: Affichage par défaut d'un texte coloré sur le site public

II - Configurer l'affichage dans le champ de type Bloc XML de Online Editor

Si l'affichage des couleurs sur le site public répond en tout point à nos attentes, celui de l'interface d'édition dans le champ Bloc XML de Online Editor est perfectible en deux points:

  • Le rédacteur ne voit pas la couleur liée à la balise qu'il sélectionne dans le menu déroulant (voir figure 6),
  • Le rédacteur ne voit pas non plus la couleur affectée à une chaîne de caractères dans le champ Bloc XML de Online Editor (voir figure 7).

Nous allons donc remédier à ces deux carences.

Si l'on observe le code source du texte de la figure 7, on constate que le texte surligné en bleu est lié au code HTML suivant:

<span class="mceItemCustomTag couleur_rose2" customattributes="rose2|#ff00a0" type="custom">Papa Kourand participe au 12ème Festival de la Jeunesse à Moscou</span>

La simple règle CSS suivante:

1 span.couleur_rose2 {
2     background-color: transparent;
3     color: #ff00a0;
4 }

placée dans une feuille de style située obligatoirement dans un sous-répertoire de extension/ezoe/design/standard/stylesheets/skins/xxx/ permettra de modifier ainsi l'affichage dans Online Editor:

Fig. 9: Affichage de la couleur du texte dans l'interface de Online Editor

Définir la feuille de style CSS

Pour indiquer à Online Editor quelle feuille de styles CSS utiliser, vous devez renseigner le tableau EditorCSSFileList[] de la section [StylesheetSettings] du fichier de surcharge extension/ezoe/settings/design.ini.append.php de l'extension ezoe:

[StylesheetSettings]
EditorCSSFileList[]=skins/xxx/onlineEditor.css

où xxx sera remplacer le nom d'un sous-répertoire.

Pensez à vider les caches.

Pour l'ensemble des couleurs définies dans notre exemple, la feuille de styles onlineEditor.css contiendra:

1 span.couleur_sansCouleur {         <== RÈGLE POUR SUPPRIMER LA COULEUR !!!
2     background-color: transparent;
3 }
4 span.couleur_bleu1 {
5     background-color: transparent;
6     color: #000079;
7 }
8 span.couleur_bleu2 {
9     background-color: transparent;
10     color: #334499;
11 }
12 span.couleur_bleu3 {
13     background-color: transparent;
14     color: #4c4c7e;
15 }
16 span.couleur_bleu4 {
17     background-color: transparent;
18     color: #b8bfb8;
19 }
20 span.couleur_bleu5 {
21     background-color: transparent;
22     color: #007bff;
23 }
24 span.couleur_jaune1 {
25     background-color: transparent;
26     color: #ffff00;
27 }
28 span.couleur_jaune2 {
29     background-color: transparent;
30     color: #f5ff00;
31 }
32 span.couleur_orange1 {
33     background-color: transparent;
34     color: #ff7b00;
35 }
36 span.couleur_orange2 {
37     background-color: transparent;
38     color: #feaa33;
39 }
40 span.couleur_orange3 {
41     background-color: transparent;
42     color: #ffc900;
43 }
44 span.couleur_rose1 {
45     background-color: transparent;
46     color: #ed33fe;
47 }
48 span.couleur_rose2 {
49     background-color: transparent;
50     color: #ff00a0;
51 }
52 span.couleur_rose3 {
53     background-color: transparent;
54     color: #ff64ff;
55 }

III - Configurer l'affichage des boites de dialogue de Online Editor

Nous allons à présent configurer l'affichage des couleurs dans le menu déroulant (voir figure 1).

Voici les lignes 4 et 8 du fichier extension/ezoe/design/standard/templates/ezoe/customattributes/select.tpl:

4  <option class="{$custom_value}" value="{if $custom_value|ne('0')}{$custom_value|wash}{/if}"{if $custom_value|eq( $custom_attribute_default )} selected="selected"{/if}>{$custom_name|wash}</option>
8  <option class="{$custom_value}" value="{if $custom_value|ne('0')}{$custom_value|wash}{/if}"{if $custom_value|eq( $custom_attribute_default )} selected="selected"{/if}>{$custom_name|wash}</option>

dans lesquelles j'ai ajouté:

class="{$custom_value}"
  • $custom_value vaut le nom du paramètre personnalisé défini par les lignes 57, 60, 63 etc...

Une feuille de styles CSS placée dans extension/ezoe/design/standard/stylesheets/skins/xxx/ contenant cette règle:

option.couleur_rose1 {
   color: #ed33fe;
}

suffira à colorer l'entrée couleur_rose1 du menu déroulant de la figure 6

Définir la feuille de style CSS

Pour indiquer à Online Editor quelle feuille de styles CSS utiliser pour ses boites de dialogue, vous devez renseigner le tableau EditorDialogCSSFileList[] de la section [StylesheetSettings] du fichier de surcharge extension/ezoe/settings/design.ini.append.php de l'extension ezoe:

[StylesheetSettings]
EditorCSSFileList[]=skins/xxx/onlineEditor.css
EditorDialogCSSFileList[]=skins/xxx/onlineEditorDialog.css

où xxx sera remplacer le nom d'un sous-répertoire.

Pour l'ensemble des couleurs définies dans notre exemple, la feuille de styles onlineEditorDialog.css contiendra:

1 option.couleur_bleu1 {
2     color: #000079;
3 }
4 option.couleur_bleu2 {
5     color: #334499;
6 }
7 option.couleur_bleu3 {
8     color: #4c4c7e;
9 }
10 option.couleur_bleu4 {
11     color: #b8bfb8;
12 }
13 option.couleur_bleu5 {
14     color: #007bff;
15 }
16 option.couleur_jaune1 {
17     color: #ffff00;
18 }
19 option.couleur_jaune2 {
20     color: #f5ff00;
21 }
22 option.couleur_orange1 {
23     color: #ff7b00;
24 }
25 option.couleur_orange2 {
26     color: #feaa33;
27 }
28 option.couleur_orange3 {
29     color: #ffc900;
30 }
31 option.couleur_rose1 {
32     color: #ed33fe;
33 }
34 option.couleur_rose2 {
35     color: #ff00a0;
36 }
37 option.couleur_rose3 {
38     color: #ff64ff;
39 }

Après avoir vidé tous les caches, le résultat obtenu est celui illustré par la figure 2.

IV - Aller un peu plus loin

Il est même possible d'afficher en couleur le contenu du champ Bleu1 de la figure 5.

Pour cela, dans l'unique ligne du template extension/ezoe/design/standard/templates/ezoe/customattributes/text.tpl:

<input type="text" name="{$custom_attribute}" id="{$custom_attribute_id}_source" value="{$custom_attribute_default|wash}"{if $custom_attribute_disabled} disabled="disabled"{/if} class="{$custom_attribute_classes|implode(' ')}" title="{$custom_attribute_title|wash}" />

on remplace la chaîne:

class="{$custom_attribute_classes|implode(' ')}"

par:

style="color:{$custom_attribute_default|wash};"

Et on vide les caches pour obtenir ceci:

Fig. 10: La couleur affichée dans le deuxième champ s'adapte en temps réel au choix fait dans la liste déroulante Balise

:
Je ne crois pas qu'il soit actuellement possible d'afficher la couleur pour la balise personnalisée qui est sélectionnée et affichée par le champ Balise. Repportez-vous au template extension/ezoe/design/standard/templates/ezoe/customattributes/select.tpl

:
Dans les paragraphes II, III et IV, ce sont les fichiers et templates par défaut qui ont été modifiés. Ils seront donc écrasé lors d'une mise à jour de eZ Publish.



Table des matières

  1. eZ Publish : ezoe - Online Editor 5.0
  2. Version enrichie de Online Editor 5.0
  3. Modifier son apparence
  4. Version mini / simple formatting
  5. Configurer les couleurs
  6. Gestion des images
  7. Souligner du texte
  8. Exposant et indice
  9. Fonctions rechercher et remplacer
  10. Configurer le correcteur orthographique
  11. Ajouter des caractères spéciaux
  12. Aligner du texte dans les cases d'un tableau

Commentaires

  • @Camille

    Bonjour,

    Je ne sais pas répondre clairement à ta question, je n'ai jamais cherché à réaliser ce que tu souhaites faire.
    Peut-être devrais-tu poster ici http://share.ez.no/forums/extensions ou ici http://projects.ez.no/ezoe/forum

    Par ailleurs, voici ce que j’essaierais de faire:

    - activer un bouton (à partir de extension/ezoe/settings/ezoe.ini) lié à une fonction qui ne m'intéresse pas
    - modifier l'icône associée au bouton
    - trouver le template associé à la fonction liée au bouton
    - modifier ce template pour qu'il fasse ce que je souhaite

    C'est une piste de travail. Je ne garantis pas le résultat ;-)

    Créer un bouton dans la toolbar de l'éditeur

    Bonjour,

    Je souhaitai savoir s'il était possible de créer un nouveau bouton dans la barre de l'éditeur de eZ publish ?

    En gros, je souhaite suivre votre tutoriel, en créant un nouveau bouton dans la barre de l'éditeur sans passer par le bouton "Insérer une balise personnalisée", est ce que c'est possible ?

    Voici un exemple pour être plus clair, je souhaite ajouter un bouton qui fonctionnement un peu comme le bouton "Anchor" : sélection d'une chaine de mots dans l'éditeur, clique sur mon nouveau bouton, ouverture d'une pop-up permettant de renseigner une donnée, validation de la fenêtre et ajout de code HTML autour du texte sélectionné qui modifiera le rendu visuelle du texte dans le site.

    En espérant avoir réussi à être compréhensive, j'espère avoir une réponse de votre part.

    Par avance, merci de tout retour.

    Camille

    Modification des classes pour l'insertion d'objets

    Bonjour,

    Merci pour ce superbe article très détaillé.

    Je cherche une ressource dans le même genre, mais qui détaille la personnalisation des classes utilisées (embed, inline, embed-inline...) lors de l'insertion d'objet.... pour créer par exemple un nouveau type d'insertion d'un dossier "news" pour ne prendre que la dernière news et l'afficher d'un façon spéciale (un "à la une par exemple"), sans modifier ce qui existe...
    Est ce que vous auriez un lien, quelques indications...?
    Merci!