From 3b034cb25972a0ea751e82ab52feb8393dba426b Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Sun, 2 Oct 2005 17:52:41 +0000 Subject: [PATCH] repermettre la selection des logos dans upload/ --- ecrire/inc_getdocument.php3 | 22 +++++++++------ ecrire/inc_logos.php3 | 56 ++++++++++++++++++------------------- spip_image.php3 | 28 +++++++------------ 3 files changed, 51 insertions(+), 55 deletions(-) diff --git a/ecrire/inc_getdocument.php3 b/ecrire/inc_getdocument.php3 index 4035fb8e35..409546a5dd 100644 --- a/ecrire/inc_getdocument.php3 +++ b/ecrire/inc_getdocument.php3 @@ -361,7 +361,7 @@ function ajouter_un_document ($source, $nom_envoye, $type_lien, $id_lien, $mode, /* STOCKER LES DOCUMENTS INCONNUS AU FORMAT .ZIP */ $ext = 'zip'; - spip_log("Extension $ext"); + if (!$row = spip_fetch_array(spip_query( "SELECT * FROM spip_types_documents WHERE extension='zip' AND upload='oui'"))) { @@ -593,7 +593,7 @@ function joindre2($arg, $mode, $type, $id, $id_document,$hash, $hash_id_auteur, array('name' => basename($arg), 'tmp_name' => $arg) ), 'distant', $type, $id, $id_document, - $hash, $hash_id_auteur, $redirect, &$actifs); + $hash, $hash_id_auteur, $redirect, $actifs); } // Cas d'un fichier transmis @@ -830,13 +830,19 @@ function corriger_extension($ext) { // $dest = arton12.xxx function ajout_logo($source, $dest) { - // Intercepter une erreur d'upload - if (check_upload_error($source['error'])) return; + if (!$source) return; + if (!is_array($source)) + $f = _DIR_TRANSFERT . $source; // fichier dans upload/ + else { + // Intercepter une erreur a l'envoi + if (check_upload_error($source['error'])) return; + + // analyse le type de l'image (on ne fait pas confiance au nom de + // fichier envoye par le browser : pour les Macs c'est plus sur) + $f =_DIR_DOC . $dest . '.tmp'; + deplacer_fichier_upload($source['tmp_name'], $f); + } - // analyse le type de l'image (on ne fait pas confiance au nom de - // fichier envoye par le browser : pour les Macs c'est plus sur) - $f =_DIR_DOC . $dest . '.tmp'; - deplacer_fichier_upload($source['tmp_name'], $f); $size = @getimagesize($f); $type = decoder_type_image($size[2], true); diff --git a/ecrire/inc_logos.php3 b/ecrire/inc_logos.php3 index e7518cff28..c1ccdb91f3 100644 --- a/ecrire/inc_logos.php3 +++ b/ecrire/inc_logos.php3 @@ -87,7 +87,7 @@ function afficher_boite_logo($type, $id_objet, $id, $texteon, $texteoff) { function afficher_logo($racine, $titre, $logo, $id_objet, $id) { global $connect_id_auteur; global $couleur_foncee, $couleur_claire; - global $clean_link; + global $clean_link, $spip_lang_right; include_ecrire('inc_admin.php3'); @@ -101,7 +101,7 @@ function afficher_logo($racine, $titre, $logo, $id_objet, $id) { if ($logo) { list ($fichier, $taille) = $logo; - $hash = calculer_action_auteur("supp_logo $fichier"); + $hash = calculer_action_auteur("effacer_logo $fichier"); echo "<p><center><div><a href='"._DIR_IMG.$fichier."'>"; echo reduire_image_logo(_DIR_IMG.$fichier, 170); @@ -110,7 +110,7 @@ function afficher_logo($racine, $titre, $logo, $id_objet, $id) { echo $taille; echo "\n<br />[<a href='../spip_image.php3?"; echo "$id_objet=$id&"; - echo "image_supp=$fichier&hash_id_auteur=$connect_id_auteur&hash=$hash&redirect=".urlencode($redirect)."'>"._T('lien_supprimer')."</A>]"; + echo "action=effacer_logo&chemin=$fichier&hash_id_auteur=$connect_id_auteur&hash=$hash&redirect=".urlencode($redirect)."'>"._T('lien_supprimer')."</a>]"; echo fin_block(); echo "</center></p>"; } @@ -119,43 +119,41 @@ function afficher_logo($racine, $titre, $logo, $id_objet, $id) { echo debut_block_invisible(md5($titre)); echo "\n\n<FORM ACTION='../spip_image.php3' METHOD='POST' - ENCTYPE='multipart/form-data'>"; - echo "\n<INPUT NAME='redirect' TYPE=Hidden VALUE='$redirect'>"; - echo "\n<INPUT NAME='$id_objet' TYPE=Hidden VALUE='$id'>"; - echo "\n<INPUT NAME='hash_id_auteur' TYPE=Hidden VALUE='$connect_id_auteur'>"; - echo "\n<INPUT NAME='hash' TYPE=Hidden VALUE='$hash'>"; - echo "\n<INPUT NAME='ajout_logo' TYPE=Hidden VALUE='oui'>"; - echo "\n<INPUT NAME='logo' TYPE=Hidden VALUE='$racine'>"; - if (tester_upload()){ - echo "\n"._T('info_telecharger_nouveau_logo')."<BR>"; - echo "\n<INPUT NAME='image' TYPE=File CLASS='forml' style='font-size:9px;' SIZE=15>"; - echo "\n <div align='right'><INPUT NAME='ok' TYPE=Submit VALUE='"._T('bouton_telecharger')."' CLASS='fondo' style='font-size:9px;'></div>"; + ENCTYPE='multipart/form-data'> + <div>"; + echo "\n<INPUT NAME='redirect' TYPE=Hidden VALUE='$redirect' />"; + echo "\n<INPUT NAME='$id_objet' TYPE=Hidden VALUE='$id' />"; + echo "\n<INPUT NAME='hash_id_auteur' TYPE=Hidden VALUE='$connect_id_auteur' />"; + echo "\n<INPUT NAME='hash' TYPE=Hidden VALUE='$hash' />"; + echo "\n<INPUT NAME='action' TYPE=Hidden VALUE='ajout_logo' />"; + echo "\n<INPUT NAME='logo' TYPE=Hidden VALUE='$racine' />"; + echo "\n"._T('info_telecharger_nouveau_logo')."<br />"; + echo "\n<INPUT NAME='image' type='File' class='forml' style='font-size:9px;' SIZE=15>"; + echo "<div align='", $GLOBALS['spip_lang_right'], "'>"; + echo "\n<input name='sousaction1' type='submit' value='", + _T('bouton_telecharger'), + "' class='fondo' style='font-size:9px' /></div>"; + if (!$GLOBALS['flag_upload']) { + echo _T('info_installer_images_dossier'); } else { - $myDir = opendir(_DIR_TRANSFERT); while($entryName = readdir($myDir)){ if (!ereg("^\.",$entryName) AND eregi("(gif|jpg|png)$",$entryName)){ $entryName = addslashes($entryName); - $afficher .= "\n<OPTION VALUE='" . - _DIR_TRANSFERT . - "$entryName'>$entryName"; + $afficher .= "\n<option value='$entryName'>$entryName</option>"; } } closedir($myDir); - if (strlen($afficher) > 10){ - echo "\n"._T('info_selectionner_fichier_2'); - echo "\n<SELECT NAME='image' CLASS='forml' SIZE=1>"; - echo $afficher; - echo "\n</SELECT>"; - echo "\n <INPUT NAME='ok' TYPE=Submit VALUE='"._T('bouton_choisir')."' CLASS='fondo'>"; - } else { - echo _T('info_installer_images_dossier'); - } - + echo "\n<div style='text-align: left'>"._T('info_selectionner_fichier').":</div>"; + echo "\n<SELECT NAME='chemin' CLASS='forml' size='1'>"; + echo $afficher; + echo "\n</SELECT>"; + echo "<div align='", $GLOBALS['spip_lang_right'], "'>"; + echo "\n<input name='sousaction2' type='submit' value='"._T('bouton_choisir')."' CLASS='fondo' style='font-size:9px' /></div>"; } echo fin_block(); - echo "</FORM>\n"; + echo "</div></FORM>\n"; } echo "</font>"; diff --git a/spip_image.php3 b/spip_image.php3 index 93cb942889..29d69a7587 100644 --- a/spip_image.php3 +++ b/spip_image.php3 @@ -56,28 +56,18 @@ if ($test_vignette) else spip_log("spip_image ne connait pas $fonc"); } // Ajout d'un logo -else if ($ajout_logo == "oui" and $logo) { - - // Recuperer les variables d'upload - if (!$_FILES) - $_FILES = &$HTTP_POST_FILES; - if (!is_array($_FILES)) - $_FILES = array(); - foreach ($_FILES as $id => $file) { - if ($file['error'] == 4 /* UPLOAD_ERR_NO_FILE */) - unset ($_FILES[$id]); - } - if ($desc = array_pop($_FILES) - AND verifier_action_auteur("ajout_logo $logo", - $hash, $hash_id_auteur)) +else if ($action == 'ajout_logo') { + + if (!$_FILES) $_FILES = $HTTP_POST_FILES; + $desc = $sousaction2 ? $chemin : (is_array($_FILES) ? array_pop($_FILES) : ""); + if ($desc AND verifier_action_auteur("$action $logo", $hash, $hash_id_auteur)) ajout_logo($desc, $logo); } // Suppression d'un logo -else if ($image_supp) { - if (verifier_action_auteur("supp_logo $image_supp", - $hash, $hash_id_auteur)) - effacer_logo($image_supp); +else if ($action = "effacer_logo") { + if (verifier_action_auteur("$action $chemin", $hash, $hash_id_auteur)) + effacer_logo($chemin); } // Suppression d'un document et de sa vignette @@ -94,6 +84,8 @@ else if ($doc_rotate) { tourner_document($var_rot, $doc_rotate, $convert_command); } + else spip_log("spip_image: action inconnue"); + // // Retour a l'envoyeur // -- GitLab