Changeset 92594 in spip-zone


Ignore:
Timestamp:
Nov 1, 2015, 6:15:52 PM (4 years ago)
Author:
eric@…
Message:

Suite de l'insertion de texte wikipedia dans le descriptif.
Reste à traiter l'indicateur d'édition et la source.

Location:
_plugins_/taxonomie/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/taxonomie/trunk/action/inserer_wikipedia.php

    r92581 r92594  
    11<?php
    22/**
    3  * Ce fichier contient l'action `client_retirer_serveur` utilisée par un site client pour
    4  * retirer un serveur donné de la liste des serveurs consultables.
     3 * Ce fichier contient l'action `inserer_wikipedia` qui permet d'appeler l'api Wikipedia pour remplir
     4 * un champ de taxon.
    55 *
    66 * @package SPIP\BOUSSOLE\Serveur\Action
     
    2626
    2727        // Verification des autorisations
    28         if (!autoriser('webmestre')) {
     28        if (!autoriser('modifier', 'taxon')) {
    2929                include_spip('inc/minipres');
    3030                echo minipres();
     
    3636        // Si le champ n'est pas vide, son contenu est écrasé.
    3737        if ($arguments) {
    38                 list($id_taxon, $nom_scientifique, $champ) = explode(':', $arguments);
     38                // Détermination des arguments de l'action
     39                list($id_taxon, $nom_scientifique, $champ, $section) = explode(':', $arguments);
     40                $section = ($section == '*') ? null : $section;
    3941                if (intval($id_taxon)) {
    4042                        include_spip('taxonomie_fonctions');
    41                         $texte = taxonomie_informer($nom_scientifique);
     43                        $texte = taxonomie_informer($nom_scientifique, $section);
    4244                        if ($texte) {
    43                                 sql_updateq('spip_taxons', array($champ => $texte), 'id_taxon='. sql_quote($id_taxon));
     45                                // Conversion du texte mediawiki vers SPIP
     46                                include_spip('convertisseur_fonctions');
     47                                $texte_converti = convertisseur_texte_spip($texte, 'MediaWiki_SPIP');
     48                                // Mise à jour du descriptif en base de données
     49                                // - le texte du descriptif est inséré dans la langue choisie
     50                                // - l'indicateur d'édition est positionné à oui
     51                                // - la source wikipédia est ajoutée
     52                                sql_updateq('spip_taxons', array($champ => $texte_converti), 'id_taxon='. sql_quote($id_taxon));
    4453                        }
    4554                }
  • _plugins_/taxonomie/trunk/paquet.xml

    r92361 r92594  
    2020        <pipeline nom="pre_edition" inclure="taxonomie_pipelines.php" />
    2121
    22         <necessite nom="saisies"  compatibilite="[1.24.0;]" />
     22    <necessite nom="saisies"  compatibilite="[1.24.0;]" />
     23    <necessite nom="convertisseur"  compatibilite="[0.5.0;]" />
    2324
    2425    <genie nom="actualiser_itis" periode="86400" />
  • _plugins_/taxonomie/trunk/services/wikipedia/wikipedia_api.php

    r87586 r92594  
    3232 * @return array
    3333 */
    34 function wikipedia_get($recherche, $section='') {
     34function wikipedia_get($recherche, $section=null) {
    3535        global $spip_lang;
    3636        $information = '';
     
    4040
    4141        // Construire l'URL de la function de recherche par nom vernaculaire
    42         $url = wikipedia_api2url('json', 'query', $spip_lang, $recherche);
     42        $url = wikipedia_api2url('json', 'query', $spip_lang, $recherche, $section);
    4343
    4444        // Acquisition des données spécifiées par l'url
     
    4646        $data = url2json_data($url);
    4747
    48         // Récupération de la section demandée. Si vide on renvoie tout le texte
     48        // Récupération de la section demandée.
    4949        if (isset($data['batchcomplete'])
    5050        AND isset($data['query']['pages'])) {
     
    7171 * @return string
    7272 */
    73 function wikipedia_api2url($format, $action, $langue, $recherche) {
     73function wikipedia_api2url($format, $action, $langue, $recherche, $section) {
    7474
    7575        // Construire l'URL de l'api sollicitée
    7676        $url = str_replace('%langue%', $langue, _TAXONOMIE_WIKIPEDIA_URL_BASE_REQUETE)
    7777                . 'action=' . $action
    78                 . '&prop=revisions&rvprop=content&continue=&redirects=1'
     78                . '&prop=revisions&rvprop=content'
     79                . (!is_null($section) ? '&rvsection=' . $section : '')
     80                . '&continue=&redirects=1'
    7981                . '&format=' . $format
    8082                . '&titles=' . rawurlencode(ucfirst($recherche));
Note: See TracChangeset for help on using the changeset viewer.