Changeset 108375 in spip-zone
- Timestamp:
- Jan 6, 2018, 5:15:15 PM (3 years ago)
- Location:
- _plugins_/taxonomie/trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/taxonomie/trunk/action/taxonomie_get_wikipedia.php
r97265 r108375 19 19 * si toute la page est requise. 20 20 * 21 * @uses wikipedia_ spipcode2language()22 * @uses wikipedia_get ()21 * @uses wikipedia_find_language() 22 * @uses wikipedia_get_page() 23 23 * @uses taxon_merger_traductions() 24 24 * … … 53 53 // Appel du service query de Wikipedia 54 54 include_spip('services/wikipedia/wikipedia_api'); 55 $langue = wikipedia_ spipcode2language($spip_langue); // TODO : attention à gérer la langue en amont55 $langue = wikipedia_find_language($spip_langue); // TODO : attention à gérer la langue en amont 56 56 $options = array('language' => $langue, 'section' => $section); 57 $information = wikipedia_get ('text', $taxon['tsn'], $nom_scientifique, $options);57 $information = wikipedia_get_page('text', $taxon['tsn'], $nom_scientifique, $options); 58 58 if ($information['text']) { 59 59 // Si le plugin Convertisseur est actif, conversion du texte mediawiki vers SPIP. -
_plugins_/taxonomie/trunk/formulaires/charger_taxonomie.php
r93033 r108375 13 13 * 14 14 * @uses taxonomie_regne_existe() 15 * @uses taxonomie_ lister_rangs()15 * @uses taxonomie_regne_lister_rangs() 16 16 * 17 17 * @return array … … 54 54 55 55 // Acquérir la liste des rangs taxonomiques exception faite du règne et de l'espèce 56 $rangs = taxonomie_ lister_rangs(56 $rangs = taxonomie_regne_lister_rangs( 57 57 _TAXONOMIE_REGNE_ANIMAL, 58 58 _TAXONOMIE_RANGS_PARENTS_ESPECE, … … 98 98 * 99 99 * @uses taxonomie_regne_existe() 100 * @uses taxonomie_ vider_regne()101 * @uses taxonomie_ charger_regne()100 * @uses taxonomie_regne_vider() 101 * @uses taxonomie_regne_charger() 102 102 * 103 103 * @return array … … 116 116 if ($action == 'vider') { 117 117 if ($regne_existe) { 118 $ok = taxonomie_ vider_regne($regne);118 $ok = taxonomie_regne_vider($regne); 119 119 $item = $ok ? 'taxonomie:succes_vider_regne' : 'taxonomie:erreur_vider_regne'; 120 120 } … … 131 131 $langues = _request('langues_regne'); 132 132 $rang_feuille = _request('rang_feuille'); 133 $ok = taxonomie_ charger_regne($regne, $rang_feuille, $langues);133 $ok = taxonomie_regne_charger($regne, $rang_feuille, $langues); 134 134 $item = $ok ? 'taxonomie:succes_charger_regne' : 'taxonomie:erreur_charger_regne'; 135 135 } -
_plugins_/taxonomie/trunk/genie/taxonomie_actualiser_itis.php
r96992 r108375 20 20 * @uses itis_review_sha() 21 21 * @uses taxonomie_regne_existe() 22 * @uses taxonomie_ charger_regne()22 * @uses taxonomie_regne_charger() 23 23 * 24 24 * @param int $last … … 54 54 if ($regne_a_recharger) { 55 55 $langues = array_keys($meta_regne['traductions']['itis']); 56 taxonomie_ charger_regne($_regne, $meta_regne['rang'], $langues);56 taxonomie_regne_charger($_regne, $meta_regne['rang'], $langues); 57 57 } 58 58 } -
_plugins_/taxonomie/trunk/inc/taxonomer.php
r97265 r108375 216 216 */ 217 217 function service_requeter_json($url, $taille_max = null) { 218 218 219 // Acquisition des données spécifiées par l'url 219 220 include_spip('inc/distant'); … … 231 232 232 233 /** 233 * Extrait de la table `spip_taxons`la liste des taxons d'un règne donné ayant fait l'objet234 * Extrait, de la table `spip_taxons`, la liste des taxons d'un règne donné ayant fait l'objet 234 235 * d'une modification manuelle. 235 236 * … … 244 245 */ 245 246 function taxon_preserver_editions($regne) { 247 246 248 $select = array('tsn', 'nom_commun', 'descriptif'); 247 249 $where = array('regne=' . sql_quote($regne), 'edite=' . sql_quote('oui')); … … 270 272 */ 271 273 function taxon_merger_traductions($multi_prioritaire, $multi_non_prioritaire) { 274 272 275 $multi_merge = ''; 273 276 … … 333 336 */ 334 337 function taxon_traduire_champ($champ) { 338 335 339 $traduction = ''; 336 340 if ($champ) { … … 360 364 */ 361 365 function cache_taxonomie_ecrire($cache, $service, $action, $tsn, $options) { 366 362 367 // Création du dossier cache si besoin 363 368 sous_repertoire(_DIR_VAR, trim(_TAXONOMIE_CACHE_NOMDIR, '/')); … … 385 390 */ 386 391 function cache_taxonomie_nommer($service, $action, $tsn, $options) { 392 387 393 // Construction du chemin complet d'un fichier cache 388 394 $fichier_cache = _TAXONOMIE_CACHE_DIR … … 421 427 */ 422 428 function cache_taxonomie_existe($service, $action, $tsn, $options = array()) { 429 423 430 // Contruire le nom du fichier cache 424 431 $fichier_cache = cache_taxonomie_nommer($service, $action, $tsn, $options); … … 448 455 */ 449 456 function cache_taxonomie_supprimer($caches = array()) { 457 450 458 include_spip('inc/flock'); 451 459 -
_plugins_/taxonomie/trunk/paquet.xml
r108374 r108375 2 2 prefix="taxonomie" 3 3 categorie="divers" 4 version="0.1. 3"4 version="0.1.4" 5 5 etat="dev" 6 6 compatibilite="[3.0.17;3.2.*]" -
_plugins_/taxonomie/trunk/prive/objets/contenu/taxon.html
r92939 r108375 11 11 </div>] 12 12 13 [(#SET{ascendance, [(#ID_TAXON|taxonomie_ informer_ascendance{#TSN_PARENT, descendant})]})]13 [(#SET{ascendance, [(#ID_TAXON|taxonomie_taxon_informer_ascendance{#TSN_PARENT, descendant})]})] 14 14 <div class="champ contenu_ascendance[ (#TSN_PARENT*|strlen|?{'',vide})]"> 15 15 <B_ascendance> … … 33 33 <//B_ascendance> 34 34 35 [(#SET{sources, [(#ID_TAXON|taxonomie_ informer_credits{#SOURCES})]})]35 [(#SET{sources, [(#ID_TAXON|taxonomie_taxon_crediter{#SOURCES})]})] 36 36 <B_sources> 37 37 <div class="champ contenu_ps"> -
_plugins_/taxonomie/trunk/services/itis/itis_api.php
r96992 r108375 177 177 * 178 178 * @api 179 * @uses api2url_itis()179 * @uses itis_build_url() 180 180 * @uses service_requeter_json() 181 181 * … … 194 194 */ 195 195 function itis_search_tsn($action, $search, $strict = true) { 196 global $itis_webservice; 196 197 197 $tsn = array(); 198 198 … … 201 201 202 202 // Construire l'URL de la fonction de recherche 203 $url = api2url_itis('json', 'search', $action, rawurlencode($search));203 $url = itis_build_url('json', 'search', $action, rawurlencode($search)); 204 204 205 205 // Acquisition des données spécifiées par l'url … … 208 208 209 209 // Récupération du TSN du taxon recherché 210 $api = $ itis_webservice['search'][$action];210 $api = $GLOBALS['itis_webservice']['search'][$action]; 211 211 if (!empty($data[$api['list']])) { 212 212 // La recherche peut renvoyer plusieurs taxons. Suivant le critère de correspondance de la recherche 213 213 // on renvoie le "bon" taxon ou tous les taxons trouvés. 214 list($tsn_destination, $tsn_key) = each($api['index']); 215 list($search_destination, $search_key) = each($api['find']); 214 $tsn_destination = reset($api['index']); 215 $tsn_key = key($api['index']); 216 $search_destination = reset($api['find']); 217 $search_key = key($api['find']); 216 218 foreach ($data[$api['list']] as $_data) { 217 219 if ($_data) { … … 239 241 * 240 242 * @api 241 * @uses api2url_itis()243 * @uses itis_build_url() 242 244 * @uses service_requeter_json() 243 245 * … … 256 258 */ 257 259 function itis_get_record($tsn) { 258 global $itis_webservice; 260 259 261 $record = array(); 260 262 261 263 // Construire l'URL de l'api sollicitée 262 $url = api2url_itis('json', 'getfull', 'record', strval($tsn));264 $url = itis_build_url('json', 'getfull', 'record', strval($tsn)); 263 265 264 266 // Acquisition des données spécifiées par l'url … … 268 270 // Récupération des informations choisies parmi l'enregistrement reçu à partir de la configuration 269 271 // de l'action. 270 $api = $ itis_webservice['getfull']['record'];272 $api = $GLOBALS['itis_webservice']['getfull']['record']; 271 273 include_spip('inc/filtres'); 272 274 $data = $api['list'] ? table_valeur($data, $api['list'], null) : $data; … … 298 300 * 299 301 * @api 300 * @uses api2url_itis()302 * @uses itis_build_url() 301 303 * @uses service_requeter_json() 302 304 * 303 305 * @param string $action 304 306 * Type d'information demandé. Prend les valeurs 305 * - `scientificname` 306 * - `kingdomname` 307 * - `parent` 308 * - `rankname` 309 * - `author` 310 * - `coremetadata` 311 * - `experts` 312 * - `commonnames` 313 * - `othersources` 314 * - `hierarchyfull` 315 * - `hierarchydown` 307 * - `scientificname` : le nom scientifique du taxon 308 * - `kingdomname` : le règne du taxon 309 * - `parent` : le taxon parent dont son TSN 310 * - `rankname` : le rang taxonomique du taxon 311 * - `author` : le ou les auteurs du taxon 312 * - `coremetadata` : les métadonnées (à vérifier) 313 * - `experts` : les experts du taxon 314 * - `commonnames` : le ou les noms communs 315 * - `othersources` : les sources d'information sur le taxon 316 * - `hierarchyfull` : la hiérarchie complète jusqu'au taxon 317 * - `hierarchydown` : la hiérarchie (à vérifier) 316 318 * @param int $tsn 317 319 * Identifiant unique du taxon dans la base ITIS (TSN) … … 321 323 */ 322 324 function itis_get_information($action, $tsn) { 323 global $itis_webservice;324 325 325 326 // Construire l'URL de l'api sollicitée 326 $url = api2url_itis('json', 'get', $action, strval($tsn));327 $url = itis_build_url('json', 'get', $action, strval($tsn)); 327 328 328 329 // Acquisition des données spécifiées par l'url … … 331 332 332 333 // On vérifie que le tableau est complet sinon on retourne un tableau vide 333 $api = $ itis_webservice['get'][$action];334 $api = $GLOBALS['itis_webservice']['get'][$action]; 334 335 include_spip('inc/filtres'); 335 336 $data = $api['list'] ? table_valeur($data, $api['list'], null) : $data; … … 353 354 } 354 355 } else { 355 list($destination, $key) = each($index); 356 $destination = reset($index); 357 $key = key($index); 356 358 foreach ($data as $_data) { 357 359 $information[strtolower($_data[$destination])][] = $_data[$key]; … … 375 377 * 376 378 * @api 377 * @uses api2url_itis()379 * @uses itis_build_url() 378 380 * @uses service_requeter_json() 379 381 * … … 388 390 */ 389 391 function itis_list_vernaculars($language) { 390 global $itis_webservice, $itis_language; 392 391 393 $vernaculars = array(); 392 394 393 395 // Construire l'URL de l'api sollicitée 394 $url = api2url_itis('json', 'vernacular', 'vernacularlanguage', $language);396 $url = itis_build_url('json', 'vernacular', 'vernacularlanguage', $language); 395 397 396 398 // Acquisition des données spécifiées par l'url … … 399 401 $data = service_requeter_json($url, _INC_DISTANT_MAX_SIZE * 7); 400 402 401 $api = $ itis_webservice['vernacular']['vernacularlanguage'];403 $api = $GLOBALS['itis_webservice']['vernacular']['vernacularlanguage']; 402 404 if (!empty($data[$api['list']])) { 403 $tag_language = '[' . $itis_language[$language] . ']'; 404 list($destination, $name_key) = each($api['index']); 405 $tag_language = '[' . $GLOBALS['itis_language'][$language] . ']'; 406 $destination = reset($api['index']); 407 $key = key($api['index']); 405 408 foreach ($data[$api['list']] as $_data) { 406 409 if (!empty($_data[$destination]) 407 and !empty($_data[$ name_key])410 and !empty($_data[$key]) 408 411 ) { 409 $vernaculars[$_data[$destination]][] = $tag_language . $_data[$ name_key];412 $vernaculars[$_data[$destination]][] = $tag_language . $_data[$key]; 410 413 } 411 414 } … … 445 448 */ 446 449 function itis_read_hierarchy($kingdom, $upto, &$sha_file) { 450 447 451 $hierarchy = array(); 448 452 $sha_file = false; … … 546 550 */ 547 551 function itis_read_vernaculars($language, &$sha_file) { 548 global $itis_language; 552 549 553 $vernaculars = array(); 550 554 $sha_file = false; … … 561 565 if ($lines) { 562 566 // Créer le tableau de sortie à partir du tableau issu du csv (TSN, nom commun) 563 $tag_language = '[' . $ itis_language[$language] . ']';567 $tag_language = '[' . $GLOBALS['itis_language'][$language] . ']'; 564 568 foreach ($lines as $_line) { 565 569 list($tsn, $name) = explode(',', trim($_line)); … … 585 589 * @param string $spip_language 586 590 * Code de langue de SPIP. Prend les valeurs `fr`, `en`, `es`, etc. 587 * La variable globale `$ itis_language` définit le transcodage langue ITIS vers code SPIP.591 * La variable globale `$GLOBALS['itis_language']` définit le transcodage langue ITIS vers code SPIP. 588 592 * 589 593 * @return string 590 594 * Langue au sens d'ITIS en minuscules - `french`, `english`, `spanish` - ou chaine vide sinon. 591 595 */ 592 function itis_spipcode2language($spip_language) { 593 global $itis_language; 594 595 if (!$language = array_search($spip_language, $itis_language)) { 596 function itis_find_language($spip_language) { 597 598 if (!$language = array_search($spip_language, $GLOBALS['itis_language'])) { 596 599 $language = ''; 597 600 } … … 617 620 */ 618 621 function itis_credit($id_taxon, $informations = array()) { 622 619 623 // On recherche le TSN du taxon afin de construire l'url vers sa page sur ITIS 620 624 $taxon = sql_fetsel('tsn, nom_scientifique', 'spip_taxons', 'id_taxon=' . sql_quote($id_taxon)); … … 644 648 */ 645 649 function itis_review_sha() { 646 global $itis_language; 650 647 651 $shas = array(); 648 652 … … 659 663 } 660 664 661 foreach (array_keys($ itis_language) as $_language) {665 foreach (array_keys($GLOBALS['itis_language']) as $_language) { 662 666 $file = find_in_path("services/itis/vernaculars_${_language}.csv"); 663 667 if (file_exists($file) 664 668 and ($sha_file = sha1_file($file)) 665 669 ) { 666 $shas['traductions'][$ itis_language[$_language]] = $sha_file;670 $shas['traductions'][$GLOBALS['itis_language'][$_language]] = $sha_file; 667 671 } 668 672 } … … 678 682 /** 679 683 * Construit l'URL de la requête ITIS correspondant à la demande utilisateur. 684 * 685 * @internal 680 686 * 681 687 * @param string $format … … 697 703 * L'URL de la requête au service 698 704 */ 699 function api2url_itis($format, $group, $action, $key) { 700 global $itis_webservice; 705 function itis_build_url($format, $group, $action, $key) { 701 706 702 707 // Construire l'URL de l'api sollicitée 703 708 $url = _TAXONOMIE_ITIS_ENDPOINT_BASE_URL 704 709 . ($format == 'json' ? 'jsonservice/' : 'services/ITISService/') 705 . $ itis_webservice[$group][$action]['function'] . '?'706 . $ itis_webservice[$group][$action]['argument'] . '=' . $key;710 . $GLOBALS['itis_webservice'][$group][$action]['function'] . '?' 711 . $GLOBALS['itis_webservice'][$group][$action]['argument'] . '=' . $key; 707 712 708 713 return $url; -
_plugins_/taxonomie/trunk/services/wikipedia/wikipedia_api.php
r97265 r108375 57 57 * @uses cache_taxonomie_existe() 58 58 * @uses cache_taxonomie_ecrire() 59 * @uses api2url_wikipedia()59 * @uses wikipedia_build_url() 60 60 * @uses service_requeter_json() 61 61 * … … 69 69 * @param string $search 70 70 * Chaine de recherche qui est en généralement le nom scientifique du taxon. 71 * @param string $language 72 * Langue au sens de Wikipedia qui préfixe l'url du endpoint. Vaut `fr`, `en`, `es`... 73 * @param int|null $section 74 * Section de page dont le texte est à renvoyer. Entier supérieur ou égal à 0 ou `null` pour tout la page. 71 * @param array $options 72 * Tableau d'options qui peut contenir les index suivants : 73 * - `language` : langue au sens de Wikipedia qui préfixe l'url du endpoint. Vaut `fr`, `en`, `es`... 74 * - `section` : section de page dont le texte est à renvoyer. Entier supérieur ou égal à 0 ou `null` 75 * pour tout la page. 75 76 * Cet argument est optionnel. 76 77 * … … 80 81 * doit être remanié manuellement. 81 82 */ 82 function wikipedia_get ($resource, $tsn, $search, $options = array()) {83 function wikipedia_get_page($resource, $tsn, $search, $options = array()) { 83 84 84 85 // Initialisation du tableau de sortie et du tableau d'options … … 97 98 // Construire l'URL de la function de recherche par nom vernaculaire. 98 99 // L'encodage de la recherche est effectuée dans la fonction. 99 $url = api2url_wikipedia('json', 'query', $resource, $search, $options);100 $url = wikipedia_build_url('json', 'query', $resource, $search, $options); 100 101 101 102 // Acquisition des données spécifiées par l'url … … 121 122 } else { 122 123 // Lecture et désérialisation du cache 123 lire_fichier($file_cache, $ information);124 $information = unserialize($ information);124 lire_fichier($file_cache, $contenu); 125 $information = unserialize($contenu); 125 126 } 126 127 … … 146 147 * Langue au sens de Wikipedia - `fr`, `en`, `es` - ou chaine vide sinon. 147 148 */ 148 function wikipedia_spipcode2language($language_code) { 149 global $wikipedia_language; 150 151 if (!$language = array_search($language_code, $wikipedia_language)) { 149 function wikipedia_find_language($language_code) { 150 151 if (!$language = array_search($language_code, $GLOBALS['wikipedia_language'])) { 152 152 $language = ''; 153 153 } … … 197 197 /** 198 198 * Construit l'URL de la requête Wikipedia correspondant à la demande utilisateur. 199 * 200 * @internal 199 201 * 200 202 * @param string $format … … 209 211 * Clé de recherche qui est essentiellement le nom scientifique dans l'utilisation normale. 210 212 * Cette clé doit être encodée si besoin par l'appelant. 211 * @param string $language 212 * Langue au sens de Wikipedia en minuscules. Prend les valeurs `fr`, `en`, `es`, etc. 213 * @param int|null $section 214 * Section de la page à renvoyer. Valeur entière de 0 à n ou null si on veut toute la page. 213 * @param array $options 214 * Tableau d'options qui peut contenir les index suivants : 215 * - `language` : langue au sens de Wikipedia qui préfixe l'url du endpoint. Vaut `fr`, `en`, `es`... 216 * - `section` : section de page dont le texte est à renvoyer. Entier supérieur ou égal à 0 ou `null` 217 * pour tout la page. 218 * Cet argument est optionnel. 215 219 * 216 220 * @return string 217 221 * L'URL de la requête au service 218 222 */ 219 function api2url_wikipedia($format, $action, $resource, $search, $options) {223 function wikipedia_build_url($format, $action, $resource, $search, $options) { 220 224 221 225 // Construire la partie standard de l'URL de l'api sollicitée -
_plugins_/taxonomie/trunk/taxonomie_fonctions.php
r108374 r108375 20 20 * @uses taxonomie_regne_existe() 21 21 * @uses taxon_preserver_editions() 22 * @uses taxonomie_ vider_regne()22 * @uses taxonomie_regne_vider() 23 23 * @uses itis_read_hierarchy() 24 * @uses itis_ spipcode2language()24 * @uses itis_find_language() 25 25 * @uses itis_read_vernaculars() 26 26 * … … 36 36 * `true` si le chargement a réussi, `false` sinon 37 37 */ 38 function taxonomie_charger_regne($regne, $rang, $codes_langue = array()) { 38 function taxonomie_regne_charger($regne, $rang, $codes_langue = array()) { 39 39 40 $retour = false; 40 41 $taxons_edites = array(); … … 48 49 49 50 // Vider le règne avant de le recharger 50 taxonomie_ vider_regne($regne);51 taxonomie_regne_vider($regne); 51 52 } 52 53 … … 61 62 $traductions = array(); 62 63 foreach ($codes_langue as $_code_langue) { 63 $langue = itis_ spipcode2language($_code_langue);64 $langue = itis_find_language($_code_langue); 64 65 if ($langue) { 65 66 $noms = itis_read_vernaculars($langue, $sha_langue); … … 138 139 * `true` si le vidage a réussi, `false` sinon 139 140 */ 140 function taxonomie_vider_regne($regne) { 141 function taxonomie_regne_vider($regne) { 142 141 143 $retour = sql_delete('spip_taxons', 'regne=' . sql_quote($regne)); 142 144 if ($retour !== false) { … … 167 169 */ 168 170 function taxonomie_regne_existe($regne, &$meta_regne) { 171 169 172 $meta_regne = array(); 170 173 $existe = false; … … 204 207 * Liste des rangs demandée. 205 208 */ 206 function taxonomie_lister_rangs($regne = _TAXONOMIE_REGNE_ANIMAL, $liste_base, $exclusions = array()) { 209 function taxonomie_regne_lister_rangs($regne = _TAXONOMIE_REGNE_ANIMAL, $liste_base, $exclusions = array()) { 210 207 211 include_spip('inc/taxonomer'); 208 212 … … 210 214 $rangs = array_diff($rangs, $exclusions); 211 215 212 if (($regne == _TAXONOMIE_REGNE_FONGIQUE) 213 or ($regne == _TAXONOMIE_REGNE_VEGETAL) 214 ) { 216 if (($regne == _TAXONOMIE_REGNE_FONGIQUE) or ($regne == _TAXONOMIE_REGNE_VEGETAL)) { 215 217 if ($index_cherche = array_search(_TAXONOMIE_RANG_PHYLUM, $rangs)) { 216 218 $rangs[$index_cherche] = _TAXONOMIE_RANG_DIVISION; … … 240 242 * suivantes : `id_taxon`, `tsn_parent`, `nom_scientifique`, `nom_commun`, `rang`. 241 243 */ 242 function taxonomie_informer_ascendance($id_taxon, $tsn_parent = null, $ordre = 'descendant') { 244 function taxonomie_taxon_informer_ascendance($id_taxon, $tsn_parent = null, $ordre = 'descendant') { 245 243 246 $ascendance = array(); 244 247 … … 289 292 * Tableau des phrases de crédits indexées par source. 290 293 */ 291 function taxonomie_informer_credits($id_taxon, $sources_specifiques = null) { 294 function taxonomie_taxon_crediter($id_taxon, $sources_specifiques = null) { 295 292 296 $sources = array(); 293 297
Note: See TracChangeset
for help on using the changeset viewer.