Changeset 87600 in spip-zone


Ignore:
Timestamp:
Feb 22, 2015, 3:16:13 PM (5 years ago)
Author:
eric@…
Message:

Gestion du rang phylum ou division.
Ajout d'un champ edite pour indiquer une modification manuelle du taxon et mise à jour lors d'une modification.

Location:
_plugins_/taxonomie/trunk
Files:
6 edited

Legend:

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

    r87316 r87600  
    6868                        "tsn_parent"            => "bigint(21) NOT NULL",
    6969                        "sources"                       => "text DEFAULT '' NOT NULL",
    70                         "statut"                        => "varchar(8) DEFAULT '0' NOT NULL",
     70                        "edite"                         => "varchar(3) DEFAULT 'non' NOT NULL",
    7171                        "maj"                           => "TIMESTAMP"
    7272                ),
  • _plugins_/taxonomie/trunk/inc/taxonomer.php

    r86103 r87600  
    2020if (!defined('_TAXONOMIE_RANG_REGNE'))
    2121        define('_TAXONOMIE_RANG_REGNE', 'kingdom');
     22// Suivant le règne l'embranchement se nomme phylum (animalia) ou division (fungi, plantae).
     23// Néanmoins, le terme phylum est souvent accepté pour l'ensemble des règnes
    2224if (!defined('_TAXONOMIE_RANG_PHYLUM'))
    2325        define('_TAXONOMIE_RANG_PHYLUM', 'phylum');
     26if (!defined('_TAXONOMIE_RANG_DIVISION'))
     27        define('_TAXONOMIE_RANG_DIVISION', 'division');
    2428if (!defined('_TAXONOMIE_RANG_CLASSE'))
    2529        define('_TAXONOMIE_RANG_CLASSE', 'class');
     
    3337        define('_TAXONOMIE_RANG_ESPECE', 'specie');
    3438
     39// Pour la liste des rangs on utilise par défaut au niveau 2 le terme phylum
    3540if (!defined('_TAXONOMIE_LISTE_RANGS'))
    3641        define('_TAXONOMIE_LISTE_RANGS',
     
    8489 * kingdom, phylum, class, order, family, genus et specie.
    8590 * 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.
     91 * La fonction permet d'exclure de la liste les rangs extrêmes kingdom et specie et de choisir
     92 * entre le rang phylum et son synonyme division.
    8793 *
    8894 * @param bool $exclure_regne
     
    9096 * @param bool $exclure_espece
    9197 *              Demande d'exclusion de l'espèce de la liste des rangs
     98 * @param string        $regne
     99 *              Nom scientifque du règne pour lequel la liste des rangs est demandée.
     100 *              Cet argument permet de remplacer le rang phylum par division qui est son synonyme
     101 *              pour les règnes fongique et végétal
    92102 *
    93103 * @return array
    94104 */
    95 function lister_rangs($exclure_regne=true, $exclure_espece=true) {
     105function lister_rangs($exclure_regne=true, $exclure_espece=true, $regne=_TAXONOMIE_REGNE_ANIMAL) {
    96106        $exclusions = array();
    97107
     
    103113        $rangs = array_diff($rangs, $exclusions);
    104114
     115        if (($regne == _TAXONOMIE_REGNE_FONGIQUE)
     116        OR  ($regne == _TAXONOMIE_REGNE_VEGETAL)) {
     117                if ($index_phylum = array_search(_TAXONOMIE_RANG_PHYLUM, $rangs))
     118                        $rangs[$index_phylum] = _TAXONOMIE_RANG_DIVISION;
     119        }
     120
    105121        return $rangs;
    106122}
  • _plugins_/taxonomie/trunk/lang/taxonomie_fr.php

    r87576 r87600  
    4747        'rang_kingdom' => 'règne',
    4848        'rang_division' => 'division',
    49         'rang_phylum' => 'embranchement',
     49        'rang_phylum' => 'phylum',
    5050        'rang_class' => 'classe',
    5151        'rang_order' => 'ordre',
  • _plugins_/taxonomie/trunk/paquet.xml

    r86110 r87600  
    1818        <pipeline nom="declarer_tables_objets_sql" inclure="base/taxonomie_declarations.php" />
    1919        <pipeline nom="declarer_tables_interfaces" inclure="base/taxonomie_declarations.php" />
     20        <pipeline nom="pre_edition" inclure="taxonomie_pipelines.php" />
    2021
    2122        <necessite nom="saisies"  compatibilite="[1.24.0;]" />
  • _plugins_/taxonomie/trunk/taxonomie_fonctions.php

    r87576 r87600  
    3131        $retour = false;
    3232        $meta_regne = array();
     33
     34
     35        // Sauvegarde des taxons ayant été modifiés manuellement suite à leur création automatique.
     36
    3337
    3438        // Lecture de la hiérarchie des taxons à partir du fichier texte extrait de la base ITIS
     
    7478 * Suppression de tous les taxons d'un règne donné de la base de données.
    7579 * La meta concernant les informations de chargement du règne est aussi effacée.
     80 * Les modifications manuelles effectuées sur les taxons du règne sont perdues!
    7681 *
    7782 * @api
     
    105110 * @param string        $regne
    106111 *              Nom scientifique du règne en lettres minuscules (animalia, plantae, fungi)
     112 * @param array         $meta_regne
     113 *              Meta propre au règne, créée lors du chargement de celui-ci et retournée si le règne
     114 *              existe
    107115 *
    108116 * @return bool
     
    114122        $retour = sql_countsel('spip_taxons', 'regne=' . sql_quote($regne));
    115123        if ($retour) {
    116                 // Supprimer la meta propre au règne.
     124                // Récupérer la meta propre au règne afin de la retourner.
    117125                include_spip('inc/config');
    118126                $meta_regne = lire_config("taxonomie_$regne");
  • _plugins_/taxonomie/trunk/taxonomie_pipelines.php

    r86103 r87600  
    1313       
    1414
     15/**
     16 * Surcharge de l'action instituer standard d'un objet en incluant des traitements prealables pour une relecture :
     17 * - pour une ouverture, on ecrase le statut a ouverte car il est automatiquement mis a prepa par defaut
     18 * - pour une cloture, date et revision de cloture
     19 *
     20 * @param array $flux
     21 * @return array
     22 *
     23**/
     24function taxonomie_pre_edition($flux) {
     25
     26        $table = $flux['args']['table'];
     27        $id = intval($flux['args']['id_objet']);
     28        $action = $flux['args']['action'];
     29
     30        // Traitements particuliers de l'objet taxon quand celui-ci est modfifié manuellement
     31        if (($table == 'spip_taxons')
     32        AND ($id)) {
     33
     34                // Modification d'un des champs éditables du taxon
     35                if ($action == 'modifier') {
     36                        // -- On positionne l'indicateur d'édition à oui, ce qui permettra d'éviter lors
     37                        //    d'un rechargement du règne de perdre les modifications manuelles
     38                        $flux['data']['edite'] = 'oui';
     39                }
     40        }
     41
     42        return $flux;
     43}
    1544
    1645
Note: See TracChangeset for help on using the changeset viewer.