source: spip-zone/_plugins_/taxonomie/trunk/inc/taxonomer.php @ 86103

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

Premier dépot du plugin Taxonomie.

  • Property svn:eol-style set to native
File size: 3.0 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5if (!defined('_TAXONOMIE_REGNE_ANIMAL'))
6        define('_TAXONOMIE_REGNE_ANIMAL', 'animalia');
7if (!defined('_TAXONOMIE_REGNE_VEGETAL'))
8        define('_TAXONOMIE_REGNE_VEGETAL', 'plantae');
9if (!defined('_TAXONOMIE_REGNE_FONGIQUE'))
10        define('_TAXONOMIE_REGNE_FONGIQUE', 'fungi');
11
12if (!defined('_TAXONOMIE_LISTE_REGNES'))
13        define('_TAXONOMIE_LISTE_REGNES',
14                implode(':', array(
15                        _TAXONOMIE_REGNE_ANIMAL,
16                        _TAXONOMIE_REGNE_VEGETAL,
17                        _TAXONOMIE_REGNE_FONGIQUE
18                )));
19
20if (!defined('_TAXONOMIE_RANG_REGNE'))
21        define('_TAXONOMIE_RANG_REGNE', 'kingdom');
22if (!defined('_TAXONOMIE_RANG_PHYLUM'))
23        define('_TAXONOMIE_RANG_PHYLUM', 'phylum');
24if (!defined('_TAXONOMIE_RANG_CLASSE'))
25        define('_TAXONOMIE_RANG_CLASSE', 'class');
26if (!defined('_TAXONOMIE_RANG_ORDRE'))
27        define('_TAXONOMIE_RANG_ORDRE', 'order');
28if (!defined('_TAXONOMIE_RANG_FAMILLE'))
29        define('_TAXONOMIE_RANG_FAMILLE', 'family');
30if (!defined('_TAXONOMIE_RANG_GENRE'))
31        define('_TAXONOMIE_RANG_GENRE', 'genus');
32if (!defined('_TAXONOMIE_RANG_ESPECE'))
33        define('_TAXONOMIE_RANG_ESPECE', 'specie');
34
35if (!defined('_TAXONOMIE_LISTE_RANGS'))
36        define('_TAXONOMIE_LISTE_RANGS',
37                implode(':', array(
38                        _TAXONOMIE_RANG_REGNE,
39                        _TAXONOMIE_RANG_PHYLUM,
40                        _TAXONOMIE_RANG_CLASSE,
41                        _TAXONOMIE_RANG_ORDRE,
42                        _TAXONOMIE_RANG_FAMILLE,
43                        _TAXONOMIE_RANG_GENRE,
44                        _TAXONOMIE_RANG_ESPECE
45                )));
46
47
48/**
49 * Renvoie, à partir de l'url du service, le tableau des données demandées.
50 * Le service utilise dans ce cas une chaine JSON qui est décodée pour fournir
51 * le tableau de sortie.
52 *
53 *@param string $url
54 *              URL complète du service web.
55 *
56*@return array
57 */
58function url2json_data($url) {
59        // Acquisition des données spécifiées par l'url
60        include_spip('inc/distant');
61        $flux = recuperer_page($url);
62
63        // Tranformation de la chaine json reçue en tableau associatif
64        $data = json_decode($flux, true);
65
66        return $data;
67}
68
69
70/**
71 * Liste dans un tableau les règnes supportés par le plugin, à savoir: animalia,
72 * plantae et fungi.
73 * Les règnes sont exprimés avec leur nom scientifique en lettres minuscules.
74 *
75 * @return array
76 */
77function lister_regnes() {
78        return explode(':', _TAXONOMIE_LISTE_REGNES);
79}
80
81
82/**
83 * Liste dans un tableau les rangs taxonomiques supportés par le plugin, à savoir:
84 * kingdom, phylum, class, order, family, genus et specie.
85 * Les règnes sont exprimés en anglais et écrits en lettres minuscules.
86 * La fonction permet d'exclure de la liste les rangs extrêmes kingdom et specie.
87 *
88 * @param bool $exclure_regne
89 *              Demande d'exclusion du règne de la liste des rangs
90 * @param bool $exclure_espece
91 *              Demande d'exclusion de l'espèce de la liste des rangs
92 *
93 * @return array
94 */
95function lister_rangs($exclure_regne=true, $exclure_espece=true) {
96        $exclusions = array();
97
98        $rangs = explode(':', _TAXONOMIE_LISTE_RANGS);
99        if ($exclure_regne)
100                $exclusions[] = _TAXONOMIE_RANG_REGNE;
101        if ($exclure_espece)
102                $exclusions[] = _TAXONOMIE_RANG_ESPECE;
103        $rangs = array_diff($rangs, $exclusions);
104
105        return $rangs;
106}
107
108?>
Note: See TracBrowser for help on using the repository browser.