X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins%2Fauto%2Fcouteau_suisse%2Fcouteau_suisse%2Foutils%2Fsmileys.php;fp=www%2Fplugins%2Fauto%2Fcouteau_suisse%2Fcouteau_suisse%2Foutils%2Fsmileys.php;h=bd54eedbb2ab3d1cb8d6e5aba8fa96060699d6f1;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hp=0000000000000000000000000000000000000000;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c;p=velocampus%2Fweb%2Fwww.git diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/outils/smileys.php b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/smileys.php new file mode 100644 index 0000000..bd54eed --- /dev/null +++ b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/smileys.php @@ -0,0 +1,186 @@ + + $tab[0][1][] = cs_code_echappement("$espace", 'SMILE'); + $tab[0][2][] = $file; + $tab['racc'][] = $smy; + // pour le porte-plume + $tab[0][4]['smiley_'.$img] = $file; +} + +// cette fonction appelee automatiquement a chaque affichage de la page privee du Couteau Suisse renvoie un tableau +function smileys_installe_dist($tab = array(0 => array(), 'racc' => array())) { + // l'ordre des smileys ici est important : + // - les doubles, puis les simples, puis les courts + // - le raccourci insere par la balise #SMILEYS est la premiere occurence de chaque fichier + $smileys = array( + // attention ' est different de â (’) (SPIP utilise/ecrit ce dernier) + ":’-))"=> 'pleure_de_rire', + ":’-)"=> 'pleure_de_rire', + ":’-D" => 'pleure_de_rire', + ":’-(" => 'triste', + + // les doubles : + ':-))' => 'mort_de_rire', + ':))' => 'mort_de_rire', + ":'-))"=> 'pleure_de_rire', + ':-((' => 'en_colere', + + // les simples : + ';-)' => 'clin_d-oeil', + ':-)' => 'sourire', + ':-D' => 'mort_de_rire', + ":'-)"=> 'pleure_de_rire', + ":'-D" => 'pleure_de_rire', + ':-(' => 'pas_content', + ":'-(" => 'triste', + ':->' => 'diable', + '|-)' => 'rouge', + ':o)' => 'rigolo', + 'B-)' => 'lunettes', + ':-P' => 'tire_la_langue', + ':-p' => 'tire_la_langue', + ':-|' => 'bof', + ':-/' => 'mouais', + ':-O' => 'surpris', + ':-o' => 'surpris', + + // les courts : tester a l'usage... + // attention : ils ne sont reconnus que s'il y a un espace avant ! + ':)' => 'sourire', + ':(' => 'pas_content', + ';)' => 'clin_d-oeil', + ':|' => 'bof', + '|)' => 'rouge', + ':/' => 'mouais', + ); + + foreach ($smileys as $smy=>$val) + compile_smiley($tab, $smy, $val); + + return $tab; +} + +// liste des nouveaux raccourcis ajoutes par l'outil +// si cette fonction n'existe pas, le plugin cherche alors _T('couteauprive:un_outil:aide'); +function smileys_raccourcis() { + $racc = cs_lire_data_outil('smileys', 'racc'); + return _T('couteauprive:smileys:aide', array('liste' => ''.join(', ', $racc).'')); +} + +function smileys_echappe_balises_callback($matches) { + return cs_code_echappement($matches[1], 'SMILE'); +} + +// fonction de remplacement +// les balises suivantes sont protegees : html|code|cadre|frame|script|acronym|cite +function cs_rempl_smileys($texte) { + if (strpos($texte, ':')===false && strpos($texte, ')')===false) return $texte; + $smileys_rempl = cs_lire_data_outil('smileys'); + // protection des images, on ne sait jamais... + $texte = preg_replace_callback(',(),ms', 'smileys_echappe_balises_callback', $texte); + // smileys a probleme : + $texte = str_replace(':->', ':->', $texte); // remplacer > par > + // remplacer â (apostrophe curly) par ’ + $texte = str_replace(':â-', ':’-', $texte); + $texte = str_replace(':'.chr(146).'-', ':’-', $texte); + // voila, on remplace tous les smileys d'un coup... + $texte = str_replace($smileys_rempl[0], $smileys_rempl[1], $texte); + return echappe_retour($texte, 'SMILE'); +} + +// fonction principale (pipeline pre_typo) +function cs_smileys_pre_typo($texte) { + if (strpos($texte, ':')===false && strpos($texte, ')')===false) return $texte; + // appeler cs_rempl_smileys() une fois que certaines balises ont ete protegees + return cs_echappe_balises('html|code|cadre|frame|script|acronym|cite', 'cs_rempl_smileys', $texte); +} + +// fonction qui renvoie un tableau de smileys uniques +function smileys_uniques($smileys) { + $max = count($smileys[1]); + $new = array(array(), array(), array()); + for ($i=0; $i<$max; $i++) { + if(!in_array($smileys[2][$i], $new[2])) { + $new[0][] = $smileys[0][$i]; // texte + $new[1][] = $smileys[1][$i]; // image + $new[2][] = $smileys[2][$i]; // nom de fichier + } + } + return $new; +} + +// cette fonction renvoie une ligne de tableau entre