Changeset 109602 in spip-zone


Ignore:
Timestamp:
Mar 18, 2018, 7:09:27 PM (16 months ago)
Author:
eric@…
Message:

Refactoring complet du plugin suite au merge des tables spip_taxons et spip_especes. Tout n'est pas encore revenu à) l'état de la version 0.2.0

Location:
_plugins_/taxonomie/trunk
Files:
1 deleted
22 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/taxonomie/trunk/base/taxonomie_declarations.php

    r109443 r109602  
    2424
    2525        $interfaces['table_des_tables']['taxons'] = 'taxons';
    26         $interfaces['table_des_tables']['especes'] = 'especes';
    2726
    2827        return $interfaces;
     
    3231/**
    3332 * 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`.
     33 * seule table `spip_taxons` qui contient aussi les taxons de type `espèce`.
    3534 *
    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
     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
    3837 * suivants :
    3938 *        - `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.
     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.
    4342 *        - `auteur` est une information composée d'un ou plusieurs noms complétés par une date (ex : Linneus, 1798).
    4443 *        - `tsn` est l'identifiant numérique unique du taxon dans la base taxonomique ITIS.
    4544 *        - `tsn_parent` permet de créer l'arborescence taxonomique du règne conformément à l'organisation de la base
    4645 *        ITIS.
     46 *        - `espece` indique si oui ou non le taxon à un rang supérieur ou inférieur ou égal à `species`.
    4747 *
    4848 * @pipeline declarer_tables_objets_sql
     
    5656function taxonomie_declarer_tables_objets_sql($tables) {
    5757
    58         /**
    59          */
    6058        $tables['spip_taxons'] = array(
    61                 'type'       => 'taxon',
     59                'type' => 'taxon',
    6260                '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",
    9461                '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"
     62                        'id_taxon'          => "bigint(21) NOT NULL",
     63                        'nom_scientifique'      => "varchar(35) DEFAULT '' NOT NULL",
     64                        'indicateurs'       => "varchar(32) DEFAULT '' NOT NULL",
     65                        'rang'                          => "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"
    10979    ),
    11080                'key' => array(
    111                         'PRIMARY KEY'       => 'id_espece',
    112             'KEY tsn'                   => 'tsn',
    113             'KEY statut'        => 'statut',
     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',
    11487                ),
    11588        'titre' => "nom_scientifique AS titre, '' AS lang",
    11689
    117         'champs_editables'  => array('nom_scientifique', 'nom_commun', 'auteur', 'descriptif', 'texte', 'sources'),
    118         'champs_versionnes' => array('nom_scientifique', 'nom_commun', 'auteur', 'descriptif', 'texte', 'sources'),
     90        'champs_editables'  => array('nom_commun', 'descriptif', 'texte', 'sources'),
     91        'champs_versionnes' => array('nom_commun', 'descriptif', 'texte', 'sources'),
    11992        'rechercher_champs' => array('nom_scientifique' => 10, 'nom_commun' => 10, 'auteur' => 2, 'descriptif' => 5, 'texte' => 5),
    12093        'tables_jointures'  => array(),
     
    129102                'publie'    => 'publie',
    130103                'previsu'   => 'publie, prop',
    131                 'post_date' => 'date',
    132104                'exception' => array('statut', 'tout')
    133105            )
  • _plugins_/taxonomie/trunk/formulaires/charger_regne.php

    r109345 r109602  
    8282
    8383/**
    84  * Exécution du formulaire : le règne choisi est soit vidé, soit chargé jusqu'au rang minimal
    85  * choisi en y intégrant les traductions des noms communs sélectionnées.
     84 * Exécution du formulaire : le règne choisi est soit vidé, soit chargé jusqu'au rang genre
     85 * en y intégrant les traductions des noms communs sélectionnées.
    8686 *
    8787 * @uses regne_existe()
  • _plugins_/taxonomie/trunk/formulaires/decrire_taxon.php

    r109441 r109602  
    11<?php
    22/**
    3  * Gestion du formulaire de chargement du descriptif d'un taxon à partir de Wikipedia.
     3 * Gestion du formulaire d'initialisation du descriptif ou du texte d'un taxon à partir de Wikipedia.
    44 *
    55 * @package    SPIP\TAXONOMIE\TAXON
     
    1010/**
    1111 * Chargement des données : le formulaire récupère une page wikipedia pour le descriptif du taxon.
    12  * Le formulaire propose ce descriptif mais aussi une liste d'autres pages qui matchent avec le taxon.
     12 * Le formulaire propose une page par défaut mais aussi une liste d'autres pages qui matchent avec le taxon.
    1313 *
    1414 * @uses wikipedia_get_page()
    1515 * @uses convertisseur_texte_spip()
     16 *
     17 * @param int    $id_taxon
     18 *      Id du taxon concerné.
     19 * @param string $element
     20 *      Elément de contenu qui sera initialisé. Prend les valeurs `texte` ou `descriptif`.
    1621 *
    1722 * @return array
     
    2328 *              - `_liens`         : liste des liens possibles pour la recherche (étape 2)
    2429 *              - `_lien_defaut`   : lien par défaut (étape 2)
    25  *              - `_descriptif`    : texte de la page trouvée ou choisie par l'utilisateur (étape 2)
    26  *              - `_etapes`        : nombre d'étapes du formaulaire, à savoir, 2.
    27  */
    28 function formulaires_decrire_taxon_charger($id_taxon) {
     30 *              - `_page`          : texte de la page trouvée ou choisie par l'utilisateur (étape 2)
     31 *              - `_etapes`        : nombre d'étapes du formulaire, à savoir, 2.
     32 */
     33function formulaires_decrire_taxon_charger($id_taxon, $element) {
    2934
    3035        // Initialisation du chargement.
    3136        $valeurs = array();
    3237
     38        // On passe l'élément de contenu concerné par l'initialisation.
     39        $valeurs['_element'] = $element;
     40
    3341        // Langue choisie pour la page wikipedia.
    3442        $valeurs['langue'] = _request('langue');
    3543
    36         // Déterminer si un descriptif existe pour une langue donnée.
     44        // Déterminer si un descriptif ou un texte explicatif existe pour une langue donnée.
    3745        include_spip('inc/filtres');
    3846        $traductions = array();
    39         if ($descriptif = sql_getfetsel('descriptif', 'spip_taxons', array('id_taxon=' . sql_quote($id_taxon)))) {
    40                 $descriptif = trim($descriptif);
    41                 if (preg_match(_EXTRAIRE_MULTI, $descriptif, $match)) {
    42                         $descriptif = trim($match[1]);
    43                 }
    44                 $traductions = extraire_trads($descriptif);
     47        if ($contenu = sql_getfetsel($element, 'spip_taxons', array('id_taxon=' . sql_quote($id_taxon)))) {
     48                $contenu = trim($contenu);
     49                if (preg_match(_EXTRAIRE_MULTI, $contenu, $match)) {
     50                        $contenu = trim($match[1]);
     51                }
     52                $traductions = extraire_trads($contenu);
    4553        }
    4654
     
    5159                $valeurs['_langues'][$_code_langue] = traduire_nom_langue($_code_langue);
    5260                if ($traductions and array_key_exists($_code_langue, $traductions)) {
    53                         $valeurs['_langues'][$_code_langue] .= ' (' . _T('taxonomie:info_descriptif_existe') .')';
     61                        $valeurs['_langues'][$_code_langue] .= ' (' . _T('taxonomie:info_element_existe') .')';
    5462                }
    5563        }
     
    6775        // Initialisation des paramètres du formulaire utilisés en étape 2 et mis à jour dans la vérification
    6876        // de l'étape 1.
    69         $valeurs['_descriptif'] = _request('_descriptif');
     77        $valeurs['_page'] = _request('_page');
    7078        $valeurs['_liens'] = _request('_liens');
    7179        $valeurs['_lien_defaut'] = _request('_lien_defaut');
     
    8391 * @uses wikipedia_get_page()
    8492 * @uses convertisseur_texte_spip()
     93 *
     94 * @param int    $id_taxon
     95 *      Id du taxon concerné.
     96 * @param string $element
     97 *      Elément de contenu qui sera initialisé. Prend les valeurs `texte` ou `descriptif`.
    8598 *
    8699 * @return array
     
    89102 *              - `_liens`         : liste des liens possibles pour la recherche (étape 2)
    90103 *              - `_lien_defaut`   : lien par défaut (étape 2)
    91  *              - `_descriptif`    : texte de la page trouvée ou choisie par l'utilisateur (étape 2)
    92  */
    93 function formulaires_decrire_taxon_verifier_1($id_taxon) {
     104 *              - `_page`    : texte de la page trouvée ou choisie par l'utilisateur (étape 2)
     105 */
     106function formulaires_decrire_taxon_verifier_1($id_taxon, $element) {
    94107
    95108        // Initialisation des erreurs de vérification.
     
    113126
    114127                // On convertit le descriptif afin de visualiser un texte plus clair.
    115                 $valeurs['_descriptif'] = '';
     128                $valeurs['_page'] = '';
    116129                if (!empty($information['text'])) {
    117130                        // Si le plugin Convertisseur est actif, conversion du texte mediawiki vers SPIP.
     
    119132                        include_spip('inc/filtres');
    120133                        $convertir = chercher_filtre('convertisseur_texte_spip');
    121                         $valeurs['_descriptif'] = $convertir ? $convertir($information['text'], 'MediaWiki_SPIP') : $information['text'];
     134                        $valeurs['_page'] = $convertir ? $convertir($information['text'], 'MediaWiki_SPIP') : $information['text'];
    122135
    123136                        // On prépare la liste des choix possibles si le texte récupéré n'est pas le bon.
     
    136149                        }
    137150                } else {
    138                         $erreurs['message_erreur'] = _T('taxonomie:erreur_wikipedia_descriptif');
     151                        $erreurs['message_erreur'] = _T('taxonomie:erreur_wikipedia_page');
    139152                }
    140153        }
     
    152165 * @uses taxon_merger_traductions()
    153166 *
     167 * @param int    $id_taxon
     168 *      Id du taxon concerné.
     169 * @param string $element
     170 *      Elément de contenu qui sera initialisé. Prend les valeurs `texte` ou `descriptif`.
     171 *
    154172 * @return array
    155173 *              Tableau retourné par le formulaire contenant toujours un message de bonne exécution ou
    156174 *              d'erreur. L'indicateur editable est toujours à vrai.
    157175 */
    158 function formulaires_decrire_taxon_traiter($id_taxon) {
     176function formulaires_decrire_taxon_traiter($id_taxon, $element) {
    159177        $retour = array();
    160178
    161179        // Initialisation des saisies.
    162180        $langue = _request('langue');
    163         $choix_descriptif = _request('choix_descriptif');
     181        $choix_page = _request('choix_page');
    164182
    165183        // Récupération des informations de base du taxon
    166         $select = array('tsn', 'nom_scientifique', 'edite', 'descriptif', 'sources');
     184        $select = array('tsn', 'nom_scientifique', 'edite', $element, 'sources');
    167185        $where = array('id_taxon=' . sql_quote($id_taxon));
    168186        $taxon = sql_fetsel($select, 'spip_taxons', $where);
     
    170188        // Récupération de la page wikipedia choisie:
    171189        include_spip('services/wikipedia/wikipedia_api');
    172         if (strtolower($choix_descriptif) == strtolower($taxon['nom_scientifique'])) {
    173                 // Le descriptif déjà fourni par défaut est le bon. On ne met pas à jour le cache.
     190        if (strtolower($choix_page) == strtolower($taxon['nom_scientifique'])) {
     191                // La page déjà fournie par défaut est la bonne. On ne met pas à jour le cache.
    174192                $recherche = array('name' => $taxon['nom_scientifique'], 'tsn' => $taxon['tsn']);
    175193                $information = wikipedia_get_page($recherche, $langue);
    176194        } else {
    177195                // On a choisit une autre page que celle par défaut : on recharge le cache avec la nouvelle recherche.
    178                 $recherche = array('name' => $choix_descriptif, 'tsn' => $taxon['tsn']);
     196                $recherche = array('name' => $choix_page, 'tsn' => $taxon['tsn']);
    179197                $information = wikipedia_get_page($recherche, $langue, null, array('reload' => true));
    180198        }
    181199
    182         // On convertit le descriptif afin de proposer un texte plus clair.
     200        // On convertit le contenu de la page afin de proposer un texte plus clair possible.
    183201        if (!empty($information['text'])) {
    184202                // Si le plugin Convertisseur est actif, conversion du texte mediawiki vers SPIP.
     
    193211                $texte_converti = '<multi>'
    194212                                                  . '[' . $langue . ']'
    195                                                   . substr($texte_converti, 0, $limite_texte)
     213                                                  . ($element=='descriptif' ? substr($texte_converti, 0, $limite_texte) : $texte_converti)
    196214                                                  . '</multi>';
    197                 // Mise à jour pour le taxon du descriptif et des champs connexes en base de données
     215                // Mise à jour pour le taxon de l'élément textuel concerné et des champs connexes.
    198216                $maj = array();
    199                 // - le texte du descriptif est inséré dans la langue choisie en mergeant avec l'existant
     217                // - le texte ou le descriptif est inséré dans la langue choisie en mergeant avec l'existant
    200218                //   si besoin. On limite la taille du descriptif pour éviter un problème lors de l'update
    201219                include_spip('inc/taxonomie');
    202                 $maj['descriptif'] = taxon_merger_traductions($texte_converti, $taxon['descriptif']);
     220                $maj[$element] = taxon_merger_traductions($texte_converti, $taxon[$element]);
    203221                // - l'indicateur d'édition est positionné à oui
    204222                $maj['edite'] = 'oui';
    205                 // - la source wikipedia est ajoutée (ou écrasée si elle existe déjà)
    206                 $maj['sources'] = array('wikipedia' => array('champs' => array('descriptif')));
    207                 if ($sources = unserialize($taxon['sources'])) {
    208                         $maj['sources'] = array_merge($maj['sources'], $sources);
     223                // - la source wikipedia est ajoutée (ou écrasée si elle existe déjà) et on met à jour la liste des champs
     224                $maj['sources'] = unserialize($taxon['sources']);
     225                if (isset($maj['sources']['wikipedia'])) {
     226                        if (!in_array($element, $maj['sources']['wikipedia']['champs'])) {
     227                                $maj['sources']['wikipedia']['champs'][] = $element;
     228                        }
     229                } else {
     230                        $maj['sources']['wikipedia'] = array('champs' => array($element));
    209231                }
    210232                $maj['sources'] = serialize($maj['sources']);
     
    215237                $retour['redirect'] = parametre_url(generer_url_ecrire('taxon_edit'), 'id_taxon', $id_taxon);
    216238        } else {
    217                 $retour['message_erreur'] = _T('taxonomie:erreur_wikipedia_descriptif');
     239                $retour['message_erreur'] = _T('taxonomie:erreur_wikipedia_page');
    218240        }
    219241
  • _plugins_/taxonomie/trunk/formulaires/decrire_taxon_2.html

    r109065 r109602  
    1414                        })]
    1515
    16                 [(#ENV{_descriptif}|oui)
    17                         [(#SAISIE{textarea, _descriptif,
    18                                 explication=<:taxonomie:explication_wikipedia_descriptif:>,
    19                                 label=<:taxonomie:label_wikipedia_descriptif:>,
     16                [(#ENV{_page}|oui)
     17                        [(#SAISIE{textarea, _page,
     18                                explication=<:taxonomie:explication_wikipedia_page:>,
     19                                label=<:taxonomie:label_wikipedia_page:>,
    2020                                disable=oui
    2121                        })]
    2222
    23                         [(#SAISIE{radio, choix_descriptif,
    24                                 explication=<:taxonomie:explication_wikipedia_lien:>,
     23                        [(#SET{nom_element, [(#VAL{taxon:champ_}|concat{#ENV{_element}}|concat{_label}|_T|strtolower)]})]
     24                        [(#SET{explication, [(#VAL{taxonomie:explication_wikipedia_lien}|_T{#ARRAY{element, #GET{nom_element}}})]})]
     25                        [(#SAISIE{radio, choix_page,
     26                                explication=#GET{explication},
    2527                                label=<:taxonomie:label_wikipedia_lien:>,
    2628                                datas=#ENV{_liens},
     
    3335                        #SET{etape_precedente, #ENV{_etape}|moins{1}}
    3436                        <input type="submit" class="submit" name="_retour_etape_1" value="<:taxonomie:bouton_retourner{etape=#GET{etape_precedente}}:>" />
    35                 [(#ENV{_descriptif}|oui)
     37                [(#ENV{_page}|oui)
    3638                        <input type="submit" class="submit" value="<:bouton_enregistrer:>" />
    3739                ]
  • _plugins_/taxonomie/trunk/inc/taxonomie.php

    r109417 r109602  
    170170
    171171/**
    172  * Extrait, de la table `spip_taxons`, la liste des taxons d'un règne donné - importés via un fichier ITIS -
    173  * ayant fait l'objet d'une modification manuelle et la liste des taxons créés lors de l'ajout d'une espèce et donc
    174  * non importés avec le fichier ITIS.
     172 * Extrait, de la table `spip_taxons`, la liste des taxons non espèce d'un règne donné - importés via un fichier ITIS -
     173 * ayant fait l'objet d'une modification manuelle et la liste des taxons non espèce créés lors de l'ajout d'une espèce
     174 * et donc non importés avec le fichier ITIS.
    175175 *
    176176 * @package SPIP\TAXONOMIE\TAXON
     
    184184 *        Liste des taxons modifiées manuellement et créés suite à l'ajout d'une espèce.
    185185 *        Chaque élément de la liste est un tableau composé, pour les taxons modifiés manuellement des index
    186  *        `tsn`, `nom_commun`, `descriptif` et pour les taxons créés via une espèce de tous les champs du objet
     186 *        `tsn`, `nom_commun`, `descriptif` et pour les taxons créés via une espèce de tous les champs de l'objet
    187187 *        taxon, à l'exception de l'id (`id_taxon`) et de la date de mise à jour (`maj`).
    188188 */
     
    194194
    195195        // Récupération de la liste des taxons importés via le fichier ITIS du règne concerné et édités manuellement.
    196         // Ces champs éditables (nom_commun, descriptif) seront réinjectés après le chargement du règne via un update.
     196        // Ces champs éditables (nom_commun, descriptif, texte et sources) seront réinjectés après le chargement du règne
     197        // via un update.
    197198        $from = array('spip_taxons');
    198199        $select = array_merge($description_table['champs_editables'], array('tsn'));
    199         $where = array('regne=' . sql_quote($regne), 'edite=' . sql_quote('oui'), 'importe=' . sql_quote('oui'));
     200        $where = array(
     201                'regne=' . sql_quote($regne),
     202                'edite=' . sql_quote('oui'),
     203                'importe=' . sql_quote('oui'),
     204                'espece=' . sql_quote('non')
     205        );
    200206        $taxons['edites'] = sql_allfetsel($select, $from, $where);
    201207
     
    206212        //    l'objet en BD (id_taxon, maj).
    207213        $select = array_diff(array_keys($description_table['field']), array('id_taxon', 'maj'));
    208         $where = array('regne=' . sql_quote($regne), 'importe=' . sql_quote('non'));
     214        $where = array(
     215                'regne=' . sql_quote($regne),
     216                'importe=' . sql_quote('non'),
     217                'espece=' . sql_quote('non')
     218        );
    209219        $taxons['crees'] = sql_allfetsel($select, $from, $where);
    210220
  • _plugins_/taxonomie/trunk/lang/espece_fr.php

    r109447 r109602  
    1111
    1212        // C
    13         'champ_auteur_label' => 'Auteur',
    14         'champ_descriptif_label' => 'Descriptif',
    15         'champ_nom_commun_label' => 'Nom commun',
    16         'champ_nom_scientifique_label' => 'Nom scientifique',
    17         'champ_rang_label' => 'Rang',
    18         'champ_regne_label' => 'Regne',
    19         'champ_sources_label' => 'Sources',
    20         'champ_texte_label' => 'Texte explicatif sur l\'espèce',
    21         'champ_objet_genre_label' => 'Type d\'objet du parent de l\'espèce',
    22         'champ_tsn_label' => 'Identifiant ITIS',
    23         'champ_tsn_parent_label' => 'Taxon parent',
    2413
    2514        // I
  • _plugins_/taxonomie/trunk/lang/taxon_fr.php

    r109447 r109602  
    1212        // C
    1313        'champ_auteur_label' => 'Auteur',
    14         'champ_descriptif_label' => 'Descriptif',
     14        'champ_descriptif_label' => 'Descriptif rapide',
    1515        'champ_nom_commun_label' => 'Nom commun',
    1616        'champ_nom_scientifique_label' => 'Nom scientifique',
     
    1818        'champ_regne_label' => 'Règne',
    1919        'champ_sources_label' => 'Sources',
     20        'champ_texte_label' => 'Texte',
    2021        'champ_tsn_label' => 'Identifiant ITIS',
    2122        'champ_tsn_parent_label' => 'Taxon parent',
  • _plugins_/taxonomie/trunk/lang/taxonomie_fr.php

    r109480 r109602  
    99        'bouton_retourner' => 'Retourner à l\'étape @etape@',
    1010        'bouton_taxonomie' => 'Taxons',
    11         'bouton_wikipedia_descriptif' => 'Remplir le descriptif avec Wikipedia',
     11        'bouton_wikipedia_descriptif' => 'Initialiser le descriptif avec Wikipedia',
     12        'bouton_wikipedia_texte' => 'Initialiser le texte avec Wikipedia',
    1213
    1314        // C
     
    1920        'erreur_vider_regne' => 'Erreur lors du vidage du règne @regne@ en base de données.',
    2021        'erreur_charger_regne' => 'Erreur lors du chargement du règne @regne@ en base de données.',
    21         'erreur_wikipedia_descriptif' => 'Aucun descriptif dans la langue choisie n\'a pu être récupéré de Wikipedia.',
     22        'erreur_wikipedia_page' => 'Aucune page dans la langue choisie n\'a pu être récupérée de Wikipedia.',
    2223        'erreur_recherche_nom_scientifique' => 'Le nom scientifique d\'une espèce ou d\'un taxon de rang inférieur est toujours constitué d\'au moins deux mots. Saisissez un second mot ou changez le type de correspondance.',
    2324        'erreur_recherche_aucun_taxon' => 'Le service ITIS ne trouve aucun taxon de rang espèce ou inférieur correspondant à cette recherche ou tous les taxons trouvés ont déjà été créés.',
     
    2829        'explication_recherche_correspondance' => 'Il conseillé d\'adapter le type de correspondance afin de limiter le nombre de taxons potentiellement compatibles.',
    2930        'explication_recherche_regne' => 'Les règnes proposés sont uniquement ceux qui ont déjà été chargés dans la base de données taxonomique.',
    30         'explication_action_regne' => 'Si le règne est déjà présent dans la base de données taxonomique, tous les taxons qui le composent seront supprimés avant le chargement.',
     31        'explication_action_regne' => 'Si le règne est déjà présent dans la base de données taxonomique, tous les taxons du règne au genre qui le composent seront supprimés avant le chargement.',
    3132        'explication_langues_regne' => 'Les taxons sont chargés par défaut avec leur nom scientifique. Cette option permet de compléter certains taxons avec leur nom commun dans la ou les langues précisées.',
    3233        'explication_langues_utilisees' => 'Le plugin supporte quelques langues comme le français, l\'anglais et l\'espagnol. Cela permet de charger voire de saisir manuellement les noms communs et descriptifs dans ces langues.
    3334        Néanmoins, en fonction de votre besoin vous pouvez limiter l\'utilisation de ces langues mais une langue est au moins requise.',
    34         'explication_wikipedia_langue' => 'Si vous utilisez plusieurs langues pour traduire vos taxons, choisissez la langue à utiliser pour récupérer le descriptif.',
    35         'explication_wikipedia_descriptif' => 'Vérifier si ce descriptif est bien celui qui décrit le mieux le taxon. Si non, choisissez une page alternative parmi celle éventuellement proposée dans la liste ci-dessous.',
    36         'explication_wikipedia_lien' => 'Choisissez la page Wikipedia que vous souhaitez intégrer comme descriptif du taxon.',
     35        'explication_wikipedia_langue' => 'Si vous utilisez plusieurs langues pour traduire vos taxons, choisissez la langue à utiliser pour récupérer la page Wikipedia.',
     36        'explication_wikipedia_page' => 'Vérifier si cette page est bien celle qui décrit le mieux le taxon. Si non, choisissez une page alternative parmi celle éventuellement proposée dans la liste ci-dessous.',
     37        'explication_wikipedia_lien' => 'Choisissez la page Wikipedia que vous souhaitez intégrer dans le champ «&nbsp;@element@&nbsp;» du taxon.',
    3738
    3839        // F
    39         'filtre_edite_oui' => 'Taxons édités',
    40         'filtre_edite_non' => 'Taxons non édités',
    41         'filtre_edite_tout' => 'Tous les taxons',
     40        'filtre_edite_oui' => 'Edités',
     41        'filtre_edite_non' => 'Non édités',
     42        'filtre_edite_tout' => 'Tous',
     43        'filtre_importe_oui' => 'Importés',
     44        'filtre_importe_non' => 'Non importés',
     45        'filtre_importe_tout' => 'Tous',
    4246        'filtre_regnes_tout' => 'Tous les règnes',
    4347
     
    4852        'info_nb_taxons' => '@nb@ taxons du règne au genre',
    4953        'info_boite_taxonomie_configuration' => 'Cette page permet de configurer les paramètres de base du plugin comme la liste des langues utilisables pour nommer ou décrire les taxons.',
    50         'info_boite_regnes' => 'Cette page permet de consulter, charger, mettre à jour ou vider les taxons du règne au genre des règnes animal, végétal et fongique.',
    51         'info_boite_taxons' => 'Cette page permet aux utilisateurs de consulter la liste des taxons du règne au genre chargés en base de données et de naviguer de taxon en taxon.',
     54        'info_boite_regnes' => 'Cette page permet de charger, mettre à jour ou vider les taxons du règne au genre (rangs principaux, secondaires et intercalaires) importés à partir des rapports hiérarchiques extraits de la base ITIS. Ces taxons peuvent être rechargés sans danger pour les autres taxons et pour les modifications éventuellement effectuées.',
     55        'info_boite_taxons' => 'Cette page permet de consulter la liste des taxons dont le rang est strictement supérieur au rang espèce. Ces taxons sont tous créés automatiquement même si ils peuvent être modifiés manuellement après coup.',
    5256        'info_boite_especes' => 'Cette page permet de consulter la liste des espèces et des taxons de rang inférieur créés par les utilisateurs.',
    5357        'info_boite_espece_creer' => 'Cette page permet de créer une espèce ou un taxon de rang inférieur à partir de son nom scientifique ou d\'un nom commun. Le formulaire fait appel à la base ITIS via des services web afin de récupérer l\'ensemble des informations de base sur le taxon.
    5458        Une fois le taxon proposé validé, l\'espèce est créée dans la base de données taxonomique et la page d\'édition de l\'espèce est affichée.',
    55         'info_descriptif_existe' => 'non vide',
     59        'info_element_existe' => 'non vide',
    5660        'info_etape' => 'Etape @etape@ / @etapes@',
    5761        'info_indicateur_hybride' => 'Ce taxon est un hydribe',
    5862        'info_regne_charge' => 'déjà chargé',
    59         'info_regne_compteur_taxons' => '@nb@ taxons chargés du règne au genre (rangs principaux, secondaires et intercalaires)',
     63        'info_regne_compteur_taxons' => '@nb@ taxons chargés du règne au genre à partir du fichier «&nbsp;@fichier@&nbsp;»',
    6064        'info_regne_compteur_traductions' => '@nb@ noms communs en [@langue@]',
    6165        'info_espece_recherche_intro' => 'Vous avez choisi de rechercher une espèce :',
     
    8488        'label_taxon_trouve' => 'Taxons correspondant à la recherche',
    8589        'label_wikipedia_alternative_defaut' => 'Utiliser le descriptif proposé par défaut',
    86         'label_wikipedia_alternative' => 'Utiliser la page « @alternative@ »',
    87         'label_wikipedia_descriptif' => 'Descriptif Wikipedia fourni par défaut',
     90        'label_wikipedia_alternative' => 'Utiliser la page «&nbsp;@alternative@&nbsp;»',
     91        'label_wikipedia_page' => 'Page Wikipedia fournie par défaut',
    8892        'label_wikipedia_langue' => 'Langue à utiliser par Wikipedia',
    8993        'label_wikipedia_lien' => 'Page Wikipedia à utiliser',
     
    143147
    144148        // O
    145         'onglet_espece' => 'Espèces et rangs inférieurs',
     149        'onglet_espece' => 'Espèces et descendants',
    146150        'onglet_gestion' => 'Gestion des règnes',
    147151        'onglet_configuration' => 'Configuration du plugin',
    148         'onglet_navigation' => 'Taxons du règne au genre',
     152        'onglet_navigation' => 'Ascendants des espèces',
    149153
    150154        // S
     
    157161        'titre_liste_regnes' => 'Liste des règnes chargés en base de données',
    158162        'titre_liste_fils_taxon' => 'Liste des descendants directs',
    159         'titre_page_decrire_wikipedia' => 'Descriptif Wikipedia du taxon <span class="nom_scientifique_inline">@taxon@</span>',
    160163        'titre_page_taxonomie' => 'Taxonomie',
    161164        'titre_page_creer_espece' => 'Créer une espèce ou un taxon de rang inférieur',
  • _plugins_/taxonomie/trunk/paquet.xml

    r109204 r109602  
    22        prefix="taxonomie"
    33        categorie="divers"
    4         version="0.2.0"
     4        version="0.3.0"
    55        etat="dev"
    66        compatibilite="[3.0.17;3.2.*]"
  • _plugins_/taxonomie/trunk/prive/objets/infos/taxon.html

    r109447 r109602  
    2121        </div>]
    2222        [<div class="statut">
    23                 (#INDICATEUR|oui)[(#VAL{taxonomie:info_indicateur_}|concat{#INDICATEUR}|_T)]
     23                (#INDICATEURS|oui)[(#VAL{taxonomie:info_indicateur_}|concat{#INDICATEURS}|_T)]
    2424        </div>]
    2525</div>
  • _plugins_/taxonomie/trunk/prive/objets/liste/taxons.html

    r109203 r109602  
    2121                <tr class="first_row">
    2222                        <th class="picto" scope="col"></th>
     23                        [(#ENV{espece, non}|=={oui}|oui)
     24                                <th class="statut" scope="col">[(#TRI{statut,<span title="<:lien_trier_statut|attribut_html:>">#</span>,ajax})]</th>
     25                        ]
    2326                        <th class="titre principale" scope="col">[(#TRI{nom_scientifique,<:taxon:champ_nom_scientifique_label:>,ajax})]</th>
    2427                        <th class="nom" scope="col">[(#TRI{nom_commun,<:taxon:champ_nom_commun_label:>,ajax})]</th>
     
    3033        </thead>
    3134        <tbody>
    32         <BOUCLE_liste_taxons(TAXONS){regne?}{rang?}{edite?}{where?}{recherche?}{tri #ENV{par,nom_scientifique}, #GET{defaut_tri}}{pagination #ENV{nb,100}}>
     35        <BOUCLE_liste_taxons(TAXONS){regne?}{rang?}{espece?}{statut?}{edite?}{importe?}{where?}{recherche?}{tri #ENV{par,nom_scientifique}, #GET{defaut_tri}}{pagination #ENV{nb,100}}>
    3336                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    3437                        <td class="picto">[(#CHEMIN_IMAGE{taxon-16.png}|balise_img)]</td>
    35                         <td class="titre principale nom_scientifique">[(#LOGO_TAXON|image_reduire{20,26})]<a href="[(#ID_TAXON|generer_url_entite{taxon})]" title="<:info_numero_abbreviation|attribut_html:> #ID_TAXON">[(#NOM_SCIENTIFIQUE)]</a></td>
     38                        [(#ENV{espece, non}|=={oui}|oui)
     39                        <td class="statut">[(#STATUT|puce_statut{espece,#ID_ESPECE})]</td>
     40                        ]
     41                        <td class="titre principale nom_scientifique">
     42                                [(#LOGO_TAXON|image_reduire{20,26})]
     43                                <a href="[(#ID_TAXON|generer_url_entite{taxon})]" title="<:info_numero_abbreviation|attribut_html:> #ID_TAXON">
     44                                        [(#NOM_SCIENTIFIQUE)]
     45                                </a>
     46                        </td>
    3647                        <td class="nom">[(#NOM_COMMUN|extraire_multi{#LANG, #ARRAY{lang_defaut, aucune}})]</td>
    3748                        <td class="rang">[(#VAL{taxonomie:rang_}|concat{#RANG}|_T)]</td>
    3849                        <td class="regne nom_scientifique">[(#REGNE)]</td>
    3950                        <td class="numero">#TSN</td>
    40                         <td class="id">[(#AUTORISER{modifier,taxon,#ID_TAXON}|?{
    41                                 <a href="[(#URL_ECRIRE{taxon_edit,id_taxon=#ID_TAXON})]">#ID_TAXON</a>,
     51                        <td class="id">[(#AUTORISER{modifier, taxon, #ID_TAXON}|?{
     52                                <a href="[(#URL_ECRIRE{taxon_edit, id_taxon=#ID_TAXON})]">#ID_TAXON</a>,
    4253                                #ID_TAXON
    4354                        })]</td>
  • _plugins_/taxonomie/trunk/prive/squelettes/contenu/especes.html

    r109442 r109602  
    1010<div class="nettoyeur"></div>
    1111
    12 <INCLURE{fond=prive/objets/liste/especes,
     12<INCLURE{fond=prive/objets/liste/taxons,
     13        espece=oui,
    1314        par=nom_scientifique,
    1415        info_1=taxonomie:info_1_espece,
  • _plugins_/taxonomie/trunk/prive/squelettes/contenu/taxon_decrire.html

    r108777 r109602  
    11[(#AUTORISER{modifier, taxon, #ENV{id_taxon}}|sinon_interdire_acces)]
    22<BOUCLE_taxon_decrire(TAXONS) {id_taxon}>
    3 <h1 class="grostitre"><:taxonomie:titre_page_decrire_wikipedia{taxon=#NOM_SCIENTIFIQUE}:></h1>
     3<h1 class="grostitre">
     4        <span class="nom_scientifique_inline">#NOM_SCIENTIFIQUE</span>
     5        [ - (#VAL{taxonomie:bouton_wikipedia_}|concat{#ENV{element}}|_T)]
     6</h1>
    47
    58[<div class="noajax">
    6         (#FORMULAIRE_DECRIRE_TAXON{#ENV{id_taxon}})
     9        (#FORMULAIRE_DECRIRE_TAXON{#ENV{id_taxon}, #ENV{element}})
    710</div>]
    811</BOUCLE_taxon_decrire>
  • _plugins_/taxonomie/trunk/prive/squelettes/contenu/taxons.html

    r109442 r109602  
    44[(#REM) Onglets pour le filtrage par règne et par indicateur d'édition ]
    55<INCLURE{fond=prive/squelettes/inclure/inc-filtres_listes,
    6         filtres=#LISTE{edition},
     6        filtres=#LISTE{edite, importe},
    77        env} />
    88
     
    1111
    1212<INCLURE{fond=prive/objets/liste/taxons,
     13        espece=non,
    1314        par=nom_scientifique,
    1415        info_1=taxonomie:info_1_taxon,
  • _plugins_/taxonomie/trunk/prive/squelettes/hierarchie/taxon_decrire.html

    r109246 r109602  
    99        </a> &gt;
    1010        <strong class="on">
    11                 <:taxonomie:titre_page_decrire_wikipedia{taxon=#NOM_SCIENTIFIQUE}:>
     11                [(#VAL{taxonomie:bouton_wikipedia_}|concat{#ENV{element}}|_T)]
    1212        </strong>
    1313        [(#REM|changer_typo)]
  • _plugins_/taxonomie/trunk/prive/squelettes/inclure/inc-filtres_listes.html

    r109442 r109602  
    1212                        (#SELF
    1313                                |parametre_url{regne, #REGNE}
    14                                 |lien_ou_expose{[(#VAL{taxonomie:regne_}|concat{#REGNE}|_T|ucfirst)], #ENV{regne}|=={#REGNE}, ajax})
     14                                |lien_ou_expose{[(#VAL{taxonomie:regne_}|concat{#REGNE}|_T|ucfirst)], #ENV{regne, ''}|=={#REGNE}, ajax})
    1515                </li>]
    1616</BOUCLE_regnes>
     
    2020
    2121[(#REM) Onglets de second niveau pour le filtrage par indicateur d'édition ]
    22 [(#ENV{filtres}|oui)<div class="onglets_simple second clearfix">]
    23 [(#VAL{edition}|in_array{#ENV{filtres, #ARRAY}}|oui)
    24         <ul class="edition">
     22<B_filtres>
     23<div class="onglets_simple second clearfix">
     24<BOUCLE_filtres(DATA) {source table, #ENV{filtres}}>
     25        <ul[ class="(#VALEUR) [(#COMPTEUR_BOUCLE|>{1}|oui) suivant]"]>
    2526                [<li class="first">
    2627                        (#SELF
    27                                 |parametre_url{edite, ''}
    28                                 |lien_ou_expose{<:taxonomie:filtre_edite_tout:>, #ENV{edite, ''}|=={''}, ajax})
     28                                |parametre_url{#VALEUR, ''}
     29                                |lien_ou_expose{[(#VAL{taxonomie:filtre_}|concat{#VALEUR}|concat{_tout}|_T)], #ENV{#VALEUR}|=={''}, ajax})
    2930                </li>]
    3031                [<li>
    3132                        (#SELF
    32                                 |parametre_url{edite, oui}
    33                                 |lien_ou_expose{<:taxonomie:filtre_edite_oui:>, #ENV{edite, ''}|=={oui}, ajax})
     33                                |parametre_url{#VALEUR, oui}
     34                                |lien_ou_expose{[(#VAL{taxonomie:filtre_}|concat{#VALEUR}|concat{_oui}|_T)], #ENV{#VALEUR}|=={'oui'}, ajax})
    3435                </li>]
    3536                [<li>
    3637                        (#SELF
    37                                 |parametre_url{edite, non}
    38                                 |lien_ou_expose{<:taxonomie:filtre_edite_non:>, #ENV{edite, ''}|=={non}, ajax})
     38                                |parametre_url{#VALEUR, non}
     39                                |lien_ou_expose{[(#VAL{taxonomie:filtre_}|concat{#VALEUR}|concat{_non}|_T)], #ENV{#VALEUR}|=={'non'}, ajax})
    3940                </li>]
    4041        </ul>
    41         <div class="nettoyeur"></div>
    42 ]
    43 [(#ENV{sous_onglets}|oui)</div>]
     42</BOUCLE_filtres>
     43        <br class="nettoyeur" />
     44</div>
     45</B_filtres>
    4446</B_regnes>
  • _plugins_/taxonomie/trunk/prive/squelettes/inclure/inc-taxonomie-raccourci.html

    r109601 r109602  
    33[(#URL_ECRIRE{taxon_decrire}
    44        |parametre_url{id_taxon, #ID_TAXON}
     5        |parametre_url{element, descriptif}
    56        |icone_horizontale{<:taxonomie:bouton_wikipedia_descriptif:>, wikipedia-24})]
     7[(#URL_ECRIRE{taxon_decrire}
     8        |parametre_url{id_taxon, #ID_TAXON}
     9        |parametre_url{element, texte}
     10        |icone_horizontale{<:taxonomie:bouton_wikipedia_texte:>, wikipedia-24})]
    611[(#GET{open}|unique|?{'',#BOITE_FERMER})]
  • _plugins_/taxonomie/trunk/prive/squelettes/liste/regnes.html

    r109441 r109602  
    4141                                <td class="descriptif">
    4242                                        [(#SET{meta_regne, [(#CONFIG{taxonomie_[(#NOM_SCIENTIFIQUE|strtolower)]})]})]
    43                                         <div>[(#VAL{taxonomie:info_regne_compteur_taxons}|_T{#ARRAY{nb, #GET{meta_regne/compteur}}})]</div>
    4443                                        <ul class="spip">
     44                                                <li>[(#VAL{taxonomie:info_regne_compteur_taxons}|_T{#ARRAY{nb, #GET{meta_regne/compteur}, fichier, #GET{meta_regne/fichier}}})]</li>
    4545                                        <BOUCLE_traductions(DATA) {source table, #GET{meta_regne/traductions/itis}}>
    4646                                                #SET{nb, #VALEUR{compteur}}
  • _plugins_/taxonomie/trunk/prive/squelettes/navigation/taxon.html

    r92772 r109602  
    44#BOITE_FERMER
    55
    6 <INCLURE{fond=prive/squelettes/inclure/inc-taxonomie-services,
    7     nom=#NOM_SCIENTIFIQUE,
     6<INCLURE{fond=prive/squelettes/inclure/inc-taxonomie-raccourci,
    87    env}>
    98
  • _plugins_/taxonomie/trunk/prive/style_prive_plugin_taxonomie.html

    r109569 r109602  
    5353.liste-objets.taxons.enfants .regne { display: none; }
    5454
     55/* Ne pas trop décaler les listes dans le tableau des règnes chargés */
     56#conteneur .liste-objets.regnes ul.spip li { margin-left: 15px; }
     57
     58/* Filtres secondaires */
     59.onglets_simple.second ul.suivant li.first { margin-left: 20px; }
    5560[(#REM) </style>]
  • _plugins_/taxonomie/trunk/services/itis/itis_api.php

    r109444 r109602  
    587587 *        inférieurs. Cette liste contient tous les rangs principaux, secondaires et intercalaires.
    588588 *        Le tableau est de la forme [nom anglais du rang en minuscules] = détails du rang
    589  * @param int    $sha_file
     589 * @param string $sha_file
    590590 *        Sha calculé à partir du fichier de taxons correspondant au règne choisi. Le sha est retourné
    591591 *        par la fonction afin d'être stocké par le plugin.
     
    634634                                foreach ($lines as $_line) {
    635635                                        $taxon = array(
    636                                                 'regne'      => $kingdom,
    637                                                 'nom_commun' => '',
    638                                                 'descriptif' => '',
    639                                                 'indicateur' => '',
    640                                                 'edite'      => 'non'
     636                                                'regne'       => $kingdom,
     637                                                'nom_commun'  => '',
     638                                                'descriptif'  => '',
     639                                                'indicateurs' => '',
     640                                                'edite'       => 'non',
     641                                                'importe'     => 'oui',
     642                                                'espece'      => 'non',
     643                                                'statut'      => 'publie',
    641644                                        );
    642645                                        if (preg_match($regexp, $_line, $match)) {
     
    653656                                                // un X pour indiquer un taxon hybride.
    654657                                                if (strtolower(trim($match[3])) == 'x') {
    655                                                         $taxon['indicateur'] = 'hybride';
     658                                                        $taxon['indicateurs'] = 'hybride';
    656659                                                }
    657660
     
    704707 * @param string $language
    705708 *        Langue au sens d'ITIS écrite en minuscules. Vaut `french`, `english`, `spanish` etc.
    706  * @param int    $sha_file
     709 * @param string $sha_file
    707710 *        Sha calculé à partir du fichier des noms communs choisi. Le sha est retourné
    708711 *        par la fonction afin d'être stocké par le plugin.
     
    745748 * @param string $kingdom
    746749 *        Nom scientifique du règne en lettres minuscules : `animalia`, `plantae`, `fungi`.
    747  * @param int    $sha_file
     750 * @param string $sha_file
    748751 *        Sha calculé à partir du fichier de taxons correspondant au règne choisi. Le sha est retourné
    749752 *        par la fonction afin d'être stocké par le plugin.
  • _plugins_/taxonomie/trunk/taxonomie_administrations.php

    r109300 r109602  
    2626
    2727        $maj['create'] = array(
    28                 array('maj_tables', array('spip_taxons', 'spip_especes')),
     28                array('maj_tables', array('spip_taxons')),
    2929                array('ecrire_config', 'taxonomie', $config_defaut)
    3030        );
     
    4747        // Supprimer la table des taxons créées par le plugin
    4848        sql_drop_table("spip_taxons");
    49         sql_drop_table("spip_especes");
    5049
    5150        // Nettoyer les versionnages
    52         sql_delete("spip_versions",              sql_in("objet", array('taxon', 'espece')));
    53         sql_delete("spip_versions_fragments",    sql_in("objet", array('taxon', 'espece')));
     51        sql_delete("spip_versions",              sql_in("objet", array('taxon')));
     52        sql_delete("spip_versions_fragments",    sql_in("objet", array('taxon')));
    5453
    5554        // Effacer la meta de chaque règne chargé. On boucle sur tous les règnes
  • _plugins_/taxonomie/trunk/taxonomie_fonctions.php

    r109384 r109602  
    1111
    1212/**
    13  * Charge tous les taxons d'un règne donné, du règne lui-même jusqu'aux taxons de genre.
     13 * Charge tous les taxons d'un règne donné fourni dans le fichier ITIS, du règne lui-même jusqu'aux taxons de genre.
    1414 * Les nom communs anglais, français, espagnols, etc, peuvent aussi être chargés en complément mais
    1515 * ne couvrent pas l'ensemble des taxons.
     
    9494
    9595                // Ré-injection des modifications manuelles effectuées sur les taxons importés via le fichier ITIS du règne.
    96                 // -- descriptif: remplacement
     96                // -- descriptif, texte, sources: remplacement
    9797                // -- nom commun: merge en considérant que la mise à jour manuelle est prioritaire
    98                 // -- edite: oui, on conserve bien sur l'indicateur d'édition
    99                 if ($taxons_preserves['edites']) {
     98                // -- edite: positionné à 1, on conserve bien sur l'indicateur d'édition
     99                if (!empty($taxons_preserves['edites'])) {
    100100                        foreach ($taxons_preserves['edites'] as $_taxon_edite) {
    101101                                if (($tsn = $_taxon_edite['tsn']) and (array_key_exists($tsn, $taxons))) {
    102102                                        $taxons[$tsn]['descriptif'] = $_taxon_edite['descriptif'];
     103                                        $taxons[$tsn]['texte'] = $_taxon_edite['texte'];
     104                                        $taxons[$tsn]['sources'] = $_taxon_edite['sources'];
    103105                                        $taxons[$tsn]['nom_commun'] = taxon_merger_traductions(
    104106                                                $_taxon_edite['nom_commun'],
     
    114116                // Ré-injection des taxons créés lors de l'ajout d'une espèce et donc jamais importés via le fichier ITIS
    115117                // du règne.
    116                 if ($taxons_preserves['crees']) {
     118                if (!empty($taxons_preserves['crees'])) {
    117119                        $taxons = array_merge($taxons, $taxons_preserves['crees']);
    118120                }
     
    124126                        // Ca permettra de tester l'utilité ou pas d'un rechargement du règne
    125127                        $meta_regne['maj'] = date('Y-m-d H:i:s');
     128                        $meta_regne['fichier'] = "${regne}_genus.txt";
    126129
    127130                        // Mise à jour de la meta du règne.
     
    136139
    137140/**
    138  * Supprime tous les taxons d'un règne donné de la base de données.
     141 * Supprime de la base de données tous les taxons importés à partir du rapport hiérarchique d'un règne donné.
    139142 * La meta concernant les informations de chargement du règne est aussi effacée.
    140  * Les modifications manuelles effectuées sur les taxons du règne sont perdues, elles
    141  * doivent donc être préservées au préalable.
     143 * Les modifications manuelles effectuées sur les taxons concernés ainsi que les taxons ajoutés lors de la création
     144 * d'une espèce sont perdues : elles doivent donc être préservées au préalable.
    142145 *
    143146 * @package SPIP\TAXONOMIE\REGNE
     
    154157function regne_vider($regne) {
    155158
    156         $retour = sql_delete('spip_taxons', 'regne=' . sql_quote($regne));
     159        $where = array('regne=' . sql_quote($regne), 'importe=' . sql_quote('oui'));
     160        $retour = sql_delete('spip_taxons', $where);
    157161        if ($retour !== false) {
    158162                // Supprimer la meta propre au règne.
     
    167171/**
    168172 * Retourne l'existence ou pas d'un règne en base de données.
    169  * La fonction scrute la table `spip_taxons` et non la meta propre au règne.
     173 * La fonction scrute les taxons importés de la table `spip_taxons` et non la meta propre au règne.
    170174 *
    171175 * @package SPIP\TAXONOMIE\REGNE
     
    188192        $existe = false;
    189193
    190         $retour = sql_countsel('spip_taxons', 'regne=' . sql_quote($regne));
     194        $where = array('regne=' . sql_quote($regne), 'importe=' . sql_quote('oui'));
     195        $retour = sql_countsel('spip_taxons', $where);
    191196        if ($retour) {
    192197                // Récupérer la meta propre au règne afin de la retourner.
     
    201206
    202207/**
    203  * Fournit l'ascendance taxonomique d'un taxon donné par consultation dans la base de données.
     208 * Fournit l'ascendance taxonomique d'un taxon donné, par consultation dans la base de données.
    204209 *
    205210 * @package SPIP\TAXONOMIE\TAXON
     
    218223 * @return array
    219224 *        Liste des taxons ascendants. Chaque taxon est un tableau associatif contenant les informations
    220  *        suivantes : `id_taxon`, `tsn_parent`, `nom_scientifique`, `nom_commun`, `rang`.
     225 *        suivantes : `id_taxon`, `tsn_parent`, `nom_scientifique`, `nom_commun`, `rang`, `statut` et l'indicateur
     226 *        d'espèce `espèce`.
    221227 */
    222228function taxon_informer_ascendance($id_taxon, $tsn_parent = null, $ordre = 'descendant') {
     
    232238
    233239        while ($tsn_parent > 0) {
    234                 $select = array('id_taxon', 'tsn_parent', 'nom_scientifique', 'nom_commun', 'rang');
     240                $select = array('id_taxon', 'tsn_parent', 'nom_scientifique', 'nom_commun', 'rang', 'statut', 'espece');
    235241                $where = array('tsn=' . intval($tsn_parent));
    236242                $taxon = sql_fetsel($select, 'spip_taxons', $where);
Note: See TracChangeset for help on using the changeset viewer.