Changeset 66100 in spip-zone


Ignore:
Timestamp:
Sep 20, 2012, 1:47:28 PM (7 years ago)
Author:
erational@…
Message:

introduction d'un systeme de quota pour limiter le nombre de fichiers uploadable par un user

Location:
_plugins_/formulaire_upload/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formulaire_upload/trunk/formulaires/configurer_formulaireupload.html

    r66077 r66100  
    2525                                value="#ENV*{files_number,''}" />
    2626                </li>
     27   
     28    <li class="editer_formupload_files_quota[ (#ENV**{erreurs}|table_valeur{files_quota}|oui)erreur]">
     29                        <label for="files_quota"><:formupload:cfg_lbl_files_quota:></label>
     30                        [<span class='erreur'>(#ENV**{erreurs}|table_valeur{files_quota})</span>]
     31                        <p class="explication"><:formupload:cfg_inf_files_quota:></p>
     32                        <input type="text" name="files_quota" class="text" id="files_quota" size="60"
     33                                value="#ENV*{files_quota,''}" />
     34                </li>
    2735       
    2836                <li class="editer_insert_code">
  • _plugins_/formulaire_upload/trunk/formulaires/upload.php

    r66099 r66100  
    6161  if (is_array($files)) {
    6262   
    63     $ajouter_documents = charger_fonction('ajouter_documents', 'action');
    64     $nouveaux_doc = $ajouter_documents($id_document,$files,$objet,$id_objet,'document');
     63    $res['message_ok'] = "";
     64    $compteur = 0;
     65 
     66    // gestion des quotas ?
     67    $quota = intval(lire_config("formulaireupload/files_quota"));
     68    $quota_left = 100;
     69    if ($quota>0) {
     70          if ($res_nb_objet = sql_select('id_document', 'spip_documents_liens', array("objet = '$type'",'id_objet='.intval($id_objet))))
     71                           $nb_objet = sql_count($res_nb_objet);
     72          $quota_left = $quota - $nb_objet; 
     73          if ($quota_left<1 OR $quota_left<count($files))
     74               $res['message_ok'] =  _T("formupload:msg_doc_added_max",array("max"=>$quota))."<br />";
     75         
     76          // on reduit les fichiers proposés par le quota restant       
     77          array_splice($files, $quota_left);
     78    }
    6579   
    66     $compteur = count($nouveaux_doc);
    67    
     80 
     81    // upload des fichiers
     82    if ($quota_left>0) {
     83          $ajouter_documents = charger_fonction('ajouter_documents', 'action');
     84          $nouveaux_doc = $ajouter_documents($id_document,$files,$objet,$id_objet,'document');
     85         
     86          $compteur = count($nouveaux_doc);
     87    }
    6888    /* A verifier:
    69        - securite : verifier les extentions (si forcing)
    70        - ajouter un quota image pour client ?
    71        
     89       - securite : verifier les extenxions (si forcing)
    7290
    73     $quota_client = intval(lire_config("formulaireupload/files_number"));
    74    
    75 
    76                 // quota
    77                 $nb_objet = 0;
    78                 if ($res_nb_objet = sql_select('id_document', 'spip_documents_liens', array("objet = '$type'",'id_objet='.intval($id_objet))))
    79                            $nb_objet = sql_count($res_nb_objet);
    80                 if ($nb_objet<=$quota_client ) 
    81                  
    82                     $res['message_ok'] =  _T("formupload:msg_doc_added_max",array("max"=>$nb_doc_autorise))."<br />";
    83                
    84             ... a finir ...
    85            
    86     }
    87        */
     91    */
    8892                $invalider = true;
    89                 $res['message_ok'] = _T("formupload:msg_doc_added",array("compteur"=>$compteur));
     93                $res['message_ok'] .= _T("formupload:msg_doc_added",array("compteur"=>$compteur));
    9094        }
    9195
  • _plugins_/formulaire_upload/trunk/lang/formupload_fr.php

    r66077 r66100  
    77        'cfg_lbl_insert_code' => 'Code d\'insertion',
    88        'cfg_lbl_files_number' => 'Nombre de fichiers accept&eacute;s',
     9  'cfg_lbl_files_quota' => 'Quota de fichiers',
    910        'cfg_inf_files_accepted' => 'Mettre les extensions s&eacute;par&eacute;es par des pipes ex: pdf|txt|odt ou gif|jpg|png',
    1011        'cfg_inf_insert_code' => 'Afficher le code d\'insertion des documents (si on a un autre formulaire pour cr&eacute;er des articles par exemple)',
    1112        'cfg_inf_files_number' => 'L\'utilisateur ne pourra uploader que ce nombre de fichiers au maximum',
     13  'cfg_inf_files_quota' => 'Nombre de fichiers maximum pour un utilisateur donné.<br />Vide = Quota infini',
    1214        'cfg_titre_formupload' => 'Formulaire upload',
    1315        'choosefiles' => 'Choisir les fichiers &agrave; ajouter&nbsp;:',
  • _plugins_/formulaire_upload/trunk/paquet.xml

    r66077 r66100  
    22        prefix="formulaireupload"
    33        categorie="outil"
    4         version="1.0.1"
     4        version="1.0.2"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.