Changeset 104308 in spip-zone


Ignore:
Timestamp:
May 7, 2017, 9:31:18 PM (2 years ago)
Author:
d.ferrera@…
Message:

Rendre les méthodes d'upload extensibles via le pipeline medias_methodes_upload qui permet d'ajouter de nouveaux moyens de charger des documents.

Location:
_core_/plugins/medias
Files:
5 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/medias/formulaires/joindre_document.html

    r100664 r104308  
    1414        <form action="#ENV{action}#formulaire_joindre_document-#ENV{id,new}" method="post" enctype='multipart/form-data'><div>
    1515                [(#ACTION_FORMULAIRE{#ENV{action}})]
    16                
    17                 [(#INCLURE{fond=formulaires/inc-upload_document, env, mediatheque=#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}}})]
    18                
     16
     17                [(#GET{mediatheque,[(#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}})]})]
     18
     19                #SET{domid,_#ENV{mode}|concat{'_',#ENV{id,new}}}
     20                #SET{methode,upload}
     21                [(#ENV{joindre_mediatheque}|oui)#SET{methode,mediatheque}]
     22                [(#ENV{joindre_distant}|oui)#SET{methode,distant}]
     23                [(#ENV{joindre_ftp}|oui)#SET{methode,ftp}]
     24
     25                <div id="defaultsubmit#GET{domid}" class="none">DEFAULT</div>
     26
     27                <BOUCLE_methodes(DATA){source tableau,#ENV{_methodes_upload}}>
     28                        #SET{methode_upload,#CLE}
     29                        <div class='joindre_mode#GET{domid}[(#GET{methode}|=={#CLE}|non)none-js]' id='joindre_#CLE#GET{domid}'>
     30                               
     31                                [(#INCLURE{fond=formulaires/methodes_upload/#CLE, env, mediatheque=#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}}})]
     32
     33                                <div class='sourceup'>
     34                                        [(#SET{cpt,1})]
     35                                        <:medias:bouton_download_depuis:>
     36                                        <BOUCLE_methodes_liens(DATA){source tableau,#ENV{_methodes_upload}}>
     37                                                [(#GET{cpt}|>{1}|oui)
     38                                                        [(#VAL{'|'})]
     39                                                ]
     40                                                [(#GET{methode_upload}|=={#CLE}|oui)
     41                                                        #VALEUR
     42                                                ]
     43                                                [(#GET{methode_upload}|=={#CLE}|non)
     44                                                        <a href='#' onclick="change_methode('#GET{domid}','#CLE');return false;">#VALEUR</a>
     45                                                ]
     46                                                [(#SET{cpt,#GET{cpt}|plus{1}})]
     47                                        </BOUCLE_methodes_liens>
     48                                </div>
     49                                <p class='boutons'><input class='submit' type="submit" name="joindre_#CLE" value="<:bouton_upload:>"/></p>
     50                        </div>
     51                </BOUCLE_methodes>
     52
     53                [(#REM) Formulaire pour deballer un zip]
     54                [<div class="editer-groupe"><div class='fieldset deballer_zip'>(#ENV**{erreurs}|table_valeur{lister_contenu_archive})</div></div>]
     55
     56                <script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
     57                if (window.jQuery){
     58                function change_methode(domid,methode){
     59                        var id = "#joindre_"+methode+domid;
     60                        if (jQuery(id).is(':hidden')) {
     61                                jQuery('div.joindre_mode'+domid+':visible').slideUp('fast');
     62                                jQuery(id).slideDown('fast');
     63                        }
     64                        // placer en haut du formulaire les boutons submit par defaut correspondant a la methode active
     65                        jQuery("#defaultsubmit"+domid).html('').append(jQuery(id).find('.boutons').eq(-1).find('input').clone(true));
     66                }
     67                jQuery(function(){change_methode('#GET{domid}','#GET{methode}');});
     68                }
     69                /*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
    1970        </div></form>
    2071</div>]
  • _core_/plugins/medias/formulaires/joindre_document.php

    r100680 r104308  
    8383        $valeurs = array();
    8484        $mode = joindre_determiner_mode($mode, $id_document, $objet);
     85
     86        // méthodes d'upload disponibles
     87        $valeurs['_methodes_upload']['upload'] = _T('medias:bouton_download_local');
     88        if($proposer_ftp) {
     89                $valeurs['_methodes_upload']['ftp'] = _T('medias:bouton_download_par_ftp');
     90                $valeurs['_methodes_upload']['distant'] = _T('medias:bouton_download_sur_le_web');
     91        }
     92        if($proposer_media && !empty($objet) && $id_objet != 0){
     93                $valeurs['_methodes_upload']['mediatheque'] = _T('medias:bouton_download_par_mediatheque');
     94        }
     95       
     96
     97        // pipeline pour les méthodes d'upload
     98        $valeurs['_methodes_upload'] = pipeline('medias_methodes_upload', array(
     99                'args' => array('objet' => $objet, 'id_objet' => $id_objet),
     100                'data' => $valeurs['_methodes_upload']
     101        ));
    85102
    86103        $valeurs['id'] = $id_document;
  • _core_/plugins/medias/paquet.xml

    r104269 r104308  
    22        prefix="medias"
    33        categorie="multimedia"
    4         version="2.19.17"
     4        version="2.20.0"
    55        etat="stable"
    66        compatibilite="[3.2.0-dev;3.2.*]"
     
    4343        <pipeline nom="medias_documents_visibles" action="" />
    4444        <pipeline nom="ieconfig_metas" inclure="medias_ieconfig.php" />
     45        <pipeline nom="medias_methodes_upload" action='' />
    4546
    4647        <procure nom="minidoc" version="1.0.2" />
Note: See TracChangeset for help on using the changeset viewer.