+<?php\r
+\r
+// module inclu dans la description de l'outil en page de configuration\r
+\r
+include_spip('inc/actions');\r
+\r
+function spam_filtre_de_test($texte) {\r
+ if (!strlen($texte)) return '';\r
+ $spam = cs_lire_data_outil('spam');\r
+ $test = false;\r
+ return cs_test_spam($spam, $texte, $test)?'ko':'ok';\r
+}\r
+\r
+function spam_filtre_de_test_ip($texte, $liste=false) {\r
+ if (!strlen($texte)) return '';\r
+ if(!preg_match_all(',\d+\.\d+\.\d+\.\d+,', $texte, $regs, PREG_PATTERN_ORDER)) return '';\r
+ $res = array();\r
+ $spam = cs_lire_data_outil('spam');\r
+ foreach($regs[0] as $r) {\r
+ $test = $spam[3]?preg_match($spam[3], "$r"):false;\r
+ if(!$liste) { if($test) return 'ko'; }\r
+ else $res[] = _T('couteauprive:spam_ip', array('ip'=>$r)).' '.strtolower(_T($test?'item_oui':'item_non'));\r
+ }\r
+ return $liste?join('<br />', $res):'ok';\r
+}\r
+\r
+function spam_action_rapide() {\r
+ include_spip('public/assembler'); // pour recuperer_fond()\r
+ $fd = recuperer_fond('fonds/test_spam', array(\r
+ 'ar_message' => _request('ar_message'),\r
+ 'test_bd' => _request('test_bd'),\r
+ 'statut' =>_request('statut'),\r
+ 'debut_msg' => _request('debut_msg'),\r
+ ));\r
+ // au cas ou il y aurait plusieurs actions, on fabrique plusieurs <form>\r
+ $fd = explode('@@CS_FORM@@', $fd);\r
+ $res = "";\r
+ foreach($fd as $i=>$f) {\r
+ // syntaxe : ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args_ajax='', $fct_ajax='')\r
+ $res .= ajax_action_auteur('action_rapide', 'test_'.$i, 'admin_couteau_suisse', "arg=spam|description_outil&modif=oui&cmd=descrip#cs_action_rapide", $f)."\n";\r
+ }\r
+ return $res;\r
+}\r
+\r
+// fonction {$outil}_{$arg}_action() appelee par action/action_rapide.php\r
+function spam_test_0_action() {\r
+ // lancer le test de l'anti-spam\r
+ // aucune action, le test est pris en charge par ?exec=action_rapide\r
+ redirige_vers_exec(array('ar_message' =>_request('ar_message')));\r
+}\r
+\r
+function spam_test_1_action() {\r
+ // lancer le test sur les messages de la base\r
+ redirige_vers_exec(array('test_bd'=>1, 'statut' =>_request('statut'), 'debut_msg' =>_request('debut_msg')));\r
+}\r
+\r
+\r
+?>
\ No newline at end of file