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

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

passage en plugin de sedna

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