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

Last change on this file since 96992 was 96992, checked in by eric@…, 3 years ago

Phpdoc et formatage PSR SPIP

  • Property svn:eol-style set to native
File size: 1.9 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 taxonomie_regne_existe()
22 * @uses taxonomie_charger_regne()
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/taxonomer');
33        $regnes = explode(':', _TAXONOMIE_REGNES);
34
35        include_spip('services/itis/itis_api');
36        $shas = itis_review_sha();
37
38        include_spip('taxonomie_fonctions');
39        foreach ($regnes as $_regne) {
40                $regne_a_recharger = false;
41                if (taxonomie_regne_existe($_regne, $meta_regne)) {
42                        // On compare le sha du fichier des taxons
43                        if ($meta_regne['sha'] != $shas['taxons'][$_regne]) {
44                                $regne_a_recharger = true;
45                        } else {
46                                // On compare le sha des fichiers de traductions
47                                foreach ($meta_regne['traductions']['itis'] as $_code => $_infos) {
48                                        if ($_infos['sha'] != $shas['traductions'][$_code]) {
49                                                $regne_a_recharger = true;
50                                                break;
51                                        }
52                                }
53                        }
54                        if ($regne_a_recharger) {
55                                $langues = array_keys($meta_regne['traductions']['itis']);
56                                taxonomie_charger_regne($_regne, $meta_regne['rang'], $langues);
57                        }
58                }
59        }
60
61        return 1;
62}
Note: See TracBrowser for help on using the repository browser.