[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / smileys_fonctions.php
diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/outils/smileys_fonctions.php b/www/plugins/auto/couteau_suisse/couteau_suisse/outils/smileys_fonctions.php
new file mode 100644 (file)
index 0000000..900ac6a
--- /dev/null
@@ -0,0 +1,104 @@
+<?php\r
+\r
+// Outil SMILEYS - 25 decembre 2006\r
+// balise #SMILEYS : Patrice Vanneufville, 2007\r
+// Toutes les infos sur : http://www.spip-contrib.net/?article1561\r
+// dessin des frimousses : Sylvain Michel [http://www.guaph.net/]\r
+\r
+function balise_SMILEYS_dist($p) {\r
+       // Fonctions abandonnees par le plugin Porte Plume\r
+       $js_compat = !defined('_DIR_PLUGIN_PORTE_PLUME')?"":"<script type=\"text/javascript\">/*<![CDATA[*/\r
+// From SPIP 2.0 (spip_barre.js)\r
+if(typeof barre_inserer!='function') { function barre_inserer(text,champ) {\r
+       var txtarea = champ;\r
+       if(document.selection){\r
+               txtarea.focus();\r
+               var r = document.selection.createRange();\r
+               if (r == null) {\r
+                       txtarea.selectionStart = txtarea.value.length;\r
+                       txtarea.selectionEnd = txtarea.selectionStart;\r
+               } else {\r
+                       var re = txtarea.createTextRange();\r
+                       var rc = re.duplicate();\r
+                       re.moveToBookmark(r.getBookmark());\r
+                       rc.setEndPoint('EndToStart', re);\r
+                       txtarea.selectionStart = rc.text.length;\r
+                       txtarea.selectionEnd = rc.text.length + r.text.length;\r
+               }\r
+       } \r
+       mozWrap(txtarea, '', text);\r
+}}\r
+// From http://www.massless.org/mozedit/\r
+if(typeof mozWrap!='function') { function mozWrap(txtarea, open, close) {\r
+       var selLength = txtarea.textLength;\r
+       var selStart = txtarea.selectionStart;\r
+       var selEnd = txtarea.selectionEnd;\r
+       if (selEnd == 1 || selEnd == 2) selEnd = selLength;\r
+       var selTop = txtarea.scrollTop;\r
+       // Raccourcir la selection par double-clic si dernier caractere est espace      \r
+       if (selEnd - selStart > 0 && (txtarea.value).substring(selEnd-1,selEnd) == ' ') selEnd = selEnd-1;\r
+       var s1 = (txtarea.value).substring(0,selStart);\r
+       var s2 = (txtarea.value).substring(selStart, selEnd)\r
+       var s3 = (txtarea.value).substring(selEnd, selLength);\r
+       txtarea.value = s1 + open + s2 + close + s3;\r
+       selDeb = selStart + open.length;\r
+       selFin = selEnd + close.length;\r
+       window.setSelectionRange(txtarea, selDeb, selFin);\r
+       txtarea.scrollTop = selTop;\r
+       txtarea.focus();\r
+       return;\r
+}}\r
+/*]]>*/</script>\n";\r
+       // le tableau des smileys est present dans les metas\r
+       $smileys = cs_lire_data_outil('smileys');;\r
+       // valeurs par defaut\r
+       $nb_col = 8;\r
+       $titre = _T('couteau:smileys_dispos');\r
+       $head = '';\r
+       $liens = false;\r
+       // traitement des arguments : [(#SMILEYS{arg1, arg2, ...})]\r
+       $n=1;\r
+       $arg = interprete_argument_balise($n++,$p);\r
+       while ($arg){\r
+               // un nombre est le nombre de colonne\r
+               if (preg_match(",'([0-9]+)',", $arg, $reg)) \r
+                       $nb_col = intval($reg[1]);\r
+               // on veut un titre\r
+               elseif ($arg=="'titre'") \r
+                       $head = "<thead><tr class=\"row_first\"><td colspan=\"$nb_col\">$titre</td></tr></thead>";\r
+               // on veut un lien d'insertion sur chaque smiley\r
+               elseif ($arg=="'liens'") {\r
+                       $liens = true;\r
+                       include_spip('outils/smileys');\r
+                       $smileys = smileys_uniques($smileys);\r
+               }\r
+               $arg = interprete_argument_balise($n++,$p);\r
+       }\r
+       $max = count($smileys[0]);\r
+       if (!$nb_col) $nb_col = $max;\r
+       $html = "<table summary=\"$titre\" class=\"spip cs_smileys smileys\">$head";\r
+       $l = 1;\r
+       for ($i=0; $i<$max; $i++) {\r
+               if ($i % $nb_col == 0) {\r
+                       $class = 'row_'.alterner($l++, 'even', 'odd');\r
+                       $html .= "<tr class=\"$class\">";\r
+               }\r
+               $html .= $liens\r
+                       ?"<td><a href=\"javascript:barre_inserer('{$smileys[0][$i]}',document.getElementById('".(defined('_SPIP19300')?'texte':'textarea_1')."'))\">{$smileys[1][$i]}</a></td>"\r
+                       :"<td>{$smileys[1][$i]}<br />{$smileys[0][$i]}</td>";\r
+               if ($i % $nb_col == $nb_col - 1)\r
+                       $html .= "</tr>\n";\r
+       }\r
+       // on finit la ligne qd meme...\r
+       if ($i = $max % $nb_col) $html .= str_repeat('<td>&nbsp;</td>', $nb_col - $i) . '</tr>';\r
+\r
+       // accessibilite : alt et title avec le smiley en texte\r
+       $html = $js_compat . echappe_retour($html, 'SMILE');\r
+       $html = str_replace("'", "\'", $html);\r
+       $p->code = "'$html\n</table>\n'";\r
+       $p->interdire_scripts = false;\r
+       $p->type = 'html';\r
+       return $p;\r
+}\r
+\r
+?>
\ No newline at end of file