source: spip-zone/_plugins_/frimousses/frimousses_fonctions.php @ 87498

Last change on this file since 87498 was 87498, checked in by cedric@…, 5 years ago

Revert de r79680 : la balise html permet d'echapper l'image et d'etre sur qu'elle ne sera pas alteree par propre()

File size: 4.6 KB
Line 
1<?php
2if (!isset($GLOBALS['spip_version_branche']) OR intval($GLOBALS['spip_version_branche'])<2){
3        $p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
4        define('_DIR_PLUGIN_FRIMOUSSES',(_DIR_PLUGINS.end($p)).'/');
5}
6
7function frimousses_liste_smileys() {
8 
9  /*Listes des images a associer aux smileys*/
10
11        $les_smileys = array();
12        $les_smileys[':-)*'] = 'smiley-kiss-16.png';
13        $les_smileys[':-))'] = 'smiley-lol-16.png';
14        $les_smileys[':-)'] = 'smiley-16.png';
15        $les_smileys['o:)'] = 'smiley-angel-16.png';
16        $les_smileys['O:)'] = 'smiley-angel-16.png';
17        $les_smileys['0:)'] = 'smiley-angel-16.png';
18        $les_smileys[':))'] = 'smiley-lol-16.png';
19        $les_smileys[':)'] = 'smiley-16.png';
20        $les_smileys['%-)'] = 'smiley-eek-16.png';
21        $les_smileys[';-)'] = 'smiley-wink-16.png';
22        $les_smileys[';)'] = 'smiley-wink-16.png';
23        $les_smileys[':-(('] = 'smiley-sad-16.png';
24        $les_smileys[':-('] = 'smiley-sad-16.png';
25        $les_smileys[':('] = 'smiley-sad-16.png';
26        $les_smileys[':-O'] = 'smiley-yell-16.png';
27        $les_smileys[':O)'] = 'smiley-16.png';
28        $les_smileys[':O'] = 'smiley-yell-16.png';
29        $les_smileys[':-D'] = 'smiley-lol-16.png';
30        $les_smileys[':D'] = 'smiley-lol-16.png';
31        $les_smileys[':o)'] = 'smiley-16.png';
32        $les_smileys[':0)'] = 'smiley-16.png';
33        $les_smileys[':0'] =  'smiley-yell-16.png';
34        $les_smileys[':-|'] = 'smiley-neutral-16.png';
35        $les_smileys[':|'] = 'smiley-neutral-16.png';
36        $les_smileys[':-/'] = 'smiley-confuse-16.png';
37        $les_smileys[':/'] = 'smiley-confuse-16.png';
38        $les_smileys[':-p'] = 'smiley-razz-16.png';
39        $les_smileys[':-P'] = 'smiley-razz-16.png';
40        $les_smileys[':p'] = 'smiley-razz-16.png';
41        $les_smileys[':P'] = 'smiley-razz-16.png';
42        $les_smileys[':\'-('] = 'smiley-cry-16.png';
43        $les_smileys[':\'('] = 'smiley-cry-16.png';
44        $les_smileys[':-...'] = 'smiley-red-16.png';
45        $les_smileys[':...'] = 'smiley-red-16.png';
46        $les_smileys[':-..'] = 'smiley-red-16.png';
47        $les_smileys[':..'] = 'smiley-red-16.png';
48        $les_smileys[':-.'] = 'smiley-red-16.png';
49        $les_smileys[':.'] = 'smiley-red-16.png';
50        $les_smileys[':-x'] = 'smiley-zipper-16.png';
51        $les_smileys[':x'] = 'smiley-zipper-16.png';
52        $les_smileys['B-)'] = 'smiley-cool-16.png';
53        $les_smileys['B)'] = 'smiley-cool-16.png';
54        $les_smileys[':-@'] = 'smiley-sleep-16.png';
55        $les_smileys[':@'] = 'smiley-sleep-16.png';
56        $les_smileys[':$'] = 'smiley-money-16.png';
57        $les_smileys[':-*'] = 'smiley-kiss-16.png';
58        $les_smileys[':*'] = 'smiley-kiss-16.png';
59        $les_smileys[':-!'] = 'smiley-roll-16.png';
60        $les_smileys[':!'] = 'smiley-roll-16.png';
61        $les_smileys['8-)'] = 'smiley-eek-16.png';
62        $les_smileys['8)'] = 'smiley-eek-16.png';
63        $les_smileys['|-)'] = 'smiley-neutral-16.png';
64        $les_smileys['|)'] = 'smiley-neutral-16.png';
65
66        return $les_smileys;
67}
68
69// Filtre SMILEYS - 19 Dec. 2004
70//
71// pour toute suggestion, remarque, proposition d'ajout d'un
72// smileys, etc ; reportez vous au forum de l'article :
73// http://www.spip-contrib.net/Smileys-III-Un-point-d-entree-pour
74
75function frimousses_pre_propre($chaine) {
76        if (strpos($chaine, ':')===false && strpos($chaine, ')')===false) {return $chaine;}
77
78        static $replace1 = null;
79        static $replace2 = null;
80        if (!$replace1 OR !$replace2){
81                foreach(frimousses_liste_smileys() as $smiley => $file) {
82                        $alt = _T('smileys:'.$smiley);
83                  $alt = attribut_html($alt);
84                        $smiley = preg_quote($smiley,'/');
85                        $r = "<img src=\"".find_in_path('frimousses/'.$file).'" width="16" height="16" alt="'.$alt.'" title="'.$alt.'" class="smiley" />';
86                        // 4 regexp simples qui accrochent sur le premier char
87                        // sont plus rapides qu'une regexp complexe qui oblige a des retour en arriere
88                        $replace1['/^'.$smiley.'/imsS'] = "<html>$r</html>";
89                        $replace1['/\s'.$smiley.'/imsS'] = "<html>&nbsp;$r</html>";
90                        $replace2['/^&nbsp;'.$smiley.'/imsS'] = "<html>$r</html>";
91                        $replace2['/&nbsp;'.$smiley.'/imsS'] = "<html>&nbsp;$r</html>";
92                }
93  }
94
95  $chaine = preg_replace(array_keys($replace1),array_values($replace1),$chaine);
96        if (strpos($chaine,'&')!==false)
97                $chaine = preg_replace(array_keys($replace2),array_values($replace2),$chaine);
98
99        return $chaine;
100}
101
102function balise_SMILEY_DISPO($p) {
103
104  $p->code = '"<ul class=\"listes-items smileys\">';
105  foreach(frimousses_liste_smileys() as $smiley => $file) {
106                $alt = _T('smileys:'.$smiley);
107                $alt = attribut_html($alt);
108                $p->code .= "<li class=\\\"item smiley\\\"> <span class=\\\"smiley_nom\\\">$smiley</span><img  class=\\\"smiley_image\\\" src=\\\"".find_in_path("frimousses/$file")."\\\" width=\\\"16\\\" height=\\\"16\\\" alt=\\\"$alt\\\"/> <span class=\\\"smiley_alt\\\" />$alt</span></li>\n";
109  }
110  $p->code .= '</ul>"';
111  $p->type = 'html';
112 
113  return $p;
114}
115
116?>
Note: See TracBrowser for help on using the repository browser.