3 // module inclu dans la description de l'outil en page de configuration
5 include_spip('inc/actions');
7 function spam_filtre_de_test($texte) {
8 if (!strlen($texte)) return '';
9 $spam = cs_lire_data_outil('spam');
11 return cs_test_spam($spam, $texte, $test)?
'ko':'ok';
14 function spam_filtre_de_test_ip($texte, $liste=false) {
15 if (!strlen($texte)) return '';
16 if(!preg_match_all(',\d+\.\d+\.\d+\.\d+,', $texte, $regs, PREG_PATTERN_ORDER
)) return '';
18 $spam = cs_lire_data_outil('spam');
19 foreach($regs[0] as $r) {
20 $test = $spam[3]?
preg_match($spam[3], "$r"):false;
21 if(!$liste) { if($test) return 'ko'; }
22 else $res[] = _T('couteauprive:spam_ip', array('ip'=>$r)).' '.strtolower(_T($test?
'item_oui':'item_non'));
24 return $liste?
join('<br />', $res):'ok';
27 function spam_action_rapide() {
28 include_spip('public/assembler'); // pour recuperer_fond()
29 $fd = recuperer_fond('fonds/test_spam', array(
30 'ar_message' => _request('ar_message'),
31 'test_bd' => _request('test_bd'),
32 'statut' =>_request('statut'),
33 'debut_msg' => _request('debut_msg'),
35 // au cas ou il y aurait plusieurs actions, on fabrique plusieurs <form>
36 $fd = explode('@@CS_FORM@@', $fd);
38 foreach($fd as $i=>$f) {
39 // syntaxe : ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args_ajax='', $fct_ajax='')
40 $res .= ajax_action_auteur('action_rapide', 'test_'.$i, 'admin_couteau_suisse', "arg=spam|description_outil&modif=oui&cmd=descrip#cs_action_rapide", $f)."\n";
45 // fonction {$outil}_{$arg}_action() appelee par action/action_rapide.php
46 function spam_test_0_action() {
47 // lancer le test de l'anti-spam
48 // aucune action, le test est pris en charge par ?exec=action_rapide
49 redirige_vers_exec(array('ar_message' =>_request('ar_message')));
52 function spam_test_1_action() {
53 // lancer le test sur les messages de la base
54 redirige_vers_exec(array('test_bd'=>1, 'statut' =>_request('statut'), 'debut_msg' =>_request('debut_msg')));