123 lines
4.3 KiB
Markdown
123 lines
4.3 KiB
Markdown
# 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 !
|
|
|
|
```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
|
|
- `ajaxReload` le nom d'un bloc ajax à recharger via ajaxReload. dans ce cas, charger_js_titre = non
|
|
- `ajaxCallback` le nom d'une fonction JS qui sera appellée en callback de l'ajaxReload (/!\ le JS de cette fonction doit être dans le bloc rechargé)
|
|
- `boutonSubmit` non par défaut (= bouton masqué) => oui permet d'afficher le bouton submit du FORMULAIRE_BIGFORM
|
|
- `id_document` l'ID du document pour lequel le fichier chargé va remplacer le fichier existant (/!\ non pris en compte avec les modes `logoon | logooff` puisque dans ce cas le document est supprimé puis recréé)
|
|
|
|
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}>
|
|
ou
|
|
<INCLURE{fond=inclure/bigform, env, id_document, charger_js_titre=non}>
|
|
```
|
|
Cet inclure peut accepter les 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)
|
|
- `suffix_liste_fichiers=toto` : permet de charger le fichier : `inc-bigup_liste_fichiers_toto.html`
|
|
|
|
Les autres arguments de **l'usage 1** utiles ici sont :
|
|
|
|
- `charger_js_titre=non` : pour ne pas charger/afficher le js d'ajout de l'input titre
|
|
- `id_document=#ID_DOCUMENT` : pour que le fichier chargé remplace celui du document `#ID_DOCUMENT` (ou autre `#ENV{id_document}`)
|
|
|
|
/!\ cet argument nécessite que le `..._traiter` du formulaire récupère l'id_document lui aussi :
|
|
```php
|
|
$bigform = charger_fonction('bigform_traiter','inc');
|
|
$bigform($id_article, 'article', 'auto', ['id_document' => intval($id_document)]);
|
|
```
|
|
(ici `id_article` et `id_document` sont des arguments du CVT)
|
|
|
|
|
|
1. dans le formulaire php
|
|
|
|
```php
|
|
// dans le charger :
|
|
$valeurs['_bigup_rechercher_fichiers'] = true;
|
|
|
|
// dans le verifier
|
|
// Pour les options :
|
|
// https://contrib.spip.net/References-des-verifications#verification_fichiers
|
|
// https://git.spip.net/plugin/verifier/src/branch/master/verifier/fichiers.php
|
|
$bigform = charger_fonction('bigform_verifier','inc');
|
|
$options = ['mime' => 'image_web'];
|
|
|
|
// si on veut redimensionner les images a 2048 et limiter a 10000 le televersement
|
|
// 1. dans options, définir la constante
|
|
define('_IMG_MAX_WIDTH', 2048);
|
|
// 2. ajouter dans l'appel de verifier des dimension_max
|
|
$options = [
|
|
'mime' => 'tout_mime',
|
|
'dimension_max' => [
|
|
'largeur' => 10000,
|
|
'hauteur' => 10000,
|
|
]
|
|
];
|
|
|
|
$bigform($options,$erreurs);
|
|
|
|
/*
|
|
* traiter
|
|
* @param int $id_objet
|
|
* @param string $objet
|
|
* @param string $mode (facultatif) defaut: auto
|
|
* @param bool $secu (true => deplace les fichiers dans IMG/PROTECTED/); defaut : false
|
|
*/
|
|
|
|
$bigform = charger_fonction('bigform_traiter','inc');
|
|
$bigform($id_objet, $objet);
|
|
|
|
// Options de protection des documents :
|
|
// - deplacer dans un sous repertoire PROTECTED
|
|
// - obfusquer le nom du fichier
|
|
//
|
|
$secu = [
|
|
'proteger' => false,
|
|
'obfusquer' => false
|
|
];
|
|
|
|
$bigform = charger_fonction('bigform_traiter','inc');
|
|
$bigform($id_objet, $objet, $mode, $secu);
|
|
|
|
|
|
// ou definir la constante pour l'avoir dans tous les formulaires:
|
|
define('_BIGFORM_OBFUSQUER', true);
|
|
|
|
```
|
|
|
|
> **ATTENTION**
|
|
> Il faut ajouter les vérifications pour les différents types de fichiers
|
|
|
|
> **ATTENTION pour les documents protégés**
|
|
> Il faut activer les urls propres : URLs Propres+.html
|