Browse Source

fix: compat SPIP 4.1 pour la fonction `inc_kml_infos()`

utiliser `Spip\Archiver\SpipArchiver` s'il est présent, sinon fallback sur le vieux PclZip

inspiré par c9dbef8802/inc/odt2spip.php (L197)

Fix: #44
pull/46/head
b_b 2 months ago
parent
commit
54ee198507
  1. 30
      inc/kml_infos.php

30
inc/kml_infos.php

@ -29,15 +29,27 @@ function inc_kml_infos($id_document) {
* On dézip pour trouver le kml
*/
if ($extension == 'kmz') {
include_spip('inc/pclzip');
$zip = new PclZip($chemin);
$list = $zip->listContent();
foreach ($list as $fichier => $info_fichier) {
if (substr(basename($info_fichier['filename']), -3) == 'kml') {
$zip->extractByIndex($info_fichier['index'], _DIR_TMP);
$chemin = _DIR_TMP . $info_fichier['filename'];
$supprimer_chemin = true;
break;
if (include_spip('inc/archives') and class_exists('Spip\Archiver\SpipArchiver')) {
$zip = new Spip\Archiver\SpipArchiver($chemin, 'zip');
$infos = $zip->informer();
foreach ($infos['fichiers'] as $info_fichier) {
if (substr(basename($info_fichier['filename']), -3) == 'kml') {
$zip->deballer(_DIR_TMP, [$info_fichier['filename']]);
$chemin = _DIR_TMP . $info_fichier['filename'];
$supprimer_chemin = true;
break;
}
}
} elseif (include_spip('inc/pclzip') and class_exists('\PclZip')) {
$zip = new PclZip($chemin);
$list = $zip->listContent();
foreach ($list as $fichier => $info_fichier) {
if (substr(basename($info_fichier['filename']), -3) == 'kml') {
$zip->extractByIndex($info_fichier['index'], _DIR_TMP);
$chemin = _DIR_TMP . $info_fichier['filename'];
$supprimer_chemin = true;
break;
}
}
}
}

Loading…
Cancel
Save