From 54aa01ddba77062a78462ea62770b1375e269f3c Mon Sep 17 00:00:00 2001 From: tofulm Date: Wed, 28 Jun 2023 10:04:46 +0200 Subject: [PATCH 01/13] feat: compat spip 41 qui n'utilise plus la fonction urls_propres mais generer_url_document MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit C'est un gros plus, car plus besoin d'avoir une réécriture d'url pour que cela fonctionne Normalement, on garde la compat spip < 41 --- bigform_options.php | 4 ++++ inc/bigform_generer_url_document.php | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 inc/bigform_generer_url_document.php diff --git a/bigform_options.php b/bigform_options.php index db39ca0..8aa543e 100644 --- a/bigform_options.php +++ b/bigform_options.php @@ -13,6 +13,10 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } +function urls_generer_url_document($id_document, $args = '', $ancre = '', $public = null, $connect = '') { + $f = charger_fonction('bigform_generer_url_document', 'inc'); + return $f($id_document, $args, $ancre, $public, $connect); +} // https://code.spip.net/@urls_propres2_dist function urls_propres2($i, &$entite, $args = '', $ancre = '') { diff --git a/inc/bigform_generer_url_document.php b/inc/bigform_generer_url_document.php new file mode 100644 index 0000000..da2b182 --- /dev/null +++ b/inc/bigform_generer_url_document.php @@ -0,0 +1,17 @@ + Date: Wed, 28 Jun 2023 10:12:34 +0200 Subject: [PATCH 02/13] up de y et borne compat --- paquet.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paquet.xml b/paquet.xml index ab3cc67..d88fff1 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,9 +1,9 @@ Date: Wed, 28 Jun 2023 23:20:16 +0200 Subject: [PATCH 03/13] =?UTF-8?q?feat:=20bigform.php=20ajout=20de=20la=20f?= =?UTF-8?q?onciton=20de=20v=C3=A9rification=20et=20d'un=20pipeline=20pour?= =?UTF-8?q?=20changer=20les=20options?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/bigform.php | 14 ++++++++++++++ paquet.xml | 1 + 2 files changed, 15 insertions(+) diff --git a/formulaires/bigform.php b/formulaires/bigform.php index 7073773..7975bba 100644 --- a/formulaires/bigform.php +++ b/formulaires/bigform.php @@ -24,6 +24,20 @@ function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $ar function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $args = array()) { $erreurs = array(); + + $options = pipeline('bigform_verifier', [ + 'args' => [ + 'id_objet' => $id_objet, + 'objet' => $objet, + 'mode' => $mode, + 'args' => $args + ], + 'data' => [] + ]); + + $bigform = charger_fonction('bigform_verifier','inc'); + $bigform($options,$erreurs); + return $erreurs; } diff --git a/paquet.xml b/paquet.xml index d88fff1..008fcd3 100644 --- a/paquet.xml +++ b/paquet.xml @@ -23,5 +23,6 @@ + From 5c54cd64d44574bc987968487d6c76575436d66b Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 29 Jun 2023 09:13:48 +0200 Subject: [PATCH 04/13] PSR --- bigform_autorisations.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bigform_autorisations.php b/bigform_autorisations.php index 8894ff1..af12c07 100644 --- a/bigform_autorisations.php +++ b/bigform_autorisations.php @@ -26,9 +26,7 @@ function autoriser_document_charger_dist($faire, $type, $id, $qui, $opt) { } function autoriser_document_dissociersupprimer_dist($faire, $type, $id, $qui, $opt) { - if (!intval($id) - or !$qui['id_auteur'] - ) { + if (!intval($id) or !intval($qui['id_auteur'])) { return false; } From dbca8408c94e4cca78fe3793e084022ae8d0e188 Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 29 Jun 2023 09:13:58 +0200 Subject: [PATCH 05/13] fix: correction sur les bornes --- paquet.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paquet.xml b/paquet.xml index 008fcd3..f321f09 100644 --- a/paquet.xml +++ b/paquet.xml @@ -3,7 +3,7 @@ categorie="edition" version="1.3.0" etat="dev" - compatibilite="[4.1.*;4.2.*]" + compatibilite="[4.0.0;4.2.*]" logo="prive/themes/spip/images/bigform-64.png" documentation="" schema="1.0.5" From 65aae8ebcbd4800b7aef7f2be11c7e1438faf16c Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 29 Jun 2023 10:34:59 +0200 Subject: [PATCH 06/13] =?UTF-8?q?secu:=20cette=20boucle=20pouvait=20permet?= =?UTF-8?q?tre=20(difficilement)=20de=20voir=20les=20images.=20On=20ajoute?= =?UTF-8?q?=203=20tests=20:=20-=20que=20la=20config=20:=20generation=20des?= =?UTF-8?q?=20adaptives=20images=20soit=20sur=20OUI=20-=20il=20faut=20etre?= =?UTF-8?q?=20connect=C3=A9=20-=20il=20faut=20etre=20=C3=A0=20l'orginine?= =?UTF-8?q?=20de=20l'appel=20de=20la=20requette=20(c'est=20pas=20top,=20ma?= =?UTF-8?q?is=20=20=20ca=20rajoute=20une=20complexite,=20c'est=20OK=20tant?= =?UTF-8?q?=20que=20le=20code=20n'est=20pas=20=20=20publique=20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bigform_pipelines.php | 9 +++++---- retailler_img.html | 9 ++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/bigform_pipelines.php b/bigform_pipelines.php index 4cc3913..e5433d0 100644 --- a/bigform_pipelines.php +++ b/bigform_pipelines.php @@ -34,10 +34,11 @@ function bigform_post_edition($flux){ and lire_config('bigform/retailler_image') === 'oui' ) { $url = generer_url_public("retailler_img", [ - "id_document" =>intval($id_document), - "largeur" => $flux['data']['largeur'], - "hauteur" => $flux['data']['hauteur'], - "taille" => $flux['data']['taille'], + "id_document" => intval($id_document), + "largeur" => $flux['data']['largeur'], + "hauteur" => $flux['data']['hauteur'], + "taille" => $flux['data']['taille'], + "id_auteur" => session_get('id_auteur') ], true, false); $ch = curl_init($url); diff --git a/retailler_img.html b/retailler_img.html index e97103e..c326e06 100644 --- a/retailler_img.html +++ b/retailler_img.html @@ -1,4 +1,11 @@ - + [(#FICHIER|image_recadre{3072:1800,-,focus}|adaptive_images{3072})] [(#FICHIER|image_recadre{2048:1200,-,focus}|adaptive_images{2048})] [(#FICHIER|image_recadre{1024:600,-,focus}|adaptive_images{1024})] From 1addd51db1629d7ee46d6ea8ef81117b7f52d0ea Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 29 Jun 2023 10:50:30 +0200 Subject: [PATCH 07/13] up de z --- paquet.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paquet.xml b/paquet.xml index f321f09..a71aa3f 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ Date: Thu, 29 Jun 2023 16:53:09 +0200 Subject: [PATCH 08/13] feat: ajout pipeline bigform_post_insertion utile pour faire une req sur les id_doc --- formulaires/bigform.php | 23 ++++++++++++++++------- paquet.xml | 3 ++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/formulaires/bigform.php b/formulaires/bigform.php index 7975bba..e956461 100644 --- a/formulaires/bigform.php +++ b/formulaires/bigform.php @@ -3,16 +3,15 @@ if (!defined('_ECRIRE_INC_VERSION')){ return; } -include_spip('inc/cvtupload'); - -function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $args = array()) { +function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $args = []) { $valeurs = [ '_bigup_rechercher_fichiers' => true, 'id_objet' => $id_objet, 'objet' => $objet ]; + $valeurs['objet_ok'] = ''; if (intval($id_objet) > 0 and $objet) { @@ -22,8 +21,8 @@ function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $ar return $valeurs; } -function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $args = array()) { - $erreurs = array(); +function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $args = []) { + $erreurs = []; $options = pipeline('bigform_verifier', [ 'args' => [ @@ -41,12 +40,22 @@ function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $a return $erreurs; } -function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = array()) { +function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = []) { $bigform = charger_fonction('bigform_traiter','inc'); - //return []; $T = $bigform($id_objet,$objet,$mode); + + pipeline('bigform_post_insertion', [ + 'args' => [ + 'id_objet' => $id_objet, + 'objet' => $objet, + 'mode' => $mode, + 'args' => $args, + 'tId_doc' => $T + ] + ]); + if (!empty($args) and !empty($args['redirect'])) { return ['redirect' => $args['redirect']]; } else { diff --git a/paquet.xml b/paquet.xml index a71aa3f..7c7c9cf 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ + From 1ef8ddec16ee169c6ff80ae13fdca44b20270347 Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 29 Jun 2023 17:49:43 +0200 Subject: [PATCH 09/13] feat: formulaire autonome, on peut passer dans l'array d'options soit obfusquer soit proteger --- README.md | 7 +++++-- action/charger_document.php | 13 ++----------- formulaires/bigform.php | 11 +++++++++-- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 6b7239a..e1ee06c 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,13 @@ #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. Pour l'instant la seule supportée est `redirect` qui permet de renvoyer sur la page passée en argument. +- `args` (facultatif) : un array d'options. + - `redirect` qui permet de renvoyer sur la page passée en argument. + - `obfusquer` + - `proteger` 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}}} +#FORMULAIRE_BIGFORM{article, #ID_ARTICLE, logoon, #ARRAY{redirect, #URL_PAGE{equipe}, obfusquer, oui}} ``` ## Usage 2 : en inclure dans un formulaire diff --git a/action/charger_document.php b/action/charger_document.php index 01ce649..fb5836a 100644 --- a/action/charger_document.php +++ b/action/charger_document.php @@ -3,17 +3,8 @@ if (!defined('_ECRIRE_INC_VERSION')) return; function action_charger_document_dist($arg=null){ - if (is_null($arg)) { - // DEMI sécurité : s'il y a un hash, on teste la sécurité - if (_request('hash')) { - $securiser_action = charger_fonction('securiser_action', 'inc'); - $arg = $securiser_action(); - } - // Sinon, on prend l'arg direct - else { - $arg = _request('arg'); - } - } + $securiser_action = charger_fonction('securiser_action', 'inc'); + $arg = $securiser_action(); include_spip('inc/autoriser'); if (! autoriser("charger","document")) { diff --git a/formulaires/bigform.php b/formulaires/bigform.php index e956461..c27e4a7 100644 --- a/formulaires/bigform.php +++ b/formulaires/bigform.php @@ -42,9 +42,16 @@ function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $a function formulaires_bigform_traiter_dist($objet = 'article', $id_objet = 0, $mode = 'auto', $args = []) { - $bigform = charger_fonction('bigform_traiter','inc'); + $options_secu = []; + if (array_key_exists('proteger', $args)) { + $options_secu['proteger'] = true; + } + if (array_key_exists('obfusquer', $args)) { + $options_secu['obfusquer'] = true; + } - $T = $bigform($id_objet,$objet,$mode); + $bigform = charger_fonction('bigform_traiter','inc'); + $T = $bigform($id_objet,$objet,$mode, $options_secu); pipeline('bigform_post_insertion', [ 'args' => [ From efd1dda37b89a22e503071b4ffe9c3423f36689f Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 29 Jun 2023 23:45:16 +0200 Subject: [PATCH 10/13] feat: ajout la possibilite de ne pas charger le js d'ajout du champ titre --- README.md | 1 + formulaires/bigform.php | 5 +++-- inclure/bigform.html | 4 +++- inclure/inc-bigup_liste_fichiers.html | 1 - 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e1ee06c..ea8b750 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ - `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 : ``` #FORMULAIRE_BIGFORM{article, #ID_ARTICLE, logoon, #ARRAY{redirect, #URL_PAGE{equipe}, obfusquer, oui}} diff --git a/formulaires/bigform.php b/formulaires/bigform.php index c27e4a7..6613661 100644 --- a/formulaires/bigform.php +++ b/formulaires/bigform.php @@ -5,13 +5,14 @@ if (!defined('_ECRIRE_INC_VERSION')){ function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $args = []) { + $charger_js_titre = $args['charger_js_titre'] ?? 'oui'; $valeurs = [ '_bigup_rechercher_fichiers' => true, 'id_objet' => $id_objet, - 'objet' => $objet + 'objet' => $objet, + 'charger_js_titre' => $charger_js_titre === 'oui' ? true : false ]; - $valeurs['objet_ok'] = ''; if (intval($id_objet) > 0 and $objet) { diff --git a/inclure/bigform.html b/inclure/bigform.html index 6ab6c86..50b05d6 100644 --- a/inclure/bigform.html +++ b/inclure/bigform.html @@ -26,5 +26,7 @@ {accept=#GET{accept}} )] - +[(#ENV{charger_js_titre}|oui) + +] diff --git a/inclure/inc-bigup_liste_fichiers.html b/inclure/inc-bigup_liste_fichiers.html index 93d7a19..ca957b3 100644 --- a/inclure/inc-bigup_liste_fichiers.html +++ b/inclure/inc-bigup_liste_fichiers.html @@ -52,4 +52,3 @@ - From f444d46818a73f7b98375d76f99a6344e7dc38b7 Mon Sep 17 00:00:00 2001 From: tofulm Date: Mon, 16 Oct 2023 09:50:06 +0200 Subject: [PATCH 11/13] fix: correction sur le chargement de la var charger_js_titre pour que par defaut on ne casse rien --- formulaires/bigform.php | 2 +- inclure/bigform.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/formulaires/bigform.php b/formulaires/bigform.php index 6613661..5049156 100644 --- a/formulaires/bigform.php +++ b/formulaires/bigform.php @@ -10,7 +10,7 @@ function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $ar '_bigup_rechercher_fichiers' => true, 'id_objet' => $id_objet, 'objet' => $objet, - 'charger_js_titre' => $charger_js_titre === 'oui' ? true : false + 'charger_js_titre' => $charger_js_titre === 'oui' ? 'oui' : 'non' ]; $valeurs['objet_ok'] = ''; diff --git a/inclure/bigform.html b/inclure/bigform.html index 50b05d6..90dc1bf 100644 --- a/inclure/bigform.html +++ b/inclure/bigform.html @@ -26,7 +26,7 @@ {accept=#GET{accept}} )] -[(#ENV{charger_js_titre}|oui) +[(#ENV{charger_js_titre}|!={non}|oui) ] From aec035250a2cc348fa0786b3dcb2c6140f5e55a4 Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 9 Nov 2023 13:11:58 +0100 Subject: [PATCH 12/13] =?UTF-8?q?feat:=20quand=20on=20appelle=20``,=20on=20ajoute=20un=20arg:=20suff?= =?UTF-8?q?ix=5Fliste=5Ffichiers,=20qui=20permet=20de=20surcharger=20facil?= =?UTF-8?q?ement=20l'inclure=20de=20pr=C3=A9visualisation=20inc-bigup=5Fli?= =?UTF-8?q?ste=5Ffichiers.html?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + inclure/bigform.html | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ea8b750..1d874ad 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Exemple pour revenir à la page principale "equipe" avec un bigform appelé dans 1. dans le formulaire html: ```html +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 diff --git a/inclure/bigform.html b/inclure/bigform.html index 90dc1bf..87be298 100644 --- a/inclure/bigform.html +++ b/inclure/bigform.html @@ -14,7 +14,11 @@ [(#SET{multiple,#ENV{multiple,oui}})] [(#SET{accept,#ENV{accept}|bigform_tab_accept})] - Date: Thu, 9 Nov 2023 13:26:58 +0100 Subject: [PATCH 13/13] chore: up de z --- paquet.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paquet.xml b/paquet.xml index 7c7c9cf..228cdcb 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@