Changeset 109246 in spip-zone


Ignore:
Timestamp:
Mar 2, 2018, 8:11:11 PM (22 months ago)
Author:
eric@…
Message:

Finalisation des 3 étapes du formulaire de création d'une espèce.
Il reste le traitement final à coder.
Mise au point des css pour gérer les nom scientifiques dans une balise inline ou pas.

Location:
_plugins_/taxonomie/trunk
Files:
3 added
14 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/taxonomie/trunk/formulaires/charger_regne.php

    r109203 r109246  
    4242        $regnes = explode(':', _TAXONOMIE_REGNES);
    4343        foreach ($regnes as $_regne) {
    44                 $valeurs['_regnes'][$_regne] = '<span class="nom_scientifique">' . $_regne . '</span>, ' . _T("taxonomie:regne_${_regne}");
     44                $valeurs['_regnes'][$_regne] = '<span class="nom_scientifique_inline">' . $_regne . '</span>, ' . _T("taxonomie:regne_${_regne}");
    4545                if (taxonomie_regne_existe($_regne, $meta_regne)) {
    4646                        $valeurs['_regnes'][$_regne] .= ' [' . _T("taxonomie:info_regne_charge") . ']';
  • _plugins_/taxonomie/trunk/formulaires/creer_espece.html

    r109224 r109246  
    99                <div class="editer-groupe">
    1010                        [(#SAISIE{radio, type_recherche,
    11                                 explication=<:taxonomie:explication_type_recherche:>,
    12                                 label=<:taxonomie:label_type_recherche:>,
     11                                explication=<:taxonomie:explication_recherche_type:>,
     12                                label=<:taxonomie:label_recherche_type:>,
    1313                                datas=#ENV{_types_recherche},
    1414                                defaut=#ENV{_type_recherche_defaut}
     
    2121                        })]
    2222
    23                         [(#SAISIE{oui_non, recherche_stricte,
    24                                 explication=<:taxonomie:explication_recherche_stricte:>,
    25                                 label=<:taxonomie:label_recherche_stricte:>,
    26                                 defaut=on
     23                        [(#SAISIE{radio, correspondance,
     24                                explication=<:taxonomie:explication_recherche_correspondance:>,
     25                                label=<:taxonomie:label_recherche_correspondance:>,
     26                                datas=#ENV{_correspondances},
     27                                defaut=#ENV{_correspondance_defaut}
    2728                        })]
    2829
    2930                        [(#SAISIE{radio, regne,
    30                                 label=<:taxonomie:label_regne_recherche:>,
    31                                 explication=<:taxonomie:explication_regne_recherche:>,
     31                                label=<:taxonomie:label_recherche_regne:>,
     32                                explication=<:taxonomie:explication_recherche_regne:>,
    3233                                datas=#ENV{_regnes},
    3334                                defaut=#ENV{_regne_defaut}
     
    4142        </form>
    4243</div>
     44
     45<script type="text/javascript">/*<![CDATA[*/
     46        jQuery(document).ready(function() {
     47        [(#ENV{type_recherche, scientificname}|=={scientificname}|oui)
     48                jQuery(".choix_debut").hide('fast');
     49                jQuery(".choix_fin").hide('fast');
     50        ]
     51                jQuery("input[name='type_recherche']").change(function() {
     52                        if (jQuery("input[name='type_recherche']:checked").val() == 'commonname') {
     53                                jQuery(".choix_debut").show('fast');
     54                                jQuery(".choix_fin").show('fast');
     55                        }
     56                        else {
     57                                jQuery(".choix_debut").hide('fast');
     58                                jQuery(".choix_fin").hide('fast');
     59                        }
     60                        jQuery(this).blur();
     61                });
     62        });
     63/*]]>*/</script>
  • _plugins_/taxonomie/trunk/formulaires/creer_espece.php

    r109225 r109246  
    2020 *                                   ou nom commun (`commonname`).
    2121 *              - `recherche`              : (saisie) texte de la recherche.
    22  *              - `recherche_stricte`      : (saisie) indique si on doit rechercher le texte exact ou pas.
     22 *              - `correspondance`         : (saisie) indique si on doit rechercher le texte exact ou pas.
    2323 *              - `regne`                  : (saisie) règne d'appartenance de l'espèce pour limiter le scope de recherche.
    2424 *              - `_types_recherche`       : (affichage) recherche par nom scientifique ou par nom commun.
     
    3838        $valeurs['type_recherche'] = _request('type_recherche');
    3939        $valeurs['recherche'] = _request('recherche');
    40         $valeurs['recherche_stricte'] = _request('recherche_stricte');
     40        $valeurs['correspondance'] = _request('correspondance');
    4141        $valeurs['regne'] = _request('regne');
    4242
     
    5151        $valeurs['_type_recherche_defaut'] = 'scientificname';
    5252
     53        // Types de correspondance et défaut.
     54        $correspondances = array('exact', 'contenu', 'debut', 'fin');
     55        foreach ($correspondances as $_correspondance) {
     56                $valeurs['_correspondances'][$_correspondance] = _T("taxonomie:label_recherche_correspondance_${_correspondance}");
     57        }
     58        $valeurs['_correspondance_defaut'] = 'exact';
     59
    5360        // Acquérir la liste des règnes déjà chargés. Si un règne n'est pas chargé il n'apparait pas dans la liste
    5461        // car il ne sera alors pas possible de créer correctement l'espèce avec sa hiérarchie de taxons.
     
    5865        foreach ($regnes as $_regne) {
    5966                if (taxonomie_regne_existe($_regne, $meta_regne)) {
    60                         $valeurs['_regnes'][$_regne] = '<span class="nom_scientifique">' . $_regne . '</span>, ' . _T("taxonomie:regne_${_regne}");
     67                        $valeurs['_regnes'][$_regne] = ucfirst(_T("taxonomie:regne_${_regne}"));
    6168                }
    6269        }
     
    6572        $valeurs['_regne_defaut'] = key($valeurs['_regnes']);
    6673
    67         // Initialisation des paramètres du formulaire utilisés en étape 2 et mis à jour dans la vérification
     74        // Initialisation des paramètres du formulaire utilisés en étape 2 et 3 et mis à jour dans la vérification
    6875        // de l'étape 1.
     76        // -- Etape 2
    6977        $valeurs['_taxons'] = _request('_taxons');
    7078        $valeurs['_taxon_defaut'] = _request('_taxon_defaut');
    7179        $valeurs['_resume'] = _request('_resume');
     80        // -- Etape 3
     81        $valeurs['tsn'] = _request('tsn');
     82        $valeurs['_espece'] = _request('_espece');
     83        $valeurs['_parent'] = _request('_parent');
    7284
    7385        // Préciser le nombre d'étapes du formulaire
     
    8294 * @uses itis_search_tsn()
    8395 * @uses itis_get_information()
     96 * @uses itis_get_record()
    8497 *
    8598 * @return array
    8699 *        Message d'erreur si aucun taxon disponible ou si il existe une erreur dans les saisies ou
    87100 *        chargement (set_request) des champs utiles à l'étape 2 sinon. Ces champs sont :
    88  *              - `_taxons`       : (affichage) liste des taxons correspondant à la recherche (tsn, nom scientifique et rang).
    89  *              - `_taxon_defaut` : (affichage) tsn du taxon choisi par défaut.
    90  *              - `_resume`       : (affichage) texte résumant les saisies de l'étape 1 dont le texte de la recherche.
    91  */
     101 *            - `_taxons`       : (affichage) liste des taxons correspondant à la recherche (tsn, nom scientifique et rang).
     102 *            - `_taxon_defaut` : (affichage) tsn du taxon choisi par défaut.
     103  */
    92104function formulaires_creer_espece_verifier_1() {
    93105
     
    122134                        // On recherche le ou les taxons correspondant au texte saisi.
    123135                        // -- récupération des autres variables
    124                         $recherche_stricte = _request('recherche_stricte') == 'on';
     136                        $correspondance = _request('correspondance');
     137                        $recherche_exacte = ($correspondance == 'exact');
    125138                        $regne =  _request('regne');
    126139                        // -- suppression des espaces en trop dans la chaîne de recherche pour permettre la comparaison
    127                         //    avec le combinedName d'ITIS
     140                        //    avec le combinedName ou le commonName d'ITIS.
    128141                        $recherche = preg_replace('#\s{2,}#', ' ', $recherche);
    129142
     143                        // Appel de l'API de recherche d'ITIS en fonction du type et de la correspondance de recherche
    130144                        include_spip('services/itis/itis_api');
    131                         $taxons = itis_search_tsn($type_recherche, $recherche, $recherche_stricte);
     145                        $action = $type_recherche;
     146                        if (($type_recherche == 'commonname') and ($correspondance == 'debut')) {
     147                                $action = 'commonnamebegin';
     148                        } elseif (($type_recherche == 'commonname') and ($correspondance == 'fin')) {
     149                                $action = 'commonnameend';
     150                        }
     151                        $taxons = itis_search_tsn($action, $recherche, $recherche_exacte);
     152
    132153                        if ($taxons) {
    133                                 // Construire le résumé des saisies de l'étape 1
    134                                 $valeurs['_resume'] = '<p>' . _T('taxonomie:info_espece_recherche_intro') . '</p>';
    135                                 $item_quoi = 'taxonomie:info_espece_recherche_'
    136                                         . $type_recherche
    137                                         . ($recherche_stricte ? '_exact' : '');
    138                                 $recherche_decoree = "<strong>$recherche</strong>";
    139                                 $recherche_decoree = $type_recherche == 'scientificname'
    140                                         ? '<span class="nom_scientifique">' . $recherche_decoree . '</span>'
    141                                         : $recherche_decoree;
    142                                 $valeurs['_resume'] .= '<ul class="spip">'
    143                                         . '<li>'
    144                                         . _T(
    145                                             $item_quoi,
    146                                                 array('recherche' => $recherche_decoree)
    147                                         )
    148                                         . '</li>'
    149                                         . '<li>'
    150                                         . _T(
    151                                             'taxonomie:info_espece_recherche_regne',
    152                                                 array('regne' => '<span class="nom_scientifique">' . $regne . '</span>')
    153                                         )
    154                                         . '</li>'
    155                                         .'</ul>'
    156                                         .'<p>' . _T('taxonomie:info_espece_recherche_fin') . '</p>';
    157 
    158                                 // Construire le tableau des taxons trouvés en supprimant les taxons qui n'appartiennent pas
     154                        // Construire le tableau des taxons trouvés en supprimant les taxons qui n'appartiennent pas
    159155                                // au règne concerné ou qui n'ont pas un rang compatible (uniquement pour la recherche par nom commun).
    160156                                $valeurs['_taxon_defaut'] = 0;
     
    165161                                                        // aussi pour vérifier que ce rang est compatible avec une espèce si on cherche par nom commun.
    166162                                                        $rang = itis_get_information('rankname', $_taxon['tsn']);
    167                                                         $valeurs['_taxons'][$_taxon['tsn']] = '<span class="nom_scientifique">'
     163                                                        $valeurs['_taxons'][$_taxon['tsn']] = '<span class="nom_scientifique_inline">'
    168164                                                                . $_taxon['nom_scientifique']
    169165                                                                . '</span>'
     
    197193                                }
    198194                        } else {
    199                                 $erreurs['message_erreur'] = _T(
    200                                     'taxonomie:erreur_recherche_aucun_taxon',
    201                                         array('texte' => $recherche, 'regne' => '<span class="nom_scientifique">' . $regne . '</span>')
    202                                 );
     195                                $erreurs['message_erreur'] = _T('taxonomie:erreur_recherche_aucun_taxon');
    203196                        }
    204197                } else {
     
    215208/**
    216209 * Vérification de l'étape 2 du formulaire : on présente les informations principales du taxon choisi avant
    217  * que le 'utilisateur ne valide définitivement son choix.
     210 * que l'utilisateur ne valide définitivement son choix.
     211 *
     212 * @uses itis_get_record()
     213 *
     214 * @return array
     215 *        Message d'erreur si le service ITIS ne renvoie pas les informations demandées (a priori jamais) ou
     216 *        chargement (set_request) des champs utiles à l'étape 3 sinon. Ces champs sont :
     217 *              - `_espece` : (affichage) toutes les informations ITIS sur l'espèce.
     218 *              - `_parent` : (affichage) toutes les informations ITIS sur le parent direct de l'espèce.
     219 */
     220function formulaires_creer_espece_verifier_2() {
     221
     222        // Initialisation des erreurs de vérification.
     223        $erreurs = array();
     224
     225        if ($tsn = intval(_request('tsn'))) {
     226                // On récupère les informations de base du taxon afin de les présenter à l'utilisateur pour validation
     227                // finale.
     228                include_spip('services/itis/itis_api');
     229                $espece = itis_get_record($tsn);
     230                if ($espece) {
     231                        // On passe la description de l'espèce après avoir construit la liste des noms communs utiles.
     232                        $nom_commun = '';
     233                        if ($espece['nom_commun']) {
     234                                include_spip('inc/config');
     235                                $langues_utilisees = lire_config('taxonomie/langues_utilisees');
     236                                foreach ($espece['nom_commun'] as $_langue => $_nom) {
     237                                        if (in_array($_langue, $langues_utilisees)) {
     238                                                $nom_commun .= ($nom_commun ? '<br />': '') . '[' . $_langue .'] ' . $_nom;
     239                                        }
     240                                }
     241                        }
     242                        $espece['nom_commun_utilise'] = $nom_commun;
     243                        set_request('_espece', $espece);
     244
     245                        // Détermination du parent : on récupère son record complet
     246                        $parent = itis_get_record($espece['tsn_parent']);
     247                        if ($parent) {
     248                                set_request('_parent', $parent);
     249                        } else {
     250                                $erreurs['message_erreur'] = _T('taxonomie:erreur_acces_taxon');
     251                        }
     252                } else {
     253                        $erreurs['message_erreur'] = _T('taxonomie:erreur_acces_taxon');
     254                }
     255        } else {
     256                $erreurs['message_erreur'] = _T('taxonomie:erreur_acces_taxon');
     257        }
     258
     259        return $erreurs;
     260}
     261
     262
     263/**
     264 * Vérification de l'étape 3 du formulaire : on vérifie que l'espèce n'existe pas déjà dans la base de données
     265 * taxonomique.
    218266 *
    219267 * @uses wikipedia_get_page()
     
    227275 *              - `_descriptif`    : texte de la page trouvée ou choisie par l'utilisateur (étape 2)
    228276 */
    229 function formulaires_creer_espece_verifier_2() {
     277function formulaires_creer_espece_verifier_3() {
    230278
    231279        // Initialisation des erreurs de vérification.
    232280        $erreurs = array();
    233281
    234         if ($tsn = intval(_request('taxon'))) {
    235                 // On récupère les informations de base du taxon afin de les présenter à l'utilisateur pour validation
    236                 // finale.
    237                 include_spip('services/itis/itis_api');
    238                 $record = itis_get_record($tsn);
    239                 if ($record) {
    240                         // Préparer la visualisation finale.
    241                 } else {
    242                         $erreurs['message_erreur'] = _T('taxonomie:erreur_taxon_inconnu');
     282        if ($tsn = intval(_request('tsn'))) {
     283                // On vérifie que l'espèce n'a pas déjà été créée et possède un statut autre que refusé ou poubelle.
     284                if (sql_countsel('spip_especes', array('tsn=' . $tsn))) {
     285                        $erreurs['message_erreur'] = _T('taxonomie:erreur_espece_deja_creee');
    243286                }
    244287        } else {
    245                 $erreurs['message_erreur'] = _T('taxonomie:erreur_taxon_inconnu');
     288                $erreurs['message_erreur'] = _T('taxonomie:erreur_acces_taxon');
    246289        }
    247290
    248291        return $erreurs;
    249292}
     293
    250294
    251295/**
     
    264308        $retour = array();
    265309
    266         // Initialisation des saisies.
    267         $langue = _request('langue');
    268         $choix_descriptif = _request('choix_descriptif');
    269 
    270         // Récupération des informations de base du taxon
    271         $select = array('tsn', 'nom_scientifique', 'edite', 'descriptif', 'sources');
    272         $where = array('id_taxon=' . sql_quote($id_taxon));
    273         $taxon = sql_fetsel($select, 'spip_taxons', $where);
    274 
    275         // Récupération de la page wikipedia choisie:
    276         include_spip('services/wikipedia/wikipedia_api');
    277         if ($choix_descriptif == $taxon['nom_scientifique']) {
    278                 // Le descriptif déjà fourni par défaut est le bon. On ne met pas à jour le cache.
    279                 $recherche = array('name' => $taxon['nom_scientifique'], 'tsn' => $taxon['tsn']);
    280                 $information = wikipedia_get_page($recherche, $langue);
     310        if ($tsn = intval(_request('tsn'))) {
     311                // Vérification de l'existence du parent.
     312                // Si le parent n'existe pas en base c'est soit une erreur si le rang supérieur ou égal au genre soit
     313                // normal si le rang est un sous-genre. En effet, les sous-genres sont uniquement créés au coups par coups
     314                // quand on crée les espèces.
     315
     316                // Ajout de l'espèce en base
     317                // Si le rang est bien espèce alors on ajoute que ce taxon. Sinon il faut ajouter toute l'arborecence jusqu'au
     318                // taxon d'espèce.
     319
     320                // Ajout du parent si nécessaire.
     321
     322                // Redirection vers la page d'édition du taxon
     323                $id_espece = 0;
     324                $retour['redirect'] = parametre_url(generer_url_ecrire('espece_edit'), 'id_espece', $id_espece);
    281325        } else {
    282                 // On a choisit une autre page que celle par défaut : on recharge le cache avec la nouvelle recherche.
    283                 $recherche = array('name' => $choix_descriptif, 'tsn' => $taxon['tsn']);
    284                 $information = wikipedia_get_page($recherche, $langue, null, array('reload' => true));
    285         }
    286 
    287         // On convertit le descriptif afin de proposer un texte plus clair.
    288         if (!empty($information['text'])) {
    289                 // Si le plugin Convertisseur est actif, conversion du texte mediawiki vers SPIP.
    290                 include_spip('inc/filtres');
    291                 $convertir = chercher_filtre('convertisseur_texte_spip');
    292                 $texte_converti = $convertir ? $convertir($information['text'], 'MediaWiki_SPIP') : $information['text'];
    293 
    294                 // Mise en format multi systématique et limitation de la chaîne en fonction du nombre de langues utilisées.
    295                 include_spip('inc/config');
    296                 $langues_utilisees = lire_config('taxonomie/langues_utilisees');
    297                 $limite_texte = floor(65535 / (count($langues_utilisees) + 1));
    298                 $texte_converti = '<multi>'
    299                                                   . '[' . $langue . ']'
    300                                                   . substr($texte_converti, 0, $limite_texte)
    301                                                   . '</multi>';
    302                 // Mise à jour pour le taxon du descriptif et des champs connexes en base de données
    303                 $maj = array();
    304                 // - le texte du descriptif est inséré dans la langue choisie en mergeant avec l'existant
    305                 //   si besoin. On limite la taille du descriptif pour éviter un problème lors de l'update
    306                 include_spip('inc/taxonomer');
    307                 $maj['descriptif'] = taxon_merger_traductions($texte_converti, $taxon['descriptif']);
    308                 // - l'indicateur d'édition est positionné à oui
    309                 $maj['edite'] = 'oui';
    310                 // - la source wikipedia est ajoutée (ou écrasée si elle existe déjà)
    311                 $maj['sources'] = array('wikipedia' => array('champs' => array('descriptif')));
    312                 if ($sources = unserialize($taxon['sources'])) {
    313                         $maj['sources'] = array_merge($maj['sources'], $sources);
    314                 }
    315                 $maj['sources'] = serialize($maj['sources']);
    316                 // - Mise à jour
    317                 sql_updateq('spip_taxons', $maj, 'id_taxon=' . sql_quote($id_taxon));
    318 
    319                 // Redirection vers la page d'édition du taxon
    320                 $retour['redirect'] = parametre_url(generer_url_ecrire('taxon_edit'), 'id_taxon', $id_taxon);
    321         } else {
    322                 $retour['message_erreur'] = _T('taxonomie:erreur_wikipedia_descriptif');
     326                $retour['message_erreur'] = _T('taxonomie:erreur_inconnue');
    323327        }
    324328
  • _plugins_/taxonomie/trunk/formulaires/creer_espece_2.html

    r109224 r109246  
    44        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    55
    6         [<div>(#ENV*{_resume})</div>]
     6        <div>
     7                <p>
     8                        <:taxonomie:info_espece_recherche_intro:>
     9                </p>
     10                <ul class="spip">
     11                        <li>
     12                                [(#SET{parametre, [<strong>(#ENV{recherche})</strong>]})]
     13                                [(#VAL{taxonomie:info_espece_recherche_}
     14                                        |concat{#ENV{type_recherche}}
     15                                        |concat{_}
     16                                        |concat{#ENV{correspondance}}
     17                                        |_T{#ARRAY{recherche, #GET{parametre}}}
     18                                )]
     19                        </li>
     20                        <li>
     21                                [(#SET{parametre, [(#VAL{taxonomie:regne_}|concat{#ENV{regne}}|_T)]})]
     22                                <:taxonomie:info_espece_recherche_regne{regne=#GET{parametre}}:>
     23                        </li>
     24                </ul>
     25                <p><:taxonomie:info_espece_recherche_fin:></p>
     26        </div>
    727
    828        <form method="post" action="#ENV{action}">
     
    1030                #ACTION_FORMULAIRE{#ENV{action}}
    1131                <div class="editer-groupe">
    12                         [(#SAISIE{radio, taxon,
     32                        [(#SAISIE{radio, tsn,
    1333                                label=<:taxonomie:label_taxon_trouve:>,
    1434                                explication=<:taxonomie:explication_taxon_trouve:>,
  • _plugins_/taxonomie/trunk/lang/espece_fr.php

    r109164 r109246  
    2020        'champ_texte_label' => 'Texte explicatif sur l\'espèce',
    2121        'champ_tsn_genre_label' => 'TSN du parent de l\'espèce',
    22         'champ_tsn_label' => 'Tsn',
    23         'champ_tsn_parent_label' => 'Tsn parent',
     22        'champ_tsn_label' => 'TSN',
     23        'champ_tsn_parent_label' => 'TSN parent',
    2424
    2525        // I
     
    3939        'texte_changer_statut_espece' => 'Cette espèce est :',
    4040        'texte_creer_associer_espece' => 'Créer et associer une espèce',
    41         'texte_definir_comme_traduction_espece' => 'Cette espèce est une traduction de la espèce numéro :',
     41        'texte_definir_comme_traduction_espece' => 'Cette espèce est une traduction de l\'espèce numéro :',
    4242        'titre_espece' => 'Espèce',
    4343        'titre_especes' => 'Espèces',
  • _plugins_/taxonomie/trunk/lang/taxonomie_fr.php

    r109225 r109246  
    2121        'erreur_wikipedia_descriptif' => 'Aucun descriptif dans la langue choisie n\'a pu être récupéré de Wikipedia.',
    2222        '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.',
    23         'erreur_recherche_aucun_taxon' => 'La recherche de «&nbsp;@texte@&nbsp;» est infructueuse pour le règne «&nbsp;@regne@&nbsp;».',
    24         'explication_taxon_trouve' => 'Chaque taxon est désigné par son nom scientifique et son rang.',
    25         'explication_type_recherche' => 'Vous pouvez choisir de rechercher une espèce par son nom scientifique ou son nom commun. ITIS fournissant peu de noms communs il est conseillé d\'utiliser le nom scientifique.',
     23        'erreur_recherche_aucun_taxon' => 'Le service ITIS ne trouve aucun taxon correspondant à cette recherche.',
     24        'erreur_acces_taxon' => 'Le service web ITIS renvoie une erreur pour le taxon considéré.',
     25        'explication_taxon_trouve' => 'Chaque taxon est désigné par son nom, scientifique ou commun, et son rang.',
     26        'explication_recherche_type' => 'Si vous le connaissez, le nom scientifique permet une recherche d\'emblée plus précise.',
    2627        'explication_recherche_taxon' => 'Le taxon recherché doit correspondre à une espèce ou à un taxon de rang inférieur.',
    27         'explication_recherche_stricte' => 'Cette option permet de rechercher soit le taxon correspondant exactement au texte de la recherche soit les taxons contenant le texte de recherche. Il conseillé d\'utiliser une recherche stricte pour éviter d\'obtenir une liste de taxons trop importante (limitée à 25 taxons).',
    28         'explication_regne_recherche' => 'Les règnes proposés sont uniquement ceux qui ont déjà été chargés dans la base de données de taxonomie.',
    29         'explication_action_regne' => 'Si le règne est déjà présent en base de données, tous les taxons qui le composent seront supprimés avant le chargement.',
     28        'explication_recherche_correspondance' => 'Il conseillé d\'adapter le type de correspondance afin de limiter le nombre de taxons potentiellement compatibles.',
     29        '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.',
    3031        '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.',
    3132        '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.
     
    5152        '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.',
    5253        '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.',
     54        '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.
     55        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.',
    5356        'info_descriptif_existe' => 'non vide',
    5457        'info_etape' => 'Etape @etape@ / @etapes@',
     
    5962        'info_espece_recherche_intro' => 'Vous avez choisi de rechercher une espèce :',
    6063        'info_espece_recherche_scientificname_exact' => 'dont le nom scientifique est exactement «&nbsp;@recherche@&nbsp;»',
    61         'info_espece_recherche_scientificname' => 'dont le nom scientifique contient «&nbsp;@recherche@&nbsp;»',
     64        'info_espece_recherche_scientificname_contenu' => 'dont le nom scientifique contient «&nbsp;@recherche@&nbsp;»',
    6265        'info_espece_recherche_commonname_exact' => 'dont le nom commun est exactement «&nbsp;@recherche@&nbsp;»',
    63         'info_espece_recherche_commonname' => 'dont le nom commun contient «&nbsp;@recherche@&nbsp;»',
    64         'info_espece_recherche_regne' => 'et appartenant au règne «&nbsp;@regne@&nbsp;».',
     66        'info_espece_recherche_commonname_contenu' => 'dont le nom commun contient «&nbsp;@recherche@&nbsp;»',
     67        'info_espece_recherche_commonname_debut' => 'dont le nom commun commence par «&nbsp;@recherche@&nbsp;»',
     68        'info_espece_recherche_commonname_fin' => 'dont le nom commun se termine par «&nbsp;@recherche@&nbsp;»',
     69        'info_espece_recherche_regne' => 'et appartenant au @regne@.',
    6570        'info_espece_recherche_fin' => 'Choisissez ci-dessous le taxon qui correspond à votre recherche.',
     71        'info_espece_choisie_intro' => 'Vous avez choisi de créer le taxon «&nbsp;@taxon@&nbsp;» dont les caractéristiques sont les suivantes :',
     72        'info_espece_choisie_fin' => 'Si ce taxon est bien celui que vous souhaitez, valider ce formulaire pour le créer et l\'éditer dans la foulée.',
    6673
    6774        // L
     
    8693        'label_wikipedia_langue' => 'Langue à utiliser par Wikipedia',
    8794        'label_wikipedia_lien' => 'Page Wikipedia à utiliser',
    88         'label_type_recherche' => 'Type de recherche',
     95        'label_recherche_type' => 'Rechercher par',
    8996        'label_recherche_taxon' => 'Texte de la recherche',
    90         'label_recherche_stricte' => 'Rechercher le texte exact',
    91         'label_regne_recherche' => 'Limiter la recherche à un règne',
     97        'label_recherche_correspondance' => 'Type de correspondance',
     98        'label_recherche_correspondance_exact' => 'Correspond exactement au texte de la recherche',
     99        'label_recherche_correspondance_contenu' => 'Contient le texte de la recherche',
     100        'label_recherche_correspondance_debut' => 'Commence par le texte de la recherche',
     101        'label_recherche_correspondance_fin' => 'Se termine par le texte de la recherche',
     102        'label_recherche_regne' => 'Limiter la recherche à un règne',
     103        'label_parent_espece' => 'Parent direct',
    92104
    93105        // N
     
    150162        'titre_liste_regnes' => 'Liste des règnes chargés en base de données',
    151163        'titre_liste_fils_taxon' => 'Liste des descendants directs du taxon',
    152         'titre_page_decrire_wikipedia' => 'Descriptif Wikipedia du taxon <span class="nom_scientifique">@taxon@</span>',
     164        'titre_page_decrire_wikipedia' => 'Descriptif Wikipedia du taxon <span class="nom_scientifique_inline">@taxon@</span>',
    153165        'titre_page_taxonomie' => 'Taxonomie',
    154166        'titre_page_creer_espece' => 'Créer une espèce ou un taxon de rang inférieur',
  • _plugins_/taxonomie/trunk/prive/objets/contenu/espece.html

    r109164 r109246  
    88[<div class="champ contenu_nom_scientifique[ (#NOM_SCIENTIFIQUE*|strlen|?{'',vide})]">
    99        <label><:espece:champ_nom_scientifique_label:> : </label>
    10         <span dir='#LANG_DIR' class='#EDIT{nom_scientifique} nom_scientifique'>(#NOM_SCIENTIFIQUE)</span>
     10        <span dir='#LANG_DIR' class='#EDIT{nom_scientifique} nom_scientifique_inline'>(#NOM_SCIENTIFIQUE)</span>
    1111</div>]
    1212
  • _plugins_/taxonomie/trunk/prive/objets/contenu/taxon.html

    r108777 r109246  
    2020                        <span dir="#LANG_DIR">
    2121                                (#VAL{taxonomie:rang_}|concat{#VALEUR|table_valeur{rang}}|_T|ucfirst) :
    22                                 [<a class="nom_scientifique"[ href="(#VALEUR|table_valeur{id_taxon}|generer_url_entite{taxon})"]>
     22                                [<a class="nom_scientifique_inline"[ href="(#VALEUR|table_valeur{id_taxon}|generer_url_entite{taxon})"]>
    2323                                        (#VALEUR|table_valeur{nom_scientifique}|ucfirst)
    2424                                </a>]
  • _plugins_/taxonomie/trunk/prive/squelettes/hierarchie/taxon.html

    r108942 r109246  
    55<BOUCLE_taxon(TAXONS) {id_taxon}>
    66        [(#LANG|changer_typo)]
    7         <strong class="nom_scientifique on">
     7        <strong class="nom_scientifique_inline on">
    88                #NOM_SCIENTIFIQUE
    99        </strong>
  • _plugins_/taxonomie/trunk/prive/squelettes/hierarchie/taxon_decrire.html

    r108904 r109246  
    55<BOUCLE_taxon(TAXONS) {id_taxon}>
    66        [(#LANG|changer_typo)]
    7         <a href="[(#URL_ECRIRE{taxon}|parametre_url{id_taxon, #ENV{id_taxon}})]" class="nom_scientifique">
     7        <a href="[(#URL_ECRIRE{taxon}|parametre_url{id_taxon, #ENV{id_taxon}})]" class="nom_scientifique_inline">
    88                [(#NOM_SCIENTIFIQUE)]
    99        </a> &gt;
  • _plugins_/taxonomie/trunk/prive/squelettes/navigation/especes.html

    r109203 r109246  
    1 [(#REM) <!-- Boite d'information sur la pge de navigation dans la liste des taxons d'un rang donné --> ]
     1[(#REM) <!-- Boite d'information sur la page de navigation dans la liste des taxons d'un rang donné --> ]
    22#BOITE_OUVRIR{#CHEMIN_IMAGE{taxonomie_gerer-24.png}|balise_img{'',cadre-icone}, info}
    33        <:taxonomie:info_boite_especes:>
  • _plugins_/taxonomie/trunk/prive/style_prive_plugin_taxonomie.html

    r108777 r109246  
    2222
    2323/* Le nom scientifique d'un taxon est toujours affiché en italique avec une majuscule */
     24.nom_scientifique_inline { display: inline-block; font-style: italic; text-transform: lowercase; }
     25.nom_scientifique_inline:first-letter { text-transform: uppercase; }
     26.nom_scientifique { font-style: italic; text-transform: lowercase; }
    2427.nom_scientifique:first-letter { text-transform: uppercase; }
    25 .nom_scientifique { font-style: italic; text-transform: capitalize; }
    26 
    2728/* Espacer un peu les blocs numero de la boite d'infos */
    2829#navigation .infos .numero { margin-bottom: 10px; }
  • _plugins_/taxonomie/trunk/services/itis/itis_api.php

    r109225 r109246  
    7575                        'compare'  => 'commonName'
    7676                ),
     77                'commonnamebegin' => array(
     78                        'function' => 'searchByCommonNameBeginsWith',
     79                        'argument' => 'srchKey',
     80                        'list'     => 'commonNames',
     81                        'index'    => array(
     82                                'tsn'        => 'tsn',
     83                                'nom_commun' => 'commonName',
     84                                'langage'    => 'language'
     85                        ),
     86                        'compare'  => 'commonName'
     87                ),
     88                'commonnameend' => array(
     89                        'function' => 'searchByCommonNameEndsWith',
     90                        'argument' => 'srchKey',
     91                        'list'     => 'commonNames',
     92                        'index'    => array(
     93                                'tsn'        => 'tsn',
     94                                'nom_commun' => 'commonName',
     95                                'langage'    => 'language'
     96                        ),
     97                        'compare'  => 'commonName'
     98                ),
    7799                'scientificname' => array(
    78100                        'function' => 'searchByScientificName',
     
    199221 *
    200222 * @param string $action
    201  *        Recherche par nom commun ou par nom scientifique. Prend les valeurs `commonname` ou `scientificname`
     223 *        Recherche par nom commun ou par nom scientifique. Prend les valeurs `commonname`, `scientificname`
     224 *        ou `commonnamebegin`.
    202225 * @param string $search
    203226 *        Nom à rechercher précisément. Seul le taxon dont le nom coincidera exactement sera retourné.
     
    232255                foreach ($data[$api['list']] as $_data) {
    233256                        if ($_data) {
    234                                 if (!$strict or ($strict and (strcasecmp($_data[$api['compare']], $search) === 0))) {
     257                                if (($action == 'commonnamebegin')
     258                                or !$strict
     259                                or ($strict and (strcasecmp($_data[$api['compare']], $search) === 0))) {
    235260                                        $tsn = array();
    236261                                        foreach ($api['index'] as $_key => $_destination) {
     
    311336                                }
    312337                        }
     338
     339                        // Insérer de base le tsn.
     340                        $record['tsn'] = intval($tsn);
    313341
    314342                        // Passer en minuscules le rang et le règne exprimé en anglais.
     
    770798        // On crée l'url du taxon sur le site ITIS
    771799        $url_taxon = _TAXONOMIE_ITIS_TAXON_BASE_URL . $taxon['tsn'];
    772         $link_taxon = '<a class="nom_scientifique" href="' . $url_taxon . '" rel="noreferrer">' . ucfirst($taxon['nom_scientifique']) . '</a>';
     800        $link_taxon = '<a class="nom_scientifique_inline" href="' . $url_taxon . '" rel="noreferrer">' . ucfirst($taxon['nom_scientifique']) . '</a>';
    773801        $link_site = '<a href="' . _TAXONOMIE_ITIS_SITE_URL . '" rel="noreferrer">' . _TAXONOMIE_ITIS_SITE_URL . '</a>';
    774802
  • _plugins_/taxonomie/trunk/services/wikipedia/wikipedia_api.php

    r108991 r109246  
    191191        $url = str_replace('%langue%', 'fr', _TAXONOMIE_WIKIPEDIA_PAGE_BASE_URL)
    192192                   . rawurlencode($taxon['nom_scientifique']);
    193         $link = '<a class="nom_scientifique" href="' . $url . '" rel="noreferrer">' . ucfirst($taxon['nom_scientifique']) . '</a>';
     193        $link = '<a class="nom_scientifique_inline" href="' . $url . '" rel="noreferrer">' . ucfirst($taxon['nom_scientifique']) . '</a>';
    194194
    195195        // La liste des champs concernés (a priori le descriptif)
Note: See TracChangeset for help on using the changeset viewer.