Skip to content
Extraits de code Groupes Projets
Valider 5e89a7c1 rédigé par d.ferrera@free.fr's avatar d.ferrera@free.fr
Parcourir les fichiers

Rendre les méthodes d'upload extensibles via le pipeline...

Rendre les méthodes d'upload extensibles via le pipeline medias_methodes_upload qui permet d'ajouter de nouveaux moyens de charger des documents.
parent a73ee24d
Aucune branche associée trouvée
Étiquettes v3.21.4
Aucune requête de fusion associée trouvée
......@@ -23,9 +23,12 @@ formulaires/editer_document.php -text
formulaires/illustrer_document.html -text
formulaires/illustrer_document.php -text
formulaires/inc-lister_archive_jointe.html -text
formulaires/inc-upload_document.html -text
formulaires/joindre_document.html -text
formulaires/joindre_document.php -text
formulaires/methodes_upload/distant.html -text
formulaires/methodes_upload/ftp.html -text
formulaires/methodes_upload/mediatheque.html -text
formulaires/methodes_upload/upload.html -text
inc/choisir_mode_document.php -text
inc/documenter_objet.php -text
inc/documents.php -text
......
#SET{domid,_#ENV{mode}|concat{'_',#ENV{id,new}}}
#SET{methode,upload}
[(#ENV{joindre_mediatheque}|oui)#SET{methode,mediatheque}]
[(#ENV{joindre_distant}|oui)#SET{methode,distant}]
[(#ENV{joindre_ftp}|oui)#SET{methode,ftp}]
<div id="defaultsubmit#GET{domid}" class="none"></div>
[
(#REM) Formulaire d'upload de fichier
]<div class='joindre_mode#GET{domid}[(#GET{methode}|=={upload}|non)none-js]' id='joindre_upload#GET{domid}'>
<div class="editer-groupe">
<div class='editer editer_fichier_upload[ (#ENV**{erreurs}|table_valeur{fichier_upload}|oui)erreur]'>
<label for='fichier_upload#GET{domid}'><:bouton_upload:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{fichier_upload})</span>
]<input class='file multi' type="file" name="fichier_upload[]" value='[(#ENV{fichier_upload}|is_array|?{'', #ENV{fichier_upload}})]' id="fichier_upload#GET{domid}" size='11' />
<!--editer_fichier_upload-->
</div>
</div>
<div class='sourceup'>
<:medias:bouton_download_depuis:>
<:medias:bouton_download_local:>
[(#ENV{mediatheque,''}|oui)
| <a href='#' onclick="change_methode('#GET{domid}','mediatheque');return false;"><:medias:bouton_download_par_mediatheque:></a>]
[(#ENV{proposer_ftp,''}|oui)
| <a href='#' onclick="change_methode('#GET{domid}','ftp');return false;"><:medias:bouton_download_par_ftp:></a>]
| <a href='#' onclick="change_methode('#GET{domid}','distant');return false;"><:medias:bouton_download_sur_le_web:></a>
</div>
<p class='boutons'><input class='submit' type="submit" name="joindre_upload" value="<:bouton_upload:>"/></p>
</div>[
(#REM) Formulaire pour document dans mediatheque
][(#ENV{mediatheque,''}|oui)
<div class='joindre_mode#GET{domid}[(#GET{methode}|=={mediatheque}|non)none-js]' id='joindre_mediatheque#GET{domid}'>
<div class="editer-groupe">
<div class='editer editer_refdoc_joindre[ (#ENV**{erreurs}|table_valeur{refdoc_joindre}|oui)erreur]'>
<label for='refdoc_joindre#GET{domid}'><:medias:label_refdoc_joindre:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{refdoc_joindre})</span>
]<input class='text' type="text" name="refdoc_joindre" value='#ENV{refdoc_joindre}' id="refdoc_joindre#GET{domid}"/>
<input class='submit' type="button" name="parcourir" value="<:medias:bouton_parcourir:>"
onclick="jQuery.modalboxload('#URL_ECRIRE{popin-choisir_document,var_zajax=contenu&selectfunc=mediaselect#GET{domid}}',{autoResize: true});"
/>
<!--editer_refdoc_joindre-->
</div>
</div>
<script type="text/javascript">/*<!\[CDATA\[*/
function mediaselect#GET{domid}(id){jQuery.modalboxclose();jQuery("#refdoc_joindre#GET{domid}").attr('value','doc'+id).focus();jQuery('#joindre_mediatheque#GET{domid}>.boutons input').get(0).click();}
/*\]\]>*/</script>
<div class='sourceup'>
<:medias:bouton_download_depuis:>
<a href='#' onclick="change_methode('#GET{domid}','upload');return false;"><:medias:bouton_download_local:></a>
| <:medias:bouton_download_par_mediatheque:>
[(#ENV{proposer_ftp,''}|oui)
| <a href='#' onclick="change_methode('#GET{domid}','ftp');return false;"><:medias:bouton_download_par_ftp:></a>]
| <a href='#' onclick="change_methode('#GET{domid}','distant');return false;"><:medias:bouton_download_sur_le_web:></a>
</div>
<p class='boutons'><input class='submit' type="submit" name="joindre_mediatheque" value="<:medias:bouton_attacher_document:>"/></p>
</div>
][
(#REM) Formulaire pour upload ftp
][(#ENV{proposer_ftp,''}|oui)
<div class='joindre_mode#GET{domid}[(#GET{methode}|=={ftp}|non)none-js]' id='joindre_ftp#GET{domid}'>
[
<div class="editer-groupe">
<div class='editer editer_cheminftp[ (#ENV**{erreurs}|table_valeur{cheminftp}|oui)erreur]'>
<label for='cheminftp#GET{domid}'>[(#VAL{info_selectionner_fichier}|_T{#ARRAY{upload,#ENV*{_dir_upload_ftp}}})]</label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{cheminftp})</span>
]<select name='cheminftp' id='cheminftp#GET{domid}' size='1'>
<option value=''>&gt;&gt;</option>
(#ENV*{_options_upload_ftp})
</select>
<!--editer_cheminftp-->
</div>
</div>][(#ENV{_dir_upload_ftp}|et{#ENV{_options_upload_ftp}|non}|oui)
<p class="infos">
[(#VAL{info_installer_ftp}|_T{#ARRAY{upload,#ENV*{_dir_upload_ftp}}})] #AIDER{ins_upload}
</p>
]
<div class='sourceup'>
<:medias:bouton_download_depuis:>
<a href='#' onclick="change_methode('#GET{domid}','upload');return false;"><:medias:bouton_download_local:></a>
[(#ENV{mediatheque,''}|oui)
| <a href='#' onclick="change_methode('#GET{domid}','mediatheque');return false;"><:medias:bouton_download_par_mediatheque:></a>]
| <:medias:bouton_download_par_ftp:>
| <a href='#' onclick="change_methode('#GET{domid}','distant');return false;"><:medias:bouton_download_sur_le_web:></a>
</div>
<p class='boutons'>
[(#ENV*{_options_upload_ftp}|oui)
<input class='submit' type="submit" name="joindre_ftp" value="<:bouton_choisir:>"/>
]
</p>
</div>
][
(#REM) Formulaire pour document distant
]<div class='joindre_mode#GET{domid}[(#GET{methode}|=={distant}|non)none-js]' id='joindre_distant#GET{domid}'>
<div class="editer-groupe">
<div class='editer editer_url[ (#ENV**{erreurs}|table_valeur{url}|oui)erreur]'>
<label for='url#GET{domid}'><:medias:info_referencer_doc_distant:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{url})</span>
]<input class='text' type="text" name="url" value='#ENV{url}' id="url#GET{domid}"/>
<!--editer_url-->
</div>
</div>
<div class='sourceup'>
<:medias:bouton_download_depuis:>
<a href='#' onclick="change_methode('#GET{domid}','upload');return false;"><:medias:bouton_download_local:></a>
[(#ENV{mediatheque,''}|oui)
| <a href='#' onclick="change_methode('#GET{domid}','mediatheque');return false;"><:medias:bouton_download_par_mediatheque:></a>]
[(#ENV{proposer_ftp,''}|oui)
| <a href='#' onclick="change_methode('#GET{domid}','ftp');return false;"><:medias:bouton_download_par_ftp:></a>]
| <:medias:bouton_download_sur_le_web:>
</div>
<p class='boutons'><input class='submit' type="submit" name="joindre_distant" value="<:bouton_choisir:>"/></p>
</div>[
(#REM) Formulaire pour deballer un zip
][<div class="editer-groupe"><div class='fieldset deballer_zip'>(#ENV**{erreurs}|table_valeur{lister_contenu_archive})</div></div>]
<script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
if (window.jQuery){
function change_methode(domid,methode){
var id = "#joindre_"+methode+domid;
if (jQuery(id).is(':hidden')) {
jQuery('div.joindre_mode'+domid+':visible').slideUp('fast');
jQuery(id).slideDown('fast');
}
// placer en haut du formulaire les boutons submit par defaut correspondant a la methode active
jQuery("#defaultsubmit"+domid).html('').append(jQuery(id).find('.boutons').eq(-1).find('input').clone(true));
}
jQuery(function(){change_methode('#GET{domid}','#GET{methode}');});
}
/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
......@@ -13,9 +13,60 @@
<form action="#ENV{action}#formulaire_joindre_document-#ENV{id,new}" method="post" enctype='multipart/form-data'><div>
[(#ACTION_FORMULAIRE{#ENV{action}})]
[(#INCLURE{fond=formulaires/inc-upload_document, env, mediatheque=#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}}})]
[(#GET{mediatheque,[(#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}})]})]
#SET{domid,_#ENV{mode}|concat{'_',#ENV{id,new}}}
#SET{methode,upload}
[(#ENV{joindre_mediatheque}|oui)#SET{methode,mediatheque}]
[(#ENV{joindre_distant}|oui)#SET{methode,distant}]
[(#ENV{joindre_ftp}|oui)#SET{methode,ftp}]
<div id="defaultsubmit#GET{domid}" class="none">DEFAULT</div>
<BOUCLE_methodes(DATA){source tableau,#ENV{_methodes_upload}}>
#SET{methode_upload,#CLE}
<div class='joindre_mode#GET{domid}[(#GET{methode}|=={#CLE}|non)none-js]' id='joindre_#CLE#GET{domid}'>
[(#INCLURE{fond=formulaires/methodes_upload/#CLE, env, mediatheque=#ENV{objet,''}|et{#ENV{id_objet,''}}|et{#ENV{proposer_media}}})]
<div class='sourceup'>
[(#SET{cpt,1})]
<:medias:bouton_download_depuis:>
<BOUCLE_methodes_liens(DATA){source tableau,#ENV{_methodes_upload}}>
[(#GET{cpt}|>{1}|oui)
[(#VAL{'|'})]
]
[(#GET{methode_upload}|=={#CLE}|oui)
#VALEUR
]
[(#GET{methode_upload}|=={#CLE}|non)
<a href='#' onclick="change_methode('#GET{domid}','#CLE');return false;">#VALEUR</a>
]
[(#SET{cpt,#GET{cpt}|plus{1}})]
</BOUCLE_methodes_liens>
</div>
<p class='boutons'><input class='submit' type="submit" name="joindre_#CLE" value="<:bouton_upload:>"/></p>
</div>
</BOUCLE_methodes>
[(#REM) Formulaire pour deballer un zip]
[<div class="editer-groupe"><div class='fieldset deballer_zip'>(#ENV**{erreurs}|table_valeur{lister_contenu_archive})</div></div>]
<script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
if (window.jQuery){
function change_methode(domid,methode){
var id = "#joindre_"+methode+domid;
if (jQuery(id).is(':hidden')) {
jQuery('div.joindre_mode'+domid+':visible').slideUp('fast');
jQuery(id).slideDown('fast');
}
// placer en haut du formulaire les boutons submit par defaut correspondant a la methode active
jQuery("#defaultsubmit"+domid).html('').append(jQuery(id).find('.boutons').eq(-1).find('input').clone(true));
}
jQuery(function(){change_methode('#GET{domid}','#GET{methode}');});
}
/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
</div></form>
</div>]
[(#ENV{_galerie,''}|oui)
......
......@@ -83,6 +83,23 @@ function formulaires_joindre_document_charger_dist(
$valeurs = array();
$mode = joindre_determiner_mode($mode, $id_document, $objet);
// méthodes d'upload disponibles
$valeurs['_methodes_upload']['upload'] = _T('medias:bouton_download_local');
if($proposer_ftp) {
$valeurs['_methodes_upload']['ftp'] = _T('medias:bouton_download_par_ftp');
$valeurs['_methodes_upload']['distant'] = _T('medias:bouton_download_sur_le_web');
}
if($proposer_media && !empty($objet) && $id_objet != 0){
$valeurs['_methodes_upload']['mediatheque'] = _T('medias:bouton_download_par_mediatheque');
}
// pipeline pour les méthodes d'upload
$valeurs['_methodes_upload'] = pipeline('medias_methodes_upload', array(
'args' => array('objet' => $objet, 'id_objet' => $id_objet),
'data' => $valeurs['_methodes_upload']
));
$valeurs['id'] = $id_document;
$valeurs['_mode'] = $mode;
......
<div class="editer-groupe">
<div class='editer editer_url[ (#ENV**{erreurs}|table_valeur{url}|oui)erreur]'>
<label for='url#GET{domid}'><:medias:info_referencer_doc_distant:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{url})</span>
]<input class='text' type="text" name="url" value='#ENV{url}' id="url#GET{domid}"/>
<!--editer_url-->
</div>
</div>
\ No newline at end of file
<div class="editer-groupe">
[<div class='editer editer_cheminftp[ (#ENV**{erreurs}|table_valeur{cheminftp}|oui)erreur]'>
<label for='cheminftp#GET{domid}'>[(#VAL{info_selectionner_fichier}|_T{#ARRAY{upload,#ENV*{_dir_upload_ftp}}})]</label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{cheminftp})</span>
]<select name='cheminftp' id='cheminftp#GET{domid}' size='1'>
<option value=''>&gt;&gt;</option>
(#ENV*{_options_upload_ftp})
</select>
<!--editer_cheminftp-->
</div>]
</div>
[(#ENV{_dir_upload_ftp}|et{#ENV{_options_upload_ftp}|non}|oui)
<p class="infos">
[(#VAL{info_installer_ftp}|_T{#ARRAY{upload,#ENV*{_dir_upload_ftp}}})] #AIDER{ins_upload}
</p>
]
\ No newline at end of file
<div class="editer-groupe">
<div class='editer editer_refdoc_joindre[ (#ENV**{erreurs}|table_valeur{refdoc_joindre}|oui)erreur]'>
<label for='refdoc_joindre#GET{domid}'><:medias:label_refdoc_joindre:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{refdoc_joindre})</span>
]<input class='text' type="text" name="refdoc_joindre" value='#ENV{refdoc_joindre}' id="refdoc_joindre#GET{domid}"/>
<input class='submit' type="button" name="parcourir" value="<:medias:bouton_parcourir:>"
onclick="jQuery.modalboxload('#URL_ECRIRE{popin-choisir_document,var_zajax=contenu&selectfunc=mediaselect#GET{domid}}',{autoResize: true});"
/>
<!--editer_refdoc_joindre-->
</div>
</div>
<script type="text/javascript">/*<!\[CDATA\[*/
function mediaselect#GET{domid}(id){jQuery.modalboxclose();jQuery("#refdoc_joindre#GET{domid}").attr('value','doc'+id).focus();jQuery('#joindre_mediatheque#GET{domid}>.boutons input').get(0).click();}
/*\]\]>*/</script>
\ No newline at end of file
<div class="editer-groupe">
<div class='editer editer_fichier_upload[ (#ENV**{erreurs}|table_valeur{fichier_upload}|oui)erreur]'>
<label for='fichier_upload#GET{domid}'><:bouton_upload:></label>[
<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{fichier_upload})</span>
]<input class='file multi' type="file" name="fichier_upload[]" value='[(#ENV{fichier_upload}|is_array|?{'', #ENV{fichier_upload}})]' id="fichier_upload#GET{domid}" size='11' />
<!--editer_fichier_upload-->
</div>
</div>
\ No newline at end of file
<paquet
prefix="medias"
categorie="multimedia"
version="2.19.17"
version="2.20.0"
etat="stable"
compatibilite="[3.2.0-dev;3.2.*]"
logo="prive/themes/spip/images/portfolio-32.png"
......@@ -42,6 +42,7 @@
<pipeline nom="afficher_metas_document" action="" />
<pipeline nom="medias_documents_visibles" action="" />
<pipeline nom="ieconfig_metas" inclure="medias_ieconfig.php" />
<pipeline nom="medias_methodes_upload" action='' />
<procure nom="minidoc" version="1.0.2" />
<procure nom="ordoc" version="1.1.1" />
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter