source: spip-zone/_plugins_/comarquage/trunk/genie/comarquage_update_xml.php @ 98217

Last change on this file since 98217 was 98217, checked in by teddy.spip@…, 4 years ago

Les bons accents.

File size: 2.8 KB
Line 
1<?php
2/* Plugin Comarquage -flux V2-
3 * Copyright (C) 2006 Cedric Morin
4 * Copyright (C) 2010 Vernalis Interactive
5 *
6 * Licence GPL
7 *
8 */
9
10if (!defined("_ECRIRE_INC_VERSION")) {
11        return;
12}
13
14function genie_comarquage_update_xml_dist($t) {
15        include_spip('inc/comarquage');
16
17        $file_liste = array();
18
19        // Recherche des fichiers a mettre a jour
20        if (isset($GLOBALS['meta']['comarquage_xml_to_update'])) {
21                $file_liste = unserialize($GLOBALS['meta']['comarquage_xml_to_update']);
22                if (!is_array($file_liste)) {
23                        $file_liste = array();
24                        effacer_meta('comarquage_xml_to_update');
25                        ecrire_metas();
26                }
27        }
28        if (!isset($GLOBALS['meta']['comarquage_xml_to_update'])) {
29                // si liste existe pas, on la construit
30                // et on rend la main pour que ce soit pas trop long
31
32                // On a des dossiers cache différents selon la catégorie
33                $categories = array('particuliers', 'associations', 'entreprises');
34                foreach ($categories as $cat) {
35                        $table = preg_files(_DIR_CACHE . _DIR_CACHE_COMARQUAGE_XML . "_" . $cat, '[.]*\.xml$');
36
37                        $time = time();
38                        foreach ($table as $file) {
39                                if ((count($file_liste) < 1000) && (($time - filemtime($file)) > $GLOBALS['meta']['comarquage_local_refresh'])) {
40                                        $file_liste[] = $file;
41                                }
42                        }
43                }
44                if (count($file_liste)) {
45                        ecrire_meta('comarquage_xml_to_update', serialize($file_liste));
46                        ecrire_metas();
47                        spip_log("[comarquage] " . count($file_liste) . " fichiers a mettre a jour ...", "comarquage_update");
48
49                        //return (0 - $t); // revenir ...
50                        return 1; // fini pour cette fois
51                } else {
52                        spip_log("Pas de fichier pour la mise à jour", "comarquage_update");
53                        effacer_meta('comarquage_xml_to_update');
54                        ecrire_metas();
55
56                        return 1; // fini
57                }
58        }
59
60        $compteur = 10; // nombre maxi de pages mises a jour
61
62        while (($compteur-- > 0) && is_array($file_liste) && count($file_liste)) {
63                $file = array_pop($file_liste);
64                spip_log("[comarquage] mise a jour $file", "comarquage_update");
65
66                $parametres = array();
67                $parametres['xml_full_path'] = $file;
68                $parametres['xml'] = basename($file);
69
70                $ret = comarquage_recuperer_page_xml($parametres);
71                if ($ret = 10) { // fichier non modifie
72                        @touch($file);
73                }
74                // on nettoie les fichiers cache parses au passage
75                $file = basename($file, '.xml');
76
77                $table = preg_files(_DIR_CACHE . _DIR_CACHE_COMARQUAGE_CACHE, '^' . $file . '\.[0-9a-f]*\.cache$');
78                foreach ($table as $file) {
79                        @unlink($file);
80                }
81        }
82
83        if (count($file_liste) && is_array($file_liste)) {
84                ecrire_meta('comarquage_xml_to_update', serialize($file_liste));
85                ecrire_metas();
86                spip_log("[comarquage] " . count($file_liste) . " fichiers restant a mettre a jour ...", "comarquage_update");
87
88                //return (0 - $t); // revenir ...
89                return 1; // fini pour cette fois
90        } else {
91                effacer_meta('comarquage_xml_to_update');
92                ecrire_metas();
93
94                return 1; // fini
95        }
96}
97
Note: See TracBrowser for help on using the repository browser.