[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / svp / teleporter / http_deballe_zip.php
index 7eafdc7..263e1c3 100644 (file)
@@ -1,17 +1,19 @@
 <?php
 /**
- * Gestion du téléporteur HTTP \ Zip. 
+ * Gestion du téléporteur HTTP \ Zip.
  *
  * @plugin SVP pour SPIP
  * @license GPL
  * @package SPIP\SVP\Teleporteur
  */
+
 
 /**
  * Déballer le fichier au format zip dans le répertoire $dest
  * en utilisant le dossier temporaire $tmp si besoin
  *
+ * @uses  teleporter_http_charger_zip()
+ *
  * @param string $archive
  *     Chemin du fichier zip
  * @param string $dest
@@ -21,7 +23,7 @@
  * @return bool|string
  *     Répertoire où a été décompressé le zip, false sinon.
  */
-function teleporter_http_deballe_zip_dist($archive, $dest, $tmp){
+function teleporter_http_deballe_zip_dist($archive, $dest, $tmp) {
        $status = teleporter_http_charger_zip(
                array(
                        'archive' => $archive, // normalement l'url source mais on l'a pas ici
@@ -34,18 +36,21 @@ function teleporter_http_deballe_zip_dist($archive, $dest, $tmp){
        );
        // le fichier .zip est la et bien forme
        if (is_array($status)
-         AND is_dir($status['target'])) {
+               and is_dir($status['target'])
+       ) {
                return $status['target'];
-       }
-       // fichier absent
-       else if ($status == -1) {
-               spip_log("dezip de $archive impossible : fichier absent","teleport"._LOG_ERREUR);
-               return false;
-       }
-       // fichier la mais pas bien dezippe
+       } // fichier absent
        else {
-               spip_log("probleme lors du dezip de $archive","teleport"._LOG_ERREUR);
-               return false;
+               if ($status == -1) {
+                       spip_log("dezip de $archive impossible : fichier absent", "teleport" . _LOG_ERREUR);
+
+                       return false;
+               } // fichier la mais pas bien dezippe
+               else {
+                       spip_log("probleme lors du dezip de $archive", "teleport" . _LOG_ERREUR);
+
+                       return false;
+               }
        }
 }
 
@@ -53,6 +58,8 @@ function teleporter_http_deballe_zip_dist($archive, $dest, $tmp){
 /**
  * Charger un zip à partir d'un tableau d'options descriptives
  *
+ * @uses  http_deballe_recherche_racine()
+ *
  * @param array $quoi
  *     Tableau d'options
  * @return array|bool|int|string
@@ -64,22 +71,25 @@ function teleporter_http_deballe_zip_dist($archive, $dest, $tmp){
  *     - tmpname : répertoire temporaire où les fichiers sont décompressés
  *     - target : cible sur laquelle décompresser les fichiers...
  */
-function teleporter_http_charger_zip($quoi = array()){
-       if (!$quoi)
+function teleporter_http_charger_zip($quoi = array()) {
+       if (!$quoi) {
                return false;
+       }
 
-       foreach (array( 'remove' => 'spip',
-                                       'rename' => array(),
-                                       'edit' => array(),
-                                       'root_extract' => false, # extraire a la racine de dest ?
-                                       'tmp' => sous_repertoire(_DIR_CACHE, 'chargeur')
-                               )
-                               as $opt=>$def) {
+       foreach (array(
+                        'remove' => 'spip',
+                        'rename' => array(),
+                        'edit' => array(),
+                        'root_extract' => false, # extraire a la racine de dest ?
+                        'tmp' => sous_repertoire(_DIR_CACHE, 'chargeur')
+                )
+                as $opt => $def) {
                isset($quoi[$opt]) || ($quoi[$opt] = $def);
        }
 
-       if (!@file_exists($fichier = $quoi['fichier']))
+       if (!@file_exists($fichier = $quoi['fichier'])) {
                return 0;
+       }
 
        include_spip('inc/pclzip');
        $zip = new PclZip($fichier);
@@ -91,54 +101,57 @@ function teleporter_http_charger_zip($quoi = array()){
        // si pas de racine commune, reprendre le nom du fichier zip
        // en lui enlevant la racine h+md5 qui le prefixe eventuellement
        // cf action/charger_plugin L74
-       if (!strlen($nom = basename($racine)))
-               $nom = preg_replace(",^h[0-9a-f]{8}-,i","",basename($fichier, '.zip'));
+       if (!strlen($nom = basename($racine))) {
+               $nom = preg_replace(",^h[0-9a-f]{8}-,i", "", basename($fichier, '.zip'));
+       }
 
        $dir_export = $quoi['root_extract']
                ? $quoi['dest']
                : $quoi['dest'] . $nom;
-       $dir_export = rtrim($dir_export,'/').'/';
+       $dir_export = rtrim($dir_export, '/') . '/';
 
-       $tmpname = $quoi['tmp'].$nom.'/';
+       $tmpname = $quoi['tmp'] . $nom . '/';
 
        // choisir la cible selon si on veut vraiment extraire ou pas
        $target = $quoi['extract'] ? $dir_export : $tmpname;
 
        // ici, il faut vider le rep cible si il existe deja, non ?
-       if (is_dir($target))
+       if (is_dir($target)) {
                supprimer_repertoire($target);
+       }
 
        // et enfin on extrait
        $ok = $zip->extract(
                PCLZIP_OPT_PATH,
-                       $target
-               ,
+               $target,
                PCLZIP_OPT_SET_CHMOD, _SPIP_CHMOD,
                PCLZIP_OPT_REPLACE_NEWER,
                PCLZIP_OPT_REMOVE_PATH, $quoi['remove']
        );
        if ($zip->error_code < 0) {
-               spip_log('charger_decompresser erreur zip ' . $zip->error_code .' pour paquet: ' . $quoi['archive'],"teleport"._LOG_ERREUR);
+               spip_log('charger_decompresser erreur zip ' . $zip->error_code . ' pour paquet: ' . $quoi['archive'],
+                       "teleport" . _LOG_ERREUR);
+
                return //$zip->error_code
                        $zip->errorName(true);
        }
 
-       spip_log('charger_decompresser OK pour paquet: ' . $quoi['archive'],"teleport");
+       spip_log('charger_decompresser OK pour paquet: ' . $quoi['archive'], "teleport");
 
        $size = $compressed_size = 0;
-       $removex = ',^'.preg_quote($quoi['remove'], ',').',';
+       $removex = ',^' . preg_quote($quoi['remove'], ',') . ',';
        foreach ($list as $a => $f) {
                $size += $f['size'];
                $compressed_size += $f['compressed_size'];
-               $list[$a] = preg_replace($removex,'',$f['filename']);
+               $list[$a] = preg_replace($removex, '', $f['filename']);
        }
 
        // Indiquer par un fichier install.log
        // a la racine que c'est chargeur qui a installe ce plugin
-       ecrire_fichier($target.'install.log',
+       ecrire_fichier($target . 'install.log',
                "installation: charger_plugin\n"
-               ."date: ".gmdate('Y-m-d\TH:i:s\Z', time())."\n"
-               ."source: ".$quoi['archive']."\n"
+               . "date: " . gmdate('Y-m-d\TH:i:s\Z', time()) . "\n"
+               . "source: " . $quoi['archive'] . "\n"
        );