From 841d48c09793203e876aaaec534a1b65237b56ee Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Tue, 13 May 2008 19:17:52 +0000
Subject: [PATCH] debug du systeme d'upload des zip

---
 ecrire/action/joindre.php        | 14 ++++-----
 ecrire/inc/ajouter_documents.php | 51 ++++++++++++++++----------------
 ecrire/lang/ecrire_fr.php        |  2 +-
 ecrire/lang/spip_fr.php          |  2 +-
 4 files changed, 34 insertions(+), 35 deletions(-)

diff --git a/ecrire/action/joindre.php b/ecrire/action/joindre.php
index 68a95340fa..3a062ce90f 100644
--- a/ecrire/action/joindre.php
+++ b/ecrire/action/joindre.php
@@ -45,7 +45,7 @@ function action_joindre_sous_action($id, $id_document, $mode, $type, &$documents
 	$sousaction2 = _request('sousaction2');
 	$sousaction3 = _request('sousaction3');
 	$sousaction4 = _request('sousaction4');
-	$sousaction5 = _request('sousaction5');
+	$sousaction5 = _request('sousaction5'); // decompacter un zip
 	$redirect = _request('redirect');
 	$iframe_redirect = _request('iframe_redirect');
 
@@ -178,9 +178,11 @@ function joindre_documents($files, $mode, $type, $id, $id_document, $hash, $redi
 		if ($archive) {
 			$valables = verifier_compactes($archive);
 			if ($valables) {
-				echo $ajouter_documents($valables, $zip, $type, $id, $mode, $id_document, $actifs, $hash, $redirect, $iframe_redirect);
+				if (rename($zip, $tmp = _DIR_TMP.basename($zip))) {
+					echo $ajouter_documents($valables, $tmp, $type, $id, $mode, $id_document, $actifs, $hash, $redirect, $iframe_redirect);
 	// a tout de suite en joindre4, joindre5, ou joindre6
-				exit;
+					exit;
+				}
 			}
 		}
 	}
@@ -208,11 +210,7 @@ function joindre_documents($files, $mode, $type, $id, $id_document, $hash, $redi
 function inc_joindre5_dist($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs)
 {
 	$ajouter_documents = charger_fonction('ajouter_documents', 'inc');
-	$pos = strpos($path, '/zip/');
-	if (!$pos) {
-		$pos = strpos($path, '/zip_');
-	}
-	return $ajouter_documents($path, substr($path, $pos+5), $type, $id, $mode, $id_document, $actifs);
+	return $ajouter_documents($path, basename($path), $type, $id, $mode, $id_document, $actifs);
 }
 
 // Zip a deballer. 
diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php
index 64abb75360..14d1ca3a0c 100644
--- a/ecrire/inc/ajouter_documents.php
+++ b/ecrire/inc/ajouter_documents.php
@@ -383,6 +383,8 @@ function corriger_extension($ext) {
 // http://doc.spip.org/@liste_archive_jointe
 function liste_archive_jointe($valables, $zip, $type, $id, $mode, $id_document, $hash, $redirect, $iframe_redirect)
 {
+	include_spip('inc/layer');
+
 	$arg = (intval($id) .'/' .intval($id_document) . "/$mode/$type");
 
 	$texte = "<div style='text-align: left'>
@@ -391,22 +393,26 @@ function liste_archive_jointe($valables, $zip, $type, $id, $mode, $id_document,
 <input type='hidden' name='hash' value='$hash' />
 <input type='hidden' name='chemin' value='$zip' />
 <input type='hidden' name='arg' value='$arg' />
-<input type='radio' checked='checked' name='sousaction5' id='sousaction5_5' value='5' />" .
+<input type='radio' checked='checked' name='sousaction5' id='sousaction5_5' value='5' onchange='jQuery(\"#options_deballe_zip\").slideUp();' />" .
 	  "<label for='sousaction5_5'>" . _T('upload_zip_telquel'). "</label>" .
 		"<br />".
-		"<input type='radio' name='sousaction5' id='sousaction5_6' value='6' />".
+		"<input type='radio' name='sousaction5' id='sousaction5_6' value='6' onchange='jQuery(\"#options_deballe_zip\").slideDown();' />".
 		"<label for='sousaction5_6'>" . _T('upload_zip_decompacter') . "</label>" .
 		"<ol>" .
 		liste_archive_taille($valables) .
-		"</ol>".
-		"<input type='checkbox' name='sousaction4' id='sousaction4_4' value='4' />".
-		"<label for='sousaction4_4'>" . _T('les_deux') . "</label>" .
-		"<div style='border: 1px solid; padding: 5px; margin: 20px'>" .
-		"<label for='titrer'>" . 
-	  _T('upload_zip_titrer') .
-	  "</label><input style='float: right' type='checkbox' name='titrer' id='titrer' />".
-		"</div></div>".
-		"<div style='text-align: right;'><input class='fondo spip_xx-small' type='submit' value='".
+		"</ol>"
+
+		. debut_block_depliable(false,'options_deballe_zip') 
+		. "<input type='checkbox' name='sousaction4' id='sousaction4_4' value='4' />".
+			"<label for='sousaction4_4'>" . _T('upload_zip_conserver') . "</label>" .
+			"<br /><input type='checkbox' name='titrer' id='titrer' />"
+			. "<label for='titrer'>" . _T('upload_zip_titrer') .
+			"</label>".
+			"</div></div>"
+		. fin_block()
+
+
+		. "<div style='text-align: right;'><input class='fondo spip_xx-small' type='submit' value='".
 		_T('bouton_valider').
 		  "' />";
 
@@ -426,19 +432,14 @@ function liste_archive_jointe($valables, $zip, $type, $id, $mode, $id_document,
 }
 
 // http://doc.spip.org/@liste_archive_taille
-function liste_archive_taille($files)
-{
-  $res = '';
-  foreach ($files as $nom => $file)
-    {
-      $res .= "\n<li><tt>$nom ("
-	. _T('taille_octets', array("taille" => $file['size']))
-	. '; '
-	. _T('date')
-	. '&nbsp;: '
-	. affdate_heure(date("Y-m-d H:i:s", $file['mtime']))
-	.")</tt></li>";
-    }
-  return $res;
+function liste_archive_taille($files) {
+	$res = '';
+	foreach ($files as $nom => $file) {
+		$date = date_interface(date("Y-m-d H:i:s", $file['mtime']));
+
+		$taille = taille_en_octets($file['size']);
+		$res .= "<li title=\"".texte_backend($title)."\"><b>$nom</b> &ndash; $taille<br />&nbsp; $date</li>\n";
+	}
+	return $res;
 }
 ?>
diff --git a/ecrire/lang/ecrire_fr.php b/ecrire/lang/ecrire_fr.php
index 749326150e..409c59fe59 100644
--- a/ecrire/lang/ecrire_fr.php
+++ b/ecrire/lang/ecrire_fr.php
@@ -768,7 +768,6 @@ dans une couleur qui indique leur &eacute;tat&nbsp;:',
 
 
 // L
-'les_deux' => 'les deux',
 'lien_ajout_destinataire' => 'Ajouter ce destinataire',
 'lien_ajouter_auteur' => 'Ajouter cet auteur',
 'lien_ajouter_participant' => 'Ajouter un participant',
@@ -1210,6 +1209,7 @@ avez fait des modifications importantes de graphisme ou de structure du site.',
 
 
 // U
+'upload_zip_conserver' => 'Conserver l&#8217;archive apr&#232;s extraction',
 'utf8_convert_attendez' => 'Attendez quelques instants et rechargez cette page.',
 'utf8_convert_avertissement' => 'Vous vous appr&ecirc;tez &agrave; convertir le contenu de votre base de donn&eacute;es (articles, br&egrave;ves, etc) du jeu de caract&egrave;res <b>@orig@</b> vers le jeu de caract&egrave;res <b>@charset@</b>.',
 'utf8_convert_backup' => 'N\'oubliez pas de faire auparavant une sauvegarde compl&egrave;te de votre site. Vous devrez aussi v&eacute;rifier que vos squelettes et fichiers de langue sont compatibles @charset@.',
diff --git a/ecrire/lang/spip_fr.php b/ecrire/lang/spip_fr.php
index 0212a0ea81..bc533a7f61 100644
--- a/ecrire/lang/spip_fr.php
+++ b/ecrire/lang/spip_fr.php
@@ -742,7 +742,7 @@ et vous reconnecter au site.
 'upload_limit' => 'Ce fichier est trop gros pour le serveur&nbsp;; la taille maximum autoris&eacute;e en <i>upload</i> est de @max@.',
 'upload_zip_decompacter' => 'd&eacute;compress&eacute; et chaque &eacute;l&eacute;ment qu\'il contient install&eacute; sur le site. Les fichiers qui seront alors install&eacute;s sur le site sont&nbsp;:',
 'upload_zip_telquel' => 'install&eacute; tel quel, en tant qu\'archive compress&eacute;e Zip&nbsp;;',
-'upload_zip_titrer' => 'Dans les deux derniers cas, cocher cette case pour que SPIP nomme chaque &eacute;l&eacute;ment d\'apr&egrave;s le nom du fichier.',
+'upload_zip_titrer' => 'Titrer selon le nom des fichiers',
 
 // Z
 'zbug_balise_b_aval' => '&nbsp;: balise B en aval',
-- 
GitLab