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

Last change on this file since 113363 was 113363, checked in by eric@…, 8 days ago

Oups j'ai tout oublié ou presque.

  • Property svn:eol-style set to native
File size: 4.7 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
27        return $interfaces;
28}
29
30
31/**
32 * Déclaration des objets éditoriaux du plugin. Le plugin ajoute l'objet taxon au travers de la
33 * seule table `spip_taxons` qui contient aussi les taxons de type `espèce`.
34 *
35 * L'objet taxon est défini comme une arborescence de taxons du règne au rang le plus petit dans le règne.
36 * Les taxons de rang égal ou inférieur à l'espèce font aussi partie de cette table. Les champs principaux sont les
37 * suivants :
38 *        - `nom_scientifique` est le nom en latin. Il est unique pour un rang taxonomique donné.
39 *        - `rang` taxonomique est une valeur parmi `kingdom`, `phylum`, `class`, `order`, `family`, `genus`, `species`...
40 *        - `nom_commun` est le nom vulgaire, si possible normalisé par une commission officielle. Il peut coïncider ou
41 *           pas avec le nom vernaculaire.
42 *        - `auteur` est une information composée d'un ou plusieurs noms complétés par une date (ex : Linneus, 1798).
43 *        - `tsn` est l'identifiant numérique unique du taxon dans la base taxonomique ITIS.
44 *        - `tsn_parent` permet de créer l'arborescence taxonomique du règne conformément à l'organisation de la base
45 *        ITIS.
46 *        - `espece` indique si oui ou non le taxon à un rang supérieur ou inférieur ou égal à `species`.
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        $tables['spip_taxons'] = array(
59                'type' => 'taxon',
60                'principale' => 'oui',
61                'field'=> array(
62                        'id_taxon'          => "bigint(21) NOT NULL",
63                        'nom_scientifique'      => "varchar(35) DEFAULT '' NOT NULL",
64                        'indicateurs'       => "varchar(32) DEFAULT '' NOT NULL",
65                        'rang_taxon'            => "varchar(15) DEFAULT '' NOT NULL",
66                        'regne'                         => "varchar(10) DEFAULT '' NOT NULL",
67                        'nom_commun'            => "text DEFAULT '' NOT NULL",
68                        'auteur'                        => "varchar(100) DEFAULT '' NOT NULL",
69                        'descriptif'            => "text DEFAULT '' NOT NULL",
70                        'texte'             => "longtext DEFAULT '' NOT NULL",
71                        'tsn'                           => "bigint(21) NOT NULL",
72                        'tsn_parent'            => "bigint(21) NOT NULL",
73                        'sources'           => "text NOT NULL",
74                        'importe'           => "varchar(3) DEFAULT 'non' NOT NULL",
75                        'edite'             => "varchar(3) DEFAULT 'non' NOT NULL",
76                        'espece'            => "varchar(3) DEFAULT 'non' NOT NULL",
77                        'statut'            => "varchar(10) DEFAULT 'prop' NOT NULL",
78                        'maj'                           => "TIMESTAMP"
79    ),
80                'key' => array(
81                        'PRIMARY KEY' => 'id_taxon',
82            'KEY tsn'     => 'tsn',
83                        'KEY statut'  => 'statut',
84                        'KEY espece'  => 'espece',
85                        'KEY importe' => 'importe',
86                        'KEY edite'   => 'edite',
87                ),
88        'titre' => "nom_scientifique AS titre, '' AS lang",
89
90        'champs_editables'  => array('nom_commun', 'descriptif', 'texte', 'sources'),
91        'champs_versionnes' => array('nom_commun', 'descriptif', 'texte', 'sources'),
92        'rechercher_champs' => array('nom_scientifique' => 10, 'nom_commun' => 10, 'auteur' => 2, 'descriptif' => 5, 'texte' => 5),
93        'tables_jointures'  => array(),
94        'statut_textes_instituer' => array(
95            'prop'     => 'taxon:texte_statut_prop',
96            'publie'   => 'taxon:texte_statut_publie',
97            'poubelle' => 'taxon:texte_statut_poubelle',
98        ),
99        'statut'=> array(
100            array(
101                'champ'     => 'statut',
102                'publie'    => 'publie',
103                'previsu'   => 'publie,prop',
104                'exception' => array('statut', 'tout')
105            )
106        ),
107        'texte_changer_statut' => 'taxon:texte_changer_statut_taxon',
108
109                // Textes standard
110                'texte_retour'                  => 'icone_retour',
111                'texte_modifier'                => 'taxon:icone_modifier_taxon',
112                'texte_creer'                   => 'taxon:icone_creer_taxon',
113                'texte_creer_associer'  => '',
114                'texte_signale_edition' => '',
115                'texte_objet'                   => 'taxon:titre_taxon',
116                'texte_objets'                  => 'taxon:titre_taxons',
117                'info_aucun_objet'              => 'taxon:info_aucun_taxon',
118                'info_1_objet'                  => 'taxon:info_1_taxon',
119                'info_nb_objets'                => 'taxon:info_nb_taxons',
120                'texte_logo_objet'              => 'taxon:titre_logo_taxon',
121        );
122
123        return $tables;
124}
Note: See TracBrowser for help on using the repository browser.