source: spip-zone/_plugins_/taxonomie/trunk/genie/taxonomie_actualiser_itis.php @ 114150

Last change on this file since 114150 was 114150, checked in by eric@…, 7 months ago

Renommer la fonction regne_lister() en regne_lister_defaut() et créer la fonction regne_repertorier() qui retourne les règnes chargés en base.
Ne pas afficher d'espèce si le règne n'est pas chargé.
Corriger les affichages si la liste des taxons est vide.

  • Property svn:eol-style set to native
File size: 1.8 KB
Line 
1<?php
2/**
3 * CRON de mise à jour des taxons en fonction des fichiers de chaque règne embarqué.
4 *
5 * @package    SPIP\TAXONOMIE\SERVICES\ITIS
6 */
7if (!defined('_ECRIRE_INC_VERSION')) {
8        return;
9}
10
11/**
12 * Ce CRON permet de vérifier si les fichiers ITIS ayant servis à créer la base de taxons initiale
13 * ont été modifiés et si oui de déclencher une mise à niveau des taxons.
14 *
15 * Etant donné que les sha des fichiers sont enregistrés dans la meta de chaque règne, la fonction
16 * compare ces valeurs aux sha des fichiers embarqués dans le plugin. Les fichiers des taxons de chaque règne
17 * ainsi que les fichiers de traductions sont pris en compte.
18 * Si un fichier a changé on recharge le ou les règnes concernés.
19 *
20 * @uses itis_review_sha()
21 * @uses regne_existe()
22 * @uses regne_charger()
23 *
24 * @param int $last
25 *        Timestamp de la date de dernier appel de la tâche.
26 *
27 * @return int
28 *        Timestamp de la date du prochain appel de la tâche.
29 */
30function genie_taxonomie_actualiser_itis_dist($last) {
31
32        include_spip('inc/taxonomie');
33        $regnes = regne_lister_defaut();
34
35        include_spip('services/itis/itis_api');
36        $shas = itis_review_sha();
37
38        foreach ($regnes as $_regne) {
39                $regne_a_recharger = false;
40                if (regne_existe($_regne, $meta_regne)) {
41                        // On compare le sha du fichier des taxons
42                        if ($meta_regne['sha'] != $shas['taxons'][$_regne]) {
43                                $regne_a_recharger = true;
44                        } else {
45                                // On compare le sha des fichiers de traductions
46                                foreach ($meta_regne['traductions']['itis'] as $_code => $_infos) {
47                                        if ($_infos['sha'] != $shas['traductions'][$_code]) {
48                                                $regne_a_recharger = true;
49                                                break;
50                                        }
51                                }
52                        }
53                        if ($regne_a_recharger) {
54                                $langues = array_keys($meta_regne['traductions']['itis']);
55                                regne_charger($_regne, $langues);
56                        }
57                }
58        }
59
60        return 1;
61}
Note: See TracBrowser for help on using the repository browser.