source: spip-zone/_plugins_/taxonomie/trunk/base/taxonomie_declarations.php @ 109443

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

Simplification de la liste des statuts : prop, publie et poubelle suffisent

  • Property svn:eol-style set to native
File size: 5.4 KB
Line 
1<?php
2/**
3 * Déclarations relatives à la base de données.
4 *
5 * @package SPIP\TAXONOMIE\CONFIGURATION
6 */
7if (!defined('_ECRIRE_INC_VERSION')) {
8        return;
9}
10
11
12/**
13 * Déclaration des alias de tables et des filtres automatiques de champs.
14 *
15 * @pipeline declarer_tables_interfaces
16 *
17 * @param array $interfaces
18 *        Déclarations d'interface pour le compilateur.
19 *
20 * @return array
21 *        Déclarations d'interface pour le compilateur mises à jour.
22 */
23function taxonomie_declarer_tables_interfaces($interfaces) {
24
25        $interfaces['table_des_tables']['taxons'] = 'taxons';
26        $interfaces['table_des_tables']['especes'] = 'especes';
27
28        return $interfaces;
29}
30
31
32/**
33 * Déclaration des objets éditoriaux du plugin. Le plugin ajoute l'objet taxon au travers de la
34 * seule table `spip_taxons` et l'objet espèce avec la table `spip_especes`.
35 *
36 * L'objet taxon est défini comme une arborescence de taxons du règne au genre.
37 * Les taxons à partir de l'espèce ne font pas partie de cette table. Les champs principaux sont les
38 * suivants :
39 *        - `nom_scientifique` est le nom en latin. Il est unique pour un rang taxonomique donné.
40 *        - `rang` taxonomique est une valeur parmi `kingdom`, `phylum`, `class`, `order`, `family` et `genus`.
41 *        - `nom_commun` est le nom vulgaire, si possible normalisé par une commission officielle. Il peut coincider ou
42 *        pas avec le nom vernaculaire.
43 *        - `auteur` est une information composée d'un ou plusieurs noms complétés par une date (ex : Linneus, 1798).
44 *        - `tsn` est l'identifiant numérique unique du taxon dans la base taxonomique ITIS.
45 *        - `tsn_parent` permet de créer l'arborescence taxonomique du règne conformément à l'organisation de la base
46 *        ITIS.
47 *
48 * @pipeline declarer_tables_objets_sql
49 *
50 * @param array $tables
51 *        Description des tables de la base.
52 *
53 * @return array
54 *        Description des tables de la base complétée par celles du plugin.
55 */
56function taxonomie_declarer_tables_objets_sql($tables) {
57
58        /**
59         */
60        $tables['spip_taxons'] = array(
61                'type'       => 'taxon',
62                'principale' => 'oui',
63                'field'      => array(
64                        'id_taxon'         => 'bigint(21) NOT NULL',
65                        'nom_scientifique' => "varchar(35) DEFAULT '' NOT NULL",
66                        'rang'             => "varchar(15) DEFAULT '' NOT NULL",
67                        'regne'            => "varchar(10) DEFAULT '' NOT NULL",
68                        'nom_commun'       => "text DEFAULT '' NOT NULL",
69                        'auteur'           => "varchar(100) DEFAULT '' NOT NULL",
70                        'descriptif'       => "text DEFAULT '' NOT NULL",
71                        'tsn'              => 'bigint(21) NOT NULL',
72                        'tsn_parent'       => 'bigint(21) NOT NULL',
73                        'indicateur'       => "varchar(32) DEFAULT '' NOT NULL",
74                        'sources'          => "text DEFAULT '' NOT NULL",
75                        'importe'          => "varchar(3) DEFAULT 'oui' NOT NULL",
76                        'edite'            => "varchar(3) DEFAULT 'non' NOT NULL",
77                        'maj'              => 'TIMESTAMP'
78                ),
79                'key'        => array(
80                        'PRIMARY KEY' => 'id_taxon',
81                        'KEY tsn'     => 'tsn',
82                ),
83                'titre'      => "nom_scientifique AS titre, '' AS lang",
84
85                'champs_editables'  => array('nom_commun', 'descriptif'),
86                'champs_versionnes' => array('nom_commun', 'descriptif'),
87                'rechercher_champs' => array('nom_scientifique' => 10, 'nom_commun' => 10, 'descriptif' => 5),
88                'tables_jointures'  => array(),
89        );
90
91        $tables['spip_especes'] = array(
92                'type' => 'espece',
93                'principale' => "oui",
94                'field'=> array(
95            "id_espece"                 => "bigint(21) NOT NULL",
96            "nom_scientifique"  => "varchar(35) DEFAULT '' NOT NULL",
97            "rang"                              => "varchar(15) DEFAULT '' NOT NULL",
98            "regne"                             => "varchar(10) DEFAULT '' NOT NULL",
99            "nom_commun"                => "text DEFAULT '' NOT NULL",
100            "auteur"                    => "varchar(100) DEFAULT '' NOT NULL",
101            "descriptif"                => "text DEFAULT '' NOT NULL",
102            "texte"             => "longtext DEFAULT '' NOT NULL",
103            "tsn"                               => "bigint(21) NOT NULL",
104            "tsn_parent"                => "bigint(21) NOT NULL",
105            "objet_parent"      => "varchar(25) DEFAULT 'espece' NOT NULL",
106            "sources"           => "text NOT NULL",
107            "statut"            => "varchar(10) DEFAULT '0' NOT NULL",
108            "maj"                               => "TIMESTAMP"
109    ),
110                'key' => array(
111                        'PRIMARY KEY'       => 'id_espece',
112            'KEY tsn'                   => 'tsn',
113            'KEY statut'        => 'statut',
114                ),
115        'titre' => "nom_scientifique AS titre, '' AS lang",
116
117        'champs_editables'  => array('nom_scientifique', 'nom_commun', 'auteur', 'descriptif', 'texte', 'sources'),
118        'champs_versionnes' => array('nom_scientifique', 'nom_commun', 'auteur', 'descriptif', 'texte', 'sources'),
119        'rechercher_champs' => array('nom_scientifique' => 10, 'nom_commun' => 10, 'auteur' => 2, 'descriptif' => 5, 'texte' => 5),
120        'tables_jointures'  => array(),
121        'statut_textes_instituer' => array(
122            'prop'     => 'texte_statut_propose_evaluation',
123            'publie'   => 'texte_statut_publie',
124            'poubelle' => 'texte_statut_poubelle',
125        ),
126        'statut'=> array(
127            array(
128                'champ'     => 'statut',
129                'publie'    => 'publie',
130                'previsu'   => 'publie, prop',
131                'post_date' => 'date',
132                'exception' => array('statut', 'tout')
133            )
134        ),
135        'texte_changer_statut' => 'espece:texte_changer_statut_espece',
136        );
137
138        return $tables;
139}
Note: See TracBrowser for help on using the repository browser.