Changeset 103105 in spip-zone


Ignore:
Timestamp:
Mar 1, 2017, 10:41:23 PM (3 years ago)
Author:
nicolas.dorigny@…
Message:

Permettre de remplacer un fichier déjà uploadé par un autre, sans avoir à cocher "supprimer" / valider / uploader

Location:
_plugins_/cvt-upload/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cvt-upload/trunk/cvtupload_pipelines.php

    r101388 r103105  
    5656                                                        $infos_fichiers[$champ][$cle]['infos_encodees'] = encoder_contexte_ajax($infos_decodees, $flux['args']['form']);
    5757
    58                                                         // Si suppression
    59                                                         if (isset($supprimer_fichier[$champ][$cle])) {                                                         
     58                                                        // Si suppression ou un autre fichier uploadé en remplacement
     59                                                        if (isset($supprimer_fichier[$champ][$cle]) ||
     60                                                                (isset($_FILES[$champ]['name'][$cle]) && $_FILES[$champ]['error'][$cle] === UPLOAD_ERR_OK)
     61                                                        ) {             
    6062                                                                supprimer_fichier($infos_fichiers[$champ][$cle]['tmp_name']);
    6163                                                                $name = $infos_fichiers[$champ][$cle]['name'];
     
    6466                                                                        unset($infos_fichiers[$champ]);
    6567                                                                }
    66                                                                 // On génère une erreur pour réafficher le form de toute façon
    67                                                                 $erreurs["$champ"] = _T('cvtupload:erreur_fichier_supprime',array("nom"=>$name));
     68                                                                if (isset($supprimer_fichier[$champ][$cle])) {
     69                                                                        // On génère une erreur pour réafficher le form de toute façon
     70                                                                        $erreurs["$champ"] = _T('cvtupload:erreur_fichier_supprime', array("nom" => $name));
     71                                                                }
    6872                                                        }
    6973                                                }
     
    7478                                        $infos_fichiers[$champ]['infos_encodees'] = encoder_contexte_ajax($infos_decodees, $flux['args']['form']);
    7579
    76                                         // Si suppression
    77                                         if (isset($supprimer_fichier[$champ])) {
     80                                        // Si suppression ou un autre fichier uploadé en remplacement
     81                                        if (isset($supprimer_fichier[$champ]) ||
     82                                                (isset($_FILES[$champ]['name']) && $_FILES[$champ]['error'] === UPLOAD_ERR_OK)
     83                                        ) {
    7884                                                supprimer_fichier($infos_fichiers[$champ]['tmp_name']);
    7985                                                $name = $infos_fichiers[$champ]['name'];
    8086                                                unset($infos_fichiers[$champ]);
    81                                                 // On génère une erreur pour réafficher le form de toute façon
    82                                                 $erreurs["$champ"] = _T('cvtupload:erreur_fichier_supprime',array("nom"=>$name));
     87                                                if(isset($supprimer_fichier[$champ])) {
     88                                                        // On génère une erreur pour réafficher le form de toute façon
     89                                                        $erreurs["$champ"] = _T('cvtupload:erreur_fichier_supprime', array("nom" => $name));
     90                                                }
    8391                                        }
    8492                                }
    8593                        }
    86                        
     94
    8795                        // On déplace le(s) fichier(s) dans notre dossier tmp de SPIP
    8896                        // Et on met à jour les infos par rapport aux anciennes versions
  • _plugins_/cvt-upload/trunk/formulaires/inc-cvtupload-fichier.html

    r101347 r103105  
    1 <span class="fichier_precedent">
     1<div class="fichier_precedent">
    22        <input type="hidden" name="cvtupload_fichiers_precedents[(#ENV{crochets})]" value="#ENV{infos_encodees}" />
    33        <div class="description">
     
    88                <input type="checkbox" class="checkbox" id="cvtupload_supprimer_fichier[(#ENV{crochets})]" name="cvtupload_supprimer_fichier[(#ENV{crochets})]" />
    99                <label for="cvtupload_supprimer_fichier[(#ENV{crochets})]"><:cvtupload:supprimer_fichier:></label>
     10                <input type="file" class="file[ (#ENV{class})]" name="#ENV{champ}" id="#ENV{champ}" size="40"[(#HTML5|oui)[ accept="(#GET{mime})"]]/>
    1011        </div>
    11 </span>
     12</div>
  • _plugins_/cvt-upload/trunk/inc/cvtupload.php

    r101321 r103105  
    5151                                $html_fichiers[$champ] = recuperer_fond(
    5252                                        'formulaires/inc-cvtupload-fichier',
    53                                         array_merge($fichier, array('crochets'=>"[$champ]"))
     53                                        array_merge($fichier, array(
     54                                                'crochets' => "[$champ]",
     55                                                'champ'    => "$champ",
     56                                        ))
    5457                                );
    5558                        }
     
    5962                                        $html_fichiers[$champ][$cle] = recuperer_fond(
    6063                                                'formulaires/inc-cvtupload-fichier',
    61                                                 array_merge($infos, array('crochets'=>"[$champ][$cle]"))
     64                                                array_merge($infos, array(
     65                                                        'crochets' => "[$champ][$cle]",
     66                                                        'champ'    => $champ . "[$cle]",
     67                                                ))
    6268                                        );
    6369                                }
Note: See TracChangeset for help on using the changeset viewer.