source: spip-zone/_plugins_/bandeau/public/slogan_balise.php @ 70522

Last change on this file since 70522 was 42886, checked in by real3t@…, 10 years ago

Il peut y avoir des multi dans le slogan (Akilo)

File size: 2.8 KB
Line 
1<?php
2/*
3 * Plugin Slogan
4 * (c) 2009 C.Morin
5 * Distribue sous licence GPL
6 *
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11// http://doc.spip.org/@balise_NOM_SITE_SPIP_dist
12function balise_SLOGAN_SITE_SPIP_dist($p) {
13        $p->code = "typo(\$GLOBALS['meta']['slogan_site'])";
14        #$p->interdire_scripts = true;
15        return $p;
16}
17
18function slogan_aleatoire($titre,$lang=null){
19        static $slogan = array();
20        if (is_null($lang)){
21                $lang = $GLOBALS['spip_lang'];
22        }
23        if (isset($slogan[$lang]))
24                return $slogan[$lang];
25
26        // si un fichier cache slogans_xx.txt existe, on l'utilise
27        if ($f = find_in_path("slogans/slogans_$lang.txt")
28                        AND lire_fichier($f, $slogans)
29                        AND trim($slogans)
30                        AND ($n = count($slogans = explode("\n",$slogans)))>1){
31                return $slogan[$lang] = str_replace("@slogan@",$titre,$slogans[rand(0, $n)]);
32        }
33
34        // sinon on se rabat sur la fonction
35        if (!$slogan_aleatoire = charger_fonction("slogan_aleatoire_".$lang,"public",true)
36                AND $lang!='fr'){
37                // sinon on se rabat sur le slogan en francais
38                return $slogan[$lang] = "<span lang='$lang'>".slogan_aleatoire($titre,'fr')."</span>";
39        }
40        return $slogan[$lang] = $slogan_aleatoire($titre);
41}
42
43function public_slogan_aleatoire_fr_dist($titre){
44        define('_URL_SLOGAN_ALEATOIRE_FR',"http://hellday.free.fr/slogans/sloganfr.php?chaine=%s");
45        $slogan = "";
46
47        $url = str_replace("%s", urlencode($titre), _URL_SLOGAN_ALEATOIRE_FR);
48        include_spip('inc/distant');
49        if ($res = recuperer_page($url)){
50                $res = extraire_balises($res,'body');
51                $res = reset($res);
52                $res = charset2unicode($res,"iso-8859-1");
53                $res = preg_replace(",<style[^>]*>.*</style>,Uims","",$res);
54                $res = preg_replace(",<h1[^>]*>.*</h1>,Uims","",$res);
55                $res = preg_replace(",<form[^>]*>.*</form>,Uims","",$res);
56                $slogan = trim(textebrut($res));
57        }
58        return $slogan;
59}
60
61function public_slogan_aleatoire_en_dist($titre){
62        define('_URL_SLOGAN_ALEATOIRE_EN',"http://www.sloganizer.net/en/outbound.php?slogan=%s");
63        $slogan = "";
64
65        $url = str_replace("%s", urlencode($titre), _URL_SLOGAN_ALEATOIRE_EN);
66        include_spip('inc/distant');
67        if ($res = recuperer_page($url)){
68                $slogan = trim(textebrut($res));
69        }
70        return $slogan;
71}
72
73function public_slogan_aleatoire_de_dist($titre){
74        define('_URL_SLOGAN_ALEATOIRE_DE',"http://www.sloganizer.net/outbound.php?slogan=%s");
75        $slogan = "";
76
77        $url = str_replace("%s", urlencode($titre), _URL_SLOGAN_ALEATOIRE_DE);
78        include_spip('inc/distant');
79        if ($res = recuperer_page($url)){
80                $slogan = trim(textebrut($res));
81        }
82        return $slogan;
83}
84
85function slogan_cache($lang,$fichier,$n=100){
86        lire_fichier($fichier, $contenu);
87        $slogans = explode("\n",trim($contenu));
88
89        var_dump(count($slogans));
90
91        $slogan_aleatoire = charger_fonction("slogan_aleatoire_$lang","public");
92        while ($n-->0){
93                $slogans[] = $slogan_aleatoire("@slogan@");
94        }
95        $slogans = array_unique($slogans);
96        var_dump(count($slogans));
97        ecrire_fichier($fichier, implode("\n",$slogans));
98}
99
100
101?>
Note: See TracBrowser for help on using the repository browser.