diff --git a/ecrire/inc/distant.php b/ecrire/inc/distant.php index 10650d167c63ffd36ad12a866900c4c6571ad6c5..c3c8eb8cbeb37d718062f93515ed7f3d76da6c5d 100644 --- a/ecrire/inc/distant.php +++ b/ecrire/inc/distant.php @@ -420,8 +420,18 @@ function fichier_copie_locale($source) { if (file_exists(_DIR_RACINE . $f)) return $f; } + // Ping pour voir si son extension est connue et autorisee - $path_parts = recuperer_infos_distantes($source,0,false) ; + // avec mise en cache du resultat du ping + + $cache = sous_repertoire(_DIR_CACHE,'rid').md5($source); + if (!@file_exists($cache) + OR !$path_parts = @unserialize(spip_file_get_contents($cache)) + OR _request('var_mode') == 'recalcul' + ) { + $path_parts = recuperer_infos_distantes($source,0,false) ; + ecrire_fichier($cache, serialize($path_parts)); + } $ext = $path_parts ? $path_parts['extension'] : ''; if ($ext AND sql_getfetsel("extension", "spip_types_documents", "extension=".sql_quote($ext))) { return nom_fichier_copie_locale($source, $ext);