source: spip-zone/_plugins_/sedna/trunk/sedna_options.php @ 68168

Last change on this file since 68168 was 68168, checked in by kent1@…, 8 years ago

On va tenter de se passer un peu de <?php dans les squelettes

On déplace une grosse fonction du fichier d'options vers le fichier _fonctions d'une page en particulier, évitera de le charger pour chaque page

Un fichier de fonctions plus nécessaire, la seule fonction dedans est remplacé par un test dans les squelettes
Petites refactorisations

File size: 2.7 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5if (preg_match(',&age=([0-9]+)&age=([0-9]+),',$_SERVER['REQUEST_URI'],$regs)){
6        url_de_base();
7        $url = parametre_url(self(),'age',$regs[1],'&');
8        include_spip('inc/headers');
9        redirige_par_entete($url);
10}
11
12if($var_color=_request('var_color')) {
13        include_spip('inc/cookie');
14        spip_setcookie('sedna_color', $var_color, time()+365*24*3600);
15        $_COOKIE['sedna_color'] = $var_color;
16}
17
18$GLOBALS['marqueur'].=isset($_COOKIE['sedna_color'])?(":".$_COOKIE['sedna_color']):"";
19
20function sedna_utils(){
21        $GLOBALS['forcer_lang']= true;
22
23        // Descriptifs : affiches ou masques ?
24        // l'accessibilite sans javascript => affiches par defaut
25        if ($_COOKIE['sedna_style'] == 'masquer')
26                $class_desc = "desc_masquer";
27        else
28                $class_desc = "desc_afficher";
29       
30        // Si synchro active il faut comparer le contenu du cookie et ce
31        // qu'on a stocke dans le champ spip_auteurs.sedna (a creer au besoin)
32        $synchro = '';
33        if ($_COOKIE['sedna_synchro'] == 'oui'
34        AND $id = $GLOBALS['visiteur_session']['id_auteur']) {
35                // Recuperer ce qu'on a stocke
36                $champ = $champ['sedna'];
37                // mixer avec le cookie en conservant un ordre chronologique
38                if ($_COOKIE['sedna_lu'] <> $champ) {
39                        $lus_cookie = preg_split(',[- +],',$_COOKIE['sedna_lu']);
40                        $lus_champ = preg_split(',[- +],',$champ);
41                        $lus = array();
42                        while (count($lus_cookie) OR count($lus_champ)) {
43                                if ($a = array_shift($lus_cookie))
44                                        $lus[$a] = true;
45                                if ($a = array_shift($lus_champ))
46                                        $lus[$a] = true;
47                        }
48                        $lus = substr(join('-', array_keys($lus)),0,3000); # 3ko maximum
49                        // Mettre la base a jour
50                        sql_updateq("spip_auteurs",array('sedna',$lus),"id_auteur=".intval($id));
51                        $synchro = ' *';
52
53                        // Si le cookie n'est pas a jour, on l'update sur le brouteur
54                        if ($lus <> $_COOKIE['sedna_lu']) {
55                                include_spip('inc/cookie');
56                                spip_setcookie('sedna_lu', $lus,
57                                        time()+365*24*3600);
58                                        $_COOKIE['sedna_lu'] = $lus;
59                                // Signaler que la synchro a eu lieu
60                                $synchro = ' &lt;&lt;';
61                        }
62                }
63        }
64        // forcer le refresh ?
65        if ($id = intval(_request('refresh'))) {
66                include_spip('genie/syndic');
67                spip_touch(_DIR_TMP.'syndic.lock');
68                syndic_a_jour($id);
69        }
70
71        // Calcul du delais optimal (on est tjs a jour, mais quand meme en cache)
72        // valeur max = 15 minutes (900s) (et on hacke #ENV{max_maj} pour affichage
73        // de "Derniere syndication..." en pied de page).
74        $GLOBALS['sedna_max_maj'] = @filemtime(_DIR_TMP.'syndic.lock');
75        if ($GLOBALS['sedna_max_maj'] > lire_meta('derniere_modif')) {
76                include_spip('inc/meta');
77                ecrire_meta('derniere_modif', $GLOBALS['sedna_max_maj']);
78                ecrire_metas();
79        }
80        $GLOBALS['sedna_max_maj'] = date('Y-m-d H:i:s', $GLOBALS['sedna_max_maj']); # format SPIP
81}
82
83?>
Note: See TracBrowser for help on using the repository browser.