# 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 ou ``` 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