source: spip-zone/_plugins_/_stable_/tweak_spip/tweaks/couleurs.php @ 11648

Last change on this file since 11648 was 11648, checked in by patfr@…, 13 years ago

On commence très doucement la longue mutation des noms...

File size: 4.3 KB
Line 
1<?php
2
3/*
4   Ce tweak en couleurs permet aux redacteurs d'un site spip de d'appliquer facilement des couleurs aux textes SPIP
5   Utilisation pour le redacteur :
6                [rouge]Lorem ipsum dolor sit amet[/rouge]
7                [red]Lorem ipsum dolor sit amet[/red]
8   Les balises anglaises sont les couleurs utilisees dans les feuilles de style.
9   Attention : seules les balises en minuscules sont reconnues.
10*/
11/*
12 *   +----------------------------------+
13 *    Nom du Tweak : Couleurs dans vos textes
14 *   +----------------------------------+
15 *    Date : Vendredi 11 août 2003
16 *    Idee originale :  Aurelien PIERARD : aurelien.pierard(a)dsaf.pm.gouv.fr
17 *    Serieuse refonte et integration en tweak : Patrice Vanneufville, mars 2007
18 *   +-------------------------------------+
19 * 
20*/
21
22// cette fonction est appelee automatiquement a chaque affichage de la page privee de Tweak SPIP
23function couleurs_installe() {
24cout_log("couleurs_installe()");
25
26        $couleurs = array(
27                array('noir', 'rouge', 'marron', 'vert', 'vert olive', 'bleu marine', 'violet', 'gris', 'argent', 'vert clair', 'bleu', 'fuchia', 'bleu clair', 
28                'blanc', 'bleu azur', 'beige', 'brun', 'bleu violet', 'brun clair', 'rose clair', 'vert fonce', 'orange fonce', 'mauve fonce', 'bleu ciel', 'or', 
29                'ivoire', 'orange', 'lavande', 'rose', 'prune', 'saumon', 'neige', 'turquoise', 'jaune paille', 'jaune'),
30                array('black', 'red', 'maroon', 'green', 'olive', 'navy', 'purple', 'gray', 'silver', 'chartreuse', 'blue', 'fuchsia', 'aqua', 
31                'white', 'azure', 'bisque', 'brown', 'blueviolet', 'chocolate', 'cornsilk', 'darkgreen', 'darkorange', 'darkorchid', 'deepskyblue', 'gold', 
32                'ivory', 'orange', 'lavender', 'pink', 'plum', 'salmon', 'snow', 'turquoise', 'wheat', 'yellow') );
33
34        foreach ($couleurs[0] as $c=>$val) $couleurs[2][$val] = $couleurs[1][$c];
35        $aide = '<strong>'.join('</strong>, <strong>', array_merge($couleurs[0], $couleurs[1])).'</strong>';
36        $couleurs[0] = join('|', $couleurs[0]);
37        $couleurs[1] = join('|', $couleurs[1]);
38
39        // sauvegarde en meta : aide
40        ecrire_meta('tweaks_couleurs_racc', $aide);
41        // sauvegarde en meta : couleurs
42        ecrire_meta('tweaks_couleurs', serialize($couleurs));
43        ecrire_metas();
44}
45
46// cette fonction est appelee automatiquement a chaque affichage de la page privee de Tweak SPIP
47// le resultat est une chaine apportant des informations sur les nouveaux raccourcis ajoutes par le tweak
48// si cette fonction n'existe pas, le plugin cherche alors  _T('cout:un_outil:aide');
49function couleurs_raccourcis() {
50        return _T('cout:couleurs:aide', array('liste' => $GLOBALS['meta']['tweaks_couleurs_racc']));
51}
52
53// callbacks
54function couleurs_texte_callback($matches) {
55        global $tweak_couleurs;
56        return "<span style=\"color:{$tweak_couleurs[2][$matches[1]]};\">";
57}
58function couleurs_fond_callback($matches) {
59        global $tweak_couleurs;
60        return "<span style=\"background-color:{$tweak_couleurs[2][$matches[2]]};\">";
61}
62
63// cette fonction n'est pas appelee dans les balises html : html|code|cadre|frame|script
64function couleurs_rempl($texte) {
65        if (strpos($texte, '[')===false || strpos($texte, '/')===false) return $texte;
66        // pour les callbacks
67        global $tweak_couleurs;
68        // lecture des metas
69        $tweak_couleurs = unserialize($GLOBALS['meta']['tweaks_couleurs']);
70        // voila, on remplace tous les raccourcis francais...
71        $texte = preg_replace_callback(",\[($tweak_couleurs[0])\],", 'couleurs_texte_callback', $texte);
72        $texte = preg_replace_callback(",\[(bg|fond)\s+($tweak_couleurs[0])\],", 'couleurs_fond_callback', $texte);
73        // raccourcis anglais, plus facile...
74        $texte = preg_replace(",\[($tweak_couleurs[1])\],", '<span style="color:$1;">', $texte);
75        $texte = preg_replace(",\[(bg|fond)\s+($tweak_couleurs[1])\],", '<span style="background-color:$2;">', $texte);
76        // et toutes les balises de fin...
77        $texte = preg_replace(",\[/(couleur|$tweak_couleurs[0]|color|$tweak_couleurs[1])\],", '</span>', $texte);
78        // menage
79        unset($tweak_couleurs);
80        return $texte; 
81}
82
83function couleurs_pre_typo($texte) {
84        if (strpos($texte, '[')===false || strpos($texte, '/')===false) return $texte;
85        if (!isset($GLOBALS['meta']['tweaks_couleurs']) || isset($GLOBALS['var_mode']))
86                couleurs_installe();
87        // appeler couleurs_rempl() une fois que certaines balises ont ete protegees
88        return tweak_echappe_balises('', 'couleurs_rempl', $texte);
89}
90
91?>
Note: See TracBrowser for help on using the repository browser.