Changeset 104324 in spip-zone


Ignore:
Timestamp:
May 8, 2017, 7:33:08 AM (3 years ago)
Author:
cedric@…
Message:

Suite de r104308 et r104309 : on retablit le fonctionnement iso de inc-upload_document.html qui determine lui meme avec son env les methodes d'upload via filtre medias_lister_methodes_upload et pipeline medias_methodes_upload
Ainsi on conserve la compat complete avec les versions anterieures de SPIP, tout en beneficiant de l'extensibilite des methodes d'upload

Location:
_core_/plugins/medias
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/medias/formulaires/illustrer_document.php

    r104309 r104324  
    3131        $valeurs['id_vignette'] = $vignette['id_document'];
    3232        $valeurs['_pipeline'] = array('editer_contenu_objet', array('type' => 'illustrer_document', 'id' => $id_document));
    33 
    34         // méthodes d'upload disponibles
    35         $valeurs['_methodes_upload'] = array();
    36         $valeurs['_methodes_upload']['upload'] = array('label_lien'=>_T('medias:bouton_download_local'),'label_bouton'=>_T('bouton_upload'));
    37         $valeurs['_methodes_upload']['distant'] = array('label_lien'=>_T('medias:bouton_download_sur_le_web'),'label_bouton'=>_T('bouton_choisir'));
    38 
    39         // pipeline pour les méthodes d'upload
    40         $valeurs['_methodes_upload'] = pipeline('medias_methodes_upload', array(
    41                 'args' => array('objet' => 'document', 'id_objet' => $id_document),
    42                 'data' => $valeurs['_methodes_upload']
    43         ));
    4433
    4534        return $valeurs;
  • _core_/plugins/medias/formulaires/inc-upload_document.html

    r104309 r104324  
    77[(#ENV{joindre_ftp}|oui)#SET{methode,ftp}]
    88
     9#SET{methodes_upload,#ENV**|medias_lister_methodes_upload}
     10
    911<div id="defaultsubmit#GET{domid}" class="none">DEFAULT</div>
    10 
    11 <BOUCLE_methodes(DATA){source tableau,#ENV{_methodes_upload}}>
     12<BOUCLE_methodes(DATA){source tableau,#GET{methodes_upload}}>
    1213        #SET{methode_upload,#CLE}
    1314        <div class='joindre_mode#GET{domid}[(#GET{methode}|=={#CLE}|non)none-js]' id='joindre_#CLE#GET{domid}'>
     
    1819                        [(#SET{cpt,1})]
    1920                        <:medias:bouton_download_depuis:>
    20                         <BOUCLE_methodes_liens(DATA){source tableau,#ENV{_methodes_upload}}>
     21                        <BOUCLE_methodes_liens(DATA){source tableau,#GET{methodes_upload}}>
    2122                                [(#GET{cpt}|>{1}|oui)
    2223                                        [(#VAL{'|'})]
  • _core_/plugins/medias/formulaires/joindre_document.php

    r104309 r104324  
    8484        $mode = joindre_determiner_mode($mode, $id_document, $objet);
    8585
    86         // méthodes d'upload disponibles
    87         $valeurs['_methodes_upload'] = array();
    88         $valeurs['_methodes_upload']['upload'] = array('label_lien'=>_T('medias:bouton_download_local'),'label_bouton'=>_T('bouton_upload'));
    89         if($proposer_media && !empty($objet) && $id_objet != 0){
    90                 $valeurs['_methodes_upload']['mediatheque'] = array('label_lien'=>_T('medias:bouton_download_par_mediatheque'),'label_bouton'=>_T('medias:bouton_attacher_document'));
    91         }
    92         if($proposer_ftp) {
    93                 $valeurs['_methodes_upload']['ftp'] = array('label_lien'=>_T('medias:bouton_download_par_ftp'),'label_bouton'=>_T('bouton_choisir'));
    94         }
    95         $valeurs['_methodes_upload']['distant'] = array('label_lien'=>_T('medias:bouton_download_sur_le_web'),'label_bouton'=>_T('bouton_choisir'));
    96 
    97 
    98         // pipeline pour les méthodes d'upload
    99         $valeurs['_methodes_upload'] = pipeline('medias_methodes_upload', array(
    100                 'args' => array('objet' => $objet, 'id_objet' => $id_objet),
    101                 'data' => $valeurs['_methodes_upload']
    102         ));
    10386
    10487        $valeurs['id'] = $id_document;
  • _core_/plugins/medias/medias_fonctions.php

    r100660 r104324  
    285285        return $balise_img($fichier);
    286286}
     287
     288/**
     289 * Determiner les methodes upload en fonction du env de inc-upload_document
     290 *
     291 * @param string|array $env
     292 * @return array
     293 */
     294function medias_lister_methodes_upload($env) {
     295        if (is_string($env)) {
     296                $env = unserialize($env);
     297        }
     298
     299        $methodes = array();
     300        // méthodes d'upload disponibles
     301        $methodes = array();
     302        $methodes['upload'] = array('label_lien'=>_T('medias:bouton_download_local'),'label_bouton'=>_T('bouton_upload'));
     303
     304        if((isset($env['mediatheque']) and $env['mediatheque'])){
     305                $methodes['mediatheque'] = array('label_lien'=>_T('medias:bouton_download_par_mediatheque'),'label_bouton'=>_T('medias:bouton_attacher_document'));
     306        }
     307       
     308        if((isset($env['proposer_ftp']) and $env['proposer_ftp'])){
     309                $methodes['ftp'] = array('label_lien'=>_T('medias:bouton_download_par_ftp'),'label_bouton'=>_T('bouton_choisir'));
     310        }
     311        $methodes['distant'] = array('label_lien'=>_T('medias:bouton_download_sur_le_web'),'label_bouton'=>_T('bouton_choisir'));
     312
     313        // pipeline pour les méthodes d'upload
     314        $methodes = pipeline('medias_methodes_upload',
     315                array(
     316                        'args' => array('objet' => $env['objet'], 'id_objet' => $env['id_objet']),
     317                        'data' => $methodes
     318                )
     319        );
     320
     321        return $methodes;
     322}
Note: See TracChangeset for help on using the changeset viewer.