feat: FORMULAIRE_BIGLOAD - ajout ajaxReload

On ajout une cle dans l'array args pour définir un bloc à recharger via
ajaxReload
This commit is contained in:
Christophe 2024-07-12 09:53:07 +02:00
parent f3e8326650
commit 1745f8d854
4 changed files with 51 additions and 24 deletions

View file

@ -1,7 +1,9 @@
# Plugin bigform
> plugin proposant un formulaire CVT pour le plugin bigup
## Usage 1 : en formulaire autonome (comme html5_upload)
> ATTENTION : il n'y a pas de vérification sur le type des fichiers envoyés en PHP.
> Ne pas hésiter à surcharger la fonction de vérification : formulaires_bigform_verifier()
> en fonction des besoins !
@ -9,30 +11,39 @@
```html
#FORMULAIRE_BIGFORM{objet, id_objet, mode, args (array)}
```
- `mode` (facultatif) : le type d'image si besoin. Valeurs possibles : `auto | logoon | logooff`
- `args` (facultatif) : un array d'options.
- `redirect` qui permet de renvoyer sur la page passée en argument.
- `obfusquer`
- `proteger`
- `charger_js_titre` oui par defaut => permet de ne pas charger le js d'ajout de l'input titre
Exemple pour revenir à la page principale "equipe" avec un bigform appelé dans une popin :
- `charger_js_titre` oui par defaut => permet de ne pas charger le js d'ajout de l'input titre
- `ajaxReload` le nom d'un bloc ajax à recharger via ajaxReload. dans ce cas, charger_js_titre = non
Exemple pour revenir à la page principale "equipe" avec un bigform appelé dans une popin :
```
#FORMULAIRE_BIGFORM{article, #ID_ARTICLE, logoon, #ARRAY{redirect, #URL_PAGE{equipe}, obfusquer, oui}}
```
## Usage 2 : en inclure dans un formulaire
> Ajoute dynamiquement un champ **titre** pour chaque image
1. dans le formulaire html:
```html
<INCLURE{fond=inclure/bigform,env}>
arg: suffix_liste_fichiers=toto qui permet de charger le fichier :inc-bigup_liste_fichiers_toto.html
```
cet inclure peut accepter 3 arguments facultatifs :
* `accept=#LISTE{image/*, application/pdf}` ou `accept="image/*"` par défaut tous les fichiers
* `previsualiser=non` (par défaut = oui)
* `multiple=non` (par défaut = oui)
- `accept=#LISTE{image/*, application/pdf}` ou `accept="image/*"` par défaut tous les fichiers
- `previsualiser=non` (par défaut = oui)
- `multiple=non` (par défaut = oui)
2. dans le formulaire php
```php
// dans le charger :
$valeurs['_bigup_rechercher_fichiers'] = true;
@ -86,6 +97,7 @@ $bigform($id_objet, $objet, $mode, $secu);
define('_BIGFORM_OBFUSQUER', true);
```
> **ATTENTION**
> Il faut ajouter les vérifications pour les différents types de fichiers

View file

@ -2,12 +2,18 @@
<div class="formulaire_spip formulaire_#FORM">
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[(#ENV*{message_ok}|oui)
<script>
ajaxReload("#ENV*{message_ok}");
</script>
]
<form class="form_bigform" id="form_bigform[_(#ENV{objet})][_(#ENV{id_objet})]" name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data"><div>
#ACTION_FORMULAIRE{#ENV{action}}
<INCLURE{fond=inclure/bigform_doc,env,ajax}>
[(#ENV{ajaxReload}|non)
<INCLURE{fond=inclure/bigform_doc,env,ajax}>
]
<INCLURE{fond=inclure/bigform,env}>
<div class="boutons"><input id="valider_bigup" type="submit" class="submit valider_bigup" value="Envoyer" ></div>
@ -16,3 +22,13 @@
</div>
]
<script type="text/javascript">
jQuery(function() {
$('.valider_bigup').css('display','none');
$('input.bigup').bigup({}, {
complete: function(){
$(this).parents('form').submit();
},
});
});
</script>

View file

@ -5,12 +5,19 @@ if (!defined('_ECRIRE_INC_VERSION')){
function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $args = []) {
$charger_js_titre = $args['charger_js_titre'] ?? 'oui';
if (!empty($args['ajaxReload'])) {
$ajaxReload = $args['ajaxReload'];
$charger_js_titre = 'non';
} else {
$charger_js_titre = $args['charger_js_titre'] ?? 'oui';
$ajaxReload = null;
}
$valeurs = [
'_bigup_rechercher_fichiers' => true,
'id_objet' => $id_objet,
'objet' => $objet,
'charger_js_titre' => $charger_js_titre === 'oui' ? 'oui' : 'non'
'ajaxReload' => $ajaxReload,
'charger_js_titre' => $charger_js_titre === 'oui' ? 'oui' : 'non',
];
$valeurs['objet_ok'] = '';
@ -64,9 +71,12 @@ function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mo
]
]);
if (!empty($args) and !empty($args['redirect'])) {
return ['redirect' => $args['redirect']];
} else {
return [];
$retour = [];
if (!empty($args['redirect'])) {
$retour['redirect'] = $args['redirect'];
}
if (!empty($args['ajaxReload'])) {
$retour['message_ok'] = $args['ajaxReload'];
}
return $retour;
}

View file

@ -76,14 +76,3 @@
</BOUCLE_pdf>
</div>
<script type="text/javascript">
jQuery(function() {
$('.valider_bigup').css('display','none');
$('input.bigup').bigup({}, {
complete: function(){
console.log("on valide [(#ENV{objet})]_[(#ENV{id_objet})]");
$(this).parents('form').submit();
},
});
});
</script>