Changeset 118087 in spip-zone


Ignore:
Timestamp:
Oct 9, 2019, 5:00:26 PM (12 months ago)
Author:
cedric@…
Message:

Et voila les frimouses dans le 3eme millenaire : on utilise des emojis pour substituer les raccourcis ascii
Les images du dossier frimousses/ sont utilisees pour les icones du porte plume qui necessite absolument une image (a revoir...). Ce sont ni plus ni moins des screenshots reduits en 32px pour chaque code hexa
On passe en test puisque ca marche chez moi (tm)

Location:
_plugins_/frimousses/trunk
Files:
18 added
19 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/frimousses/trunk/frimousses_fonctions.php

    r118086 r118087  
    99 * @return array
    1010 */
    11 function frimousses_liste_smileys(){
    12 
    13         /*Listes des images a associer aux smileys*/
    14 
     11function frimousses_liste_smileys($hexa=null){
     12
     13        /*
     14         * Listes des hexa emoji a associer aux smileys
     15         * http://www.unicode.org/emoji/charts/full-emoji-list.html
     16         */
    1517        $les_smileys = Array
    1618        (
    17                 'smiley-lol-16.png' => Array
     19                '1F604' => Array
    1820                (
    1921                        ':-))',
     
    2224                )
    2325        ,
    24                 'smiley-kiss-16.png' => Array
     26                '1F617' => Array
    2527                (
    2628                        ':-)*',
     
    2830                )
    2931        ,
    30                 'smiley-16.png' => Array
     32                '1F642' => Array
    3133                (
    3234                        ':-)',
     
    3638                )
    3739        ,
    38                 'smiley-angel-16.png' => Array
     40                '1F607' => Array
    3941                (
    4042                        'o:)',
     
    4345                )
    4446        ,
    45                 'smiley-eek-16.png' => Array
     47                '1F633' => Array
    4648                (
    4749                        '%-)',
     
    4951                )
    5052        ,
    51                 'smiley-wink-16.png' => Array
     53                '1F609' => Array
    5254                (
    5355                        ';-)'
    5456                )
    5557        ,
    56                 'smiley-sad-16.png' => Array
     58                '1F641' => Array
    5759                (
    5860                        ':-((',
     
    6062                )
    6163        ,
    62                 'smiley-yell-16.png' => Array
     64                '1F621' => Array
    6365                (
    6466                        ':-O',
     
    6668                )
    6769        ,
    68                 'smiley-neutral-16.png' => Array
     70                '1F610' => Array
    6971                (
    7072                        ':-|',
     
    7274                )
    7375        ,
    74                 'smiley-confuse-16.png' => Array
     76                '1F615' => Array
    7577                (
    7678                        ':-/'
    7779                )
    7880        ,
    79                 'smiley-razz-16.png' => Array
     81                '1F61B' => Array
    8082                (
    8183                        ':-p',
     
    8385                )
    8486        ,
    85                 'smiley-cry-16.png' => Array
     87                '1F622' => Array
    8688                (
    8789                        ':\'-(',
     
    9092                )
    9193        ,
    92                 'smiley-red-16.png' => Array
     94                '1F60A' => Array
    9395                (
    9496                        ':-...',
     
    100102                )
    101103        ,
    102                 'smiley-zipper-16.png' => Array
     104                '1F910' => Array
    103105                (
    104106                        ':-x'
    105107                )
    106108        ,
    107                 'smiley-cool-16.png' => Array
     109                '1F60E' => Array
    108110                (
    109111                        'B-)'
    110112                )
    111113        ,
    112                 'smiley-sleep-16.png' => Array
     114                '1F634' => Array
    113115                (
    114116                        ':-@'
    115117                )
    116118        ,
    117                 'smiley-money-16.png' => Array
     119                '1F911' => Array
    118120                (
    119121                        ':-$'
    120122                )
    121123        ,
    122                 'smiley-roll-16.png' => Array
     124                '1F644' => Array
    123125                (
    124126                        ':-!'
     
    127129        );
    128130
     131        if($hexa) {
     132                return (isset($les_smileys[$hexa]) ? $les_smileys[$hexa] : null);
     133        }
     134
    129135        return $les_smileys;
    130136}
    131 
    132 //
    133 //
    134 //
    135 //
    136 // http://www.spip-contrib.net/Smileys-III-Un-point-d-entree-pour
    137137
    138138/**
     
    152152        static $replace2 = null;
    153153        if (!$replace1 OR !$replace2){
    154                 foreach (frimousses_liste_smileys() as $file => $smileys){
    155                         $alt = _T('smileys:' . $smileys[0]);
    156                         $alt = attribut_html($alt);
    157                         $r = "<img src=\"" . find_in_path('frimousses/' . $file) . '" width="16" height="16" alt="' . $alt . '" title="' . $alt . '" class="smiley" />';
     154                foreach (frimousses_liste_smileys() as $hexa => $smileys){
     155                        $title = _T('smileys:' . $smileys[0]);
     156                        $r = frimousse_affiche_smiley($hexa, $title);
    158157                        // 4 regexp simples qui accrochent sur le premier char
    159158                        // sont plus rapides qu'une regexp complexe qui oblige a des retour en arriere
     
    186185        $frimousses = frimousses_liste_smileys();
    187186
    188         foreach ($frimousses as $file => $smiley){
    189                 $alt = _T('smileys:' . $smiley[0]);
    190                 $alt = attribut_html($alt);
    191                 $smiley = "<span class=\\\"smiley_nom_variante\\\">" . implode("</span> <span class=\\\"smiley_nom_variante\\\">", $smiley) . "</span>";
    192                 $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\\\" title=\\\"$alt\\\"/> <span class=\\\"smiley_alt\\\" />$alt</span></li>\n";
     187        foreach ($frimousses as $hexa => $smileys){
     188                $title = _T('smileys:' . $smileys[0]);
     189                $smileys = "<span class=\\\"smiley_nom_variante\\\">" . implode("</span> <span class=\\\"smiley_nom_variante\\\">", $smileys) . "</span>";
     190                $p->code .= "<li class=\\\"item smiley\\\"><span class=\\\"smiley_nom\\\">$hexa $smileys</span> " . str_replace('"',"\\\"", frimousse_affiche_smiley($hexa, $title)) . " <span class=\\\"smiley_alt\\\" />$title</span></li>\n";
    193191        }
    194192        $p->code .= '</ul>"';
     
    197195        return $p;
    198196}
     197
     198/**
     199 * Genere le code html d'un smiley a partir de son hexa et title
     200 * @param $hexa
     201 * @param null|string $title
     202 * @return string
     203 */
     204function frimousse_affiche_smiley($hexa, $title=null) {
     205
     206        if (is_null($title)) {
     207                $title = '';
     208                if ($smileys = frimousses_liste_smileys($hexa)) {
     209                        $title = $smileys[0];
     210                }
     211        }
     212
     213        $title = attribut_html($title);
     214        return '<b class="smiley" title="' . $title . '" class="smiley">'.frimousses_hexaToString($hexa).'</b>';
     215}
     216
     217/**
     218 * Converti le code hexa de l'emoji en chaine utf8/utf16
     219 * @param string $hexa
     220 * @return string
     221 */
     222function frimousses_hexaToString($hexa) {
     223        //return eval("\\u"."{".$hexa."}");
     224        $em = hexdec($hexa);
     225        if ($em>0x10000){
     226                $first = (($em-0x10000) >> 10)+0xD800;
     227                $second = (($em-0x10000)%0x400)+0xDC00;
     228                return json_decode('"' . sprintf("\\u%X\\u%X", $first, $second) . '"');
     229        } else {
     230                return json_decode('"' . sprintf("\\u%X", $em) . '"');
     231        }
     232}
     233
    199234
    200235/**
     
    208243        $outil_frimousses = array();
    209244        $compteur = 0;
    210         foreach ($frimousses as $file => $smiley){
     245        foreach ($frimousses as $hexa => $smiley){
    211246                $outil_frimousses[] = array(
    212247                        "id" => "barre_frimousse$compteur",
     
    222257        foreach (array('edition', 'forum') as $nom){
    223258                $barre = &$barres[$nom];
    224 
    225                 $module_barre = "barre_outils";
    226                 if (intval($GLOBALS['spip_version_branche'])>2){
    227                         $module_barre = "barreoutils";
    228                 }
    229259
    230260                $smiley_par_defaut = ':-)';
     
    250280
    251281        $frimousses = array_keys(frimousses_liste_smileys());
    252         foreach ($frimousses as $compteur => $file){
    253                 $outils_frimousses["outil_frimousses$compteur"] = array(find_in_path('frimousses/' . $file), '0');
     282        foreach ($frimousses as $compteur => $hexa){
     283                $outils_frimousses["outil_frimousses$compteur"] = array(find_in_path('frimousses/emoji-' . $hexa . '.png'), '0;background-size:contain;');
    254284        }
    255285
  • _plugins_/frimousses/trunk/lang/smileys_en.php

    r91055 r118087  
    1919        'B-)'=> 'sunglasses',
    2020        ':-@'=> 'sleeping',
    21         ':$'=> 'money',
     21        ':-$'=> 'money',
    2222        ':-!'=> 'thinking',
    2323        '|-)'=> 'neutral',
  • _plugins_/frimousses/trunk/lang/smileys_fr.php

    r91055 r118087  
    1919        'B-)'=> 'lunettes de soleil',
    2020        ':-@'=> 'endormi',
    21         ':$'=> 'avide',
    22         ':-!'=> 'indéci',
     21        ':-$'=> 'avide',
     22        ':-!'=> 'indécis',
    2323        '|-)'=> 'neutre',
    2424);
  • _plugins_/frimousses/trunk/paquet.xml

    r118086 r118087  
    33        categorie="edition"
    44        version="2.0.0"
    5         etat="dev"
     5        etat="test"
    66        compatibilite="[3.1.0;3.3.*]"
    77        logo="img/frimousses-32.png"
Note: See TracChangeset for help on using the changeset viewer.