Changeset 110657 in spip-zone


Ignore:
Timestamp:
Jun 14, 2018, 1:31:32 PM (3 years ago)
Author:
cedric@…
Message:

Correction de 2 points :

  • les chemin des fichiers sont toujours exprimes en relatifs depuis la racine (ou en absolu), sauf pour la fonction copie_locale - c'est historique

Du coup on corrige en sortie de la fonction copie_locale, qu'on utilise uniquement si le document est distant, et partout ailleurs on utilise la variable $fichier telle quelle ce ui est plus robuste car permet aussi d'accepter des chemins absolus en entree

  • pour trouver les libs on utilise find_in_path() ce qui permet de les fournir par tout moyen (lib/ a la racine de SPIP mais aussi plugin) et/ou des surcharges eventuelles

Du coup ca casse eventuellement les appels direct aux parseurs extraire/defaut/10_tika_server.php et extraire/fallback/application_pdf/90_pdfparser.php et il faut mettre a jour d'autres parseurs fournis de l'exterieur
Pour un appel depuis inc_extraire_document() rien de change en principe

Location:
_plugins_/extraire_documents/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/extraire_documents/trunk/extraire/defaut/10_tika_server.php

    r106441 r110657  
    4949       
    5050        // On définit le bon chemin pour le namespace de la librairie nécessaire
    51         $loader->addPsr4('Vaites\\ApacheTika\\', _DIR_PLUGIN_EXTRAIREDOC . 'lib/vaites/php-apache-tika/src');
     51        $loader->addPsr4('Vaites\\ApacheTika\\', find_in_path('lib/vaites/php-apache-tika/src'));
    5252        $loader->register();
    5353       
     
    5858        try {
    5959                set_time_limit (0);
    60                 $contenu = $client->getText(_DIR_RACINE . $fichier);
    61                 $metadata = (array) $client->getMetadata(_DIR_RACINE . $fichier);
     60                $contenu = $client->getText($fichier);
     61                $metadata = (array) $client->getMetadata($fichier);
    6262                $meta = (array) $metadata['meta'];
    6363        }
  • _plugins_/extraire_documents/trunk/extraire/fallback/application_pdf/90_pdfparser.php

    r92293 r110657  
    66function extraire_fallback_application_pdf_90_pdfparser_test_dist() {
    77        if (
    8                 is_dir(_DIR_RACINE . 'lib/TCPDF-6.2.6')
    9                 and is_dir(_DIR_RACINE . 'lib/pdfparser-0.9.22/src')
     8                find_in_path('lib/TCPDF-6.2.6')
     9                and find_in_path('lib/pdfparser-0.9.22/src')
    1010        ) {
    1111                return true;
     
    3636
    3737    // register classes with namespaces
    38     $loader->add('Smalot\PdfParser', _DIR_RACINE . 'lib/pdfparser-0.9.22/src');
     38    $loader->add('Smalot\PdfParser', find_in_path('lib/pdfparser-0.9.22/src'));
    3939    $loader->register();
    4040
     
    4343    try {
    4444        set_time_limit (0);
    45         $pdf = $parser->parseFile(_DIR_RACINE . $fichier);
     45        $pdf = $parser->parseFile($fichier);
    4646    }
    4747    catch (Exception $e) {
  • _plugins_/extraire_documents/trunk/inc/extraire_document.php

    r104193 r110657  
    2828                or !is_numeric($document['fichier'])
    2929        ) {
    30                 $document = sql_fetsel("id_document,fichier", "spip_documents", "id_document = ".$document['id_document']);
     30                $document = sql_fetsel("id_document,fichier", "spip_documents", "id_document=". intval($document['id_document']));
    3131        }
    3232       
     
    3737        include_spip('inc/distant');
    3838        include_spip('inc/documents');
    39        
     39
     40        $fichier = '';
    4041        //Obtenir le fichier pour extraction
    41         if (!$fichier = copie_locale(get_spip_doc($document['fichier']), 'test')) {
     42        if($document['fichier']) {
     43                if ($document['distant'] == 'oui') {
     44                        if ($fichier = copie_locale($document['fichier'])) {
     45                                // copie locale est la fonction derogatoire qui ne fournit pas un chemin relatif a la racine -> on corrige
     46                                $fichier = _DIR_RACINE . $fichier;
     47                        }
     48                }
     49                else {
     50                        $fichier = get_spip_doc($document['fichier']);
     51                }
     52        }
     53
     54        if (!$fichier) {
    4255                return false;
    4356        }
     
    4962        //Determiner les mime type non standard comme les vnd (docx, ....)
    5063        //http://fr.wikipedia.org/wiki/Type_MIME
    51         $finfo = finfo_open(FILEINFO_MIME_TYPE,_DIR_PLUGIN_EXTRAIREDOC."finfo/magic"); // Demande le mime type
    52         $mime = finfo_file($finfo, _DIR_RACINE.$fichier);
     64        $finfo = finfo_open(FILEINFO_MIME_TYPE,find_in_path("finfo/magic")); // Demande le mime type
     65        $mime = finfo_file($finfo, $fichier);
    5366
    5467        //Si on ne reconnait pas le mime type, on teste sur la base par défaut
    5568        if ($mime == "application/octet-stream") {
    5669                $finfo = finfo_open(FILEINFO_MIME_TYPE); // Demande le mime type
    57                 $mime = finfo_file($finfo, _DIR_RACINE.$fichier);
     70                $mime = finfo_file($finfo, $fichier);
    5871        }
    5972        finfo_close($finfo);
     
    6881                $memory_limit = '512M';
    6982        }
    70         $file_size = filesize(_DIR_RACINE.$fichier);
     83        $file_size = filesize($fichier);
    7184        if (preg_match('/^(\d+)(.)$/', $memory_limit, $matches)) {
    7285                if ($matches[2] == 'M') {
  • _plugins_/extraire_documents/trunk/paquet.xml

    r106440 r110657  
    22        prefix="extrairedoc"
    33        categorie="outil"
    4         version="1.2.6"
     4        version="1.3.0"
    55        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.