action | ||
base | ||
formulaires | ||
inc | ||
inclure | ||
js | ||
lang | ||
prive | ||
bigform_administrations.php | ||
bigform_autorisations.php | ||
bigform_fonctions.php | ||
bigform_options.php | ||
bigform_pipelines.php | ||
fabrique_bigform.php | ||
paquet.xml | ||
README.md | ||
retailler_img.html |
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 !
#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 modeslogoon | 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
- dans le formulaire 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}
ouaccept="image/*"
par défaut tous les fichiersprevisualiser=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 titreid_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 :
$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)
- dans le formulaire 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