diff --git a/ecrire/action/joindre.php b/ecrire/action/joindre.php index 447d4a6e2ead95bdccecf5fb4fd75e33dc4c6f96..f31145c139561d7ad47994ed48e02dccc07844a9 100644 --- a/ecrire/action/joindre.php +++ b/ecrire/action/joindre.php @@ -53,8 +53,8 @@ function action_joindre_dist() $documents_actifs = array(); if (function_exists($sousaction)) - $sousaction($path, $mode, $type, $id, $id_document, - $hash, $GLOBALS['auteur_session']['id_auteur'], $redirect, $documents_actifs); + $type_image = $sousaction($path, $mode, $type, $id, $id_document, + $hash, $redirect, $documents_actifs); else spip_log("spip_action: sousaction inconnue $sousaction"); @@ -62,9 +62,18 @@ function action_joindre_dist() $redirect .= '&show_docs=' . join('-',$documents_actifs); } - if ($ancre) { - $redirect .= '#' . $ancre; + if (!$ancre) { + + if ($mode=='vignette') + $ancre = 'images'; + else if ($type_image) + $ancre = 'portfolio'; + else + $ancre = 'documents'; + + $redirect .= '#' . $ancre; } + if ($type == 'rubrique') { include_spip('inc/rubriques'); calculer_rubriques(); @@ -77,9 +86,9 @@ function action_joindre_dist() // Cas d'un document distant reference sur internet // http://doc.spip.org/@spip_action_joindre2 -function spip_action_joindre2($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, &$actifs) +function spip_action_joindre2($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs) { - examiner_les_fichiers(array( + return examiner_les_fichiers(array( array('name' => basename($path), 'tmp_name' => $path) ), 'distant', $type, $id, $id_document, @@ -89,7 +98,7 @@ function spip_action_joindre2($path, $mode, $type, $id, $id_document,$hash, $id_ // Cas d'un fichier transmis // http://doc.spip.org/@spip_action_joindre1 -function spip_action_joindre1($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, &$actifs) +function spip_action_joindre1($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs) { $files = array(); if (is_array($path)) @@ -98,14 +107,14 @@ function spip_action_joindre1($path, $mode, $type, $id, $id_document,$hash, $id_ $files[]=$file; } - examiner_les_fichiers($files, $mode, $type, $id, $id_document, + return examiner_les_fichiers($files, $mode, $type, $id, $id_document, $hash, $redirect, $actifs); } // copie de tout ou partie du repertoire upload // http://doc.spip.org/@spip_action_joindre3 -function spip_action_joindre3($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, &$actifs) +function spip_action_joindre3($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs) { if (!$path || strstr($path, '..')) return; @@ -128,37 +137,38 @@ function spip_action_joindre3($path, $mode, $type, $id, $id_document,$hash, $id_ } } - examiner_les_fichiers($files, $mode, $type, $id, $id_document, $hash, $redirect, $actifs); + return examiner_les_fichiers($files, $mode, $type, $id, $id_document, $hash, $redirect, $actifs); } // Zip avec confirmation "tel quel" // http://doc.spip.org/@spip_action_joindre5 -function spip_action_joindre5($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, &$actifs) +function spip_action_joindre5($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs) { - ajouter_un_document($path, basename($path), $type, $id, $mode, $id_document, $actifs); + return ajouter_un_document($path, basename($path), $type, $id, $mode, $id_document, $actifs); } // Zip a deballer. // http://doc.spip.org/@spip_action_joindre6 -function spip_action_joindre6($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, &$actifs) +function spip_action_joindre6($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs) { - joindre_deballes($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, $actifs); + $x = joindre_deballes($path, $mode, $type, $id, $id_document,$hash, $redirect, $actifs); // suppression de l'archive en zip @unlink($path); + return $x; } // Zip avec les 2 options a la fois -function spip_action_joindre4($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, &$actifs) +function spip_action_joindre4($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs) { - joindre_deballes($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, $actifs); - spip_action_joindre5($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, $actifs); + joindre_deballes($path, $mode, $type, $id, $id_document,$hash, $redirect, $actifs); + return spip_action_joindre5($path, $mode, $type, $id, $id_document,$hash, $redirect, $actifs); } // http://doc.spip.org/@spip_action_joindre6 -function joindre_deballes($path, $mode, $type, $id, $id_document,$hash, $id_auteur, $redirect, &$actifs) +function joindre_deballes($path, $mode, $type, $id, $id_document,$hash, $redirect, &$actifs) { define('_tmp_dir', creer_repertoire_documents($hash)); if (_tmp_dir == _DIR_DOC) die(_L('Opération impossible')); @@ -171,9 +181,10 @@ function joindre_deballes($path, $mode, $type, $id, $id_document,$hash, $id_aute $contenu = verifier_compactes($archive); foreach ($contenu as $fichier) - ajouter_un_document(_tmp_dir.basename($fichier), + $x = ajouter_un_document(_tmp_dir.basename($fichier), basename($fichier), $type, $id, $mode, $id_document, $actifs); effacer_repertoire_temporaire(_tmp_dir); + return $x; } ?> diff --git a/ecrire/inc/getdocument.php b/ecrire/inc/getdocument.php index 085d312bcc3b92dbc6d73539161997e4b5908970..7c5970b33265f5b7802e7e406c77113f690039b9 100644 --- a/ecrire/inc/getdocument.php +++ b/ecrire/inc/getdocument.php @@ -362,16 +362,6 @@ function ajouter_un_document ($source, $nom_envoye, $type_lien, $id_lien, $mode, } } - // regler l'ancre du retour - if (!$GLOBALS['ancre']) { - if ($mode=='vignette') - $GLOBALS['ancre'] = 'images'; - else if ($type_image) - $GLOBALS['ancre'] = 'portfolio'; - else - $GLOBALS['ancre'] = 'documents'; - } - // Preparation vignette du document $id_document $id_document=intval($id_document); if ($mode == 'vignette' AND $id_document_lie = $id_document) { @@ -424,7 +414,7 @@ function ajouter_un_document ($source, $nom_envoye, $type_lien, $id_lien, $mode, include_spip('inc/indexation'); marquer_indexer('spip_documents', $id_document); - return true; + return $type_image; } // http://doc.spip.org/@traite_svg @@ -523,9 +513,10 @@ function examiner_les_fichiers($files, $mode, $type, $id, $id_document, $hash, $ } foreach ($files as $arg) { check_upload_error($arg['error']); - ajouter_un_document($arg['tmp_name'], $arg['name'], + $x = ajouter_un_document($arg['tmp_name'], $arg['name'], $type, $id, $mode, $id_document, $actifs); } + return $x; } // Afficher un formulaire de choix: decompacter et/ou garder tel quel.