Hello,
j’attire l’attention des auteurs du plugin sur la modif ci-dessous car elle impacte potentiellement des appels directs aux parseurs ou le code de parseurs persos qui ne seraient pas sur la zone.
Les parseurs préfixaient toujours la variable $fichier par un _DIR_RACINE ce qui est un peu bizarre et contraire à l’usage habituel qui est de manipuler partout des noms de fichier avec le chemin complet (qu’il soit relatif à la racine de SPIP ou absolu).
La seule exception à ça est la fonction copie_locale qui pour des raisons obscures et historiques renvoie un chemin relatif à ecrire/ si on est dans ecrire/ (et à la racine sinon, mais dans ce cas pas de problème).
C’est donc juste quand on se sert de cette fonction qu’il faut corriger le chemin retourné, et partout ailleurs utiliser le chemin vers le fichier qu’on suppose complet par construction, ce qui semble quand même plus générique et robuste.
Des objections ? Des raleries ?
Des bises.
--
Cédric
---------- Forwarded message ----------
From: spip-zone-commit@rezo.net
Date: 14 juin 2018 à 15:31 +0200
To: spip-zone-commit@rezo.net
Subject: [Spip-zone-commit] r110657 - in _plugins_/extraire_documents/trunk
Author: cedric@yterium.com
Date: 2018-06-14 13:31:32 +0000 (Thu, 14 Jun 2018)
New Revision: 110657Modified:
_plugins_/extraire_documents/trunk/extraire/defaut/10_tika_server.php
_plugins_/extraire_documents/trunk/extraire/fallback/application_pdf/90_pdfparser.php
_plugins_/extraire_documents/trunk/inc/extraire_document.php
_plugins_/extraire_documents/trunk/paquet.xml
Log:
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 eventuellesDu 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 principeDetails: Connexion · GitLab
_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit