source: spip-zone/_plugins_/_test_/sedna/sedna_fonctions.php @ 12257

Last change on this file since 12257 was 12257, checked in by fil@…, 13 years ago

antispam: filtrer tous les @ sans finasser

File size: 2.0 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5if (_request('rss')
6AND _request('page')=='sedna') {
7        include_spip('inc/headers');
8        redirige_par_entete(parametre_url(
9                parametre_url(self(), 'rss', ''),
10                'page','sedna-rss',
11                '&'));
12}
13
14        // filtre |syndication_en_erreur
15        function syndication_en_erreur($statut_syndication) {
16                if ($statut_syndication == 'off'
17                OR $statut_syndication == 'sus')
18                        return _T('sedna:probleme_de_syndication');
19        }
20
21        // filtre de nettoyage XHTML strict d'un contenu potentiellement hostile
22        // |textebrut|lignes_longues|entites_html|antispam2|texte_script
23        function nettoyer_texte($texte) {
24                return texte_script(
25                        antispam2(
26                        corriger_toutes_entites_html(
27                        entites_html(
28                        couper(
29                        lignes_longues(
30                        textebrut(
31                                $texte
32                        )), 600)
33                        ))));
34        }
35
36        // tri maison : d'abord par jour de syndication,
37        // et a l'interieur du jour par date de maj
38        function critere_tri_sedna($idb, &$boucles, $crit) {
39                $boucle = &$boucles[$idb];
40                $boucle->order = array(
41                        "'date_format(syndic_articles.date,\\'%Y-%m-%d 00:00:00\\') DESC'", "'syndic_articles.maj DESC'", "'syndic_articles.date DESC'"
42                );
43        }
44
45        // critere {contenu}
46        function critere_contenu($idb, &$boucles, $crit) {
47                $boucle = &$boucles[$idb];
48
49                // un peu trop rapide, ca... le compilateur exige mieux
50                $boucle->hash = '
51                // RECHERCHE
52                if ($r = addslashes($GLOBALS["recherche"]))
53                        $s = "(syndic_articles.descriptif LIKE \'%$r%\'
54                                OR syndic_articles.titre LIKE \'%$r%\'
55                                OR syndic_articles.url LIKE \'%$r%\'
56                                OR syndic_articles.lesauteurs LIKE \'%$r%\')";
57                        else $s = 1;
58                ';
59                $boucle->where[] = '$s';
60        }
61       
62        // identifiant d'un lien en fonction de son url et sa date, 4 chars
63        // 3ko = 500 * (5 caracteres + espace)
64        // 16**5 possibilites = suffisant pour eviter risque de doublons sur 500
65        function creer_identifiant ($url,$date) {
66                return substr(md5("$date$url"),0,5);
67        }
68
69        // unicode 24D0 = caractere de forme "(a)"
70        function antispam2($texte) {
71                return str_replace('@','&#x24d0;', $texte);
72        }
73       
74?>
Note: See TracBrowser for help on using the repository browser.