No description
Find a file
2024-09-05 19:21:52 +02:00
action feat: formulaire autonome, on peut passer dans l'array d'options soit obfusquer soit proteger 2023-06-29 17:49:43 +02:00
base wip: si obfusquer => on enregistre le nom du fichier initial dans le champ fichier_origine 2023-01-31 20:44:05 +01:00
formulaires Chore : chaînes de langue 2024-09-05 19:21:52 +02:00
inc Feat : ajout d'un paramètre ajaxCallback qui permet d'indiquer une fonction JS appellée en callback de l'ajaxReload à la fin du traiter. Le retour[message_ok] du traiter est maintenant un array encodé en JSon 2024-09-05 18:56:47 +02:00
inclure feat: FORMULAIRE_BIGLOAD - ajout ajaxReload 2024-07-12 10:22:08 +02:00
js on ajoute un input hidden avec le nom du fichier pour pouvoir recreer proprement l'ordre du files 2019-12-09 11:37:31 +01:00
lang Chore : chaînes de langue 2024-09-05 19:21:52 +02:00
prive première version utilisable 2019-12-04 20:15:44 +01:00
bigform_administrations.php wip: si obfusquer => on enregistre le nom du fichier initial dans le champ fichier_origine 2023-01-31 20:44:05 +01:00
bigform_autorisations.php PSR 2023-06-29 09:13:48 +02:00
bigform_fonctions.php on rend configurable : mulitple / previsualiser / accept, cf README 2019-12-10 12:13:51 +01:00
bigform_options.php feat: compat spip 41 qui n'utilise plus la fonction urls_propres mais generer_url_document 2023-06-28 10:04:46 +02:00
bigform_pipelines.php secu: cette boucle pouvait permettre (difficilement) de voir les images. 2023-06-29 10:48:02 +02:00
fabrique_bigform.php première version utilisable 2019-12-04 20:15:44 +01:00
paquet.xml Chore : up de z pour l'ajout du paramètre ajaxCallback 2024-09-05 19:09:46 +02:00
README.md Feat : ajout d'un paramètre ajaxCallback qui permet d'indiquer une fonction JS appellée en callback de l'ajaxReload à la fin du traiter. Le retour[message_ok] du traiter est maintenant un array encodé en JSon 2024-09-05 18:56:47 +02:00
retailler_img.html secu: cette boucle pouvait permettre (difficilement) de voir les images. 2023-06-29 10:48:02 +02:00

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

      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:
<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 :

$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
// 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