version pour SPIP >= 41

This commit is contained in:
Christophe 2023-11-09 15:39:23 +01:00
commit fc05287781
11 changed files with 96 additions and 35 deletions

View file

@ -10,10 +10,14 @@
#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`
- `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}}}
#FORMULAIRE_BIGFORM{article, #ID_ARTICLE, logoon, #ARRAY{redirect, #URL_PAGE{equipe}, obfusquer, oui}}
```
## Usage 2 : en inclure dans un formulaire
@ -21,6 +25,7 @@ Exemple pour revenir à la page principale "equipe" avec un bigform appelé dans
1. dans le formulaire html:
```html
<INCLURE{fond=inclure/bigform,env}>
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

View file

@ -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")) {

View file

@ -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;
}

View file

@ -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 = '') {

View file

@ -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);

View file

@ -3,14 +3,14 @@ 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 = []) {
$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' ? 'oui' : 'non'
];
$valeurs['objet_ok'] = '';
@ -22,17 +22,48 @@ 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' => [
'id_objet' => $id_objet,
'objet' => $objet,
'mode' => $mode,
'args' => $args
],
'data' => []
]);
$bigform = charger_fonction('bigform_verifier','inc');
$bigform($options,$erreurs);
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 = []) {
$options_secu = [];
if (array_key_exists('proteger', $args)) {
$options_secu['proteger'] = true;
}
if (array_key_exists('obfusquer', $args)) {
$options_secu['obfusquer'] = true;
}
$bigform = charger_fonction('bigform_traiter','inc');
$T = $bigform($id_objet,$objet,$mode, $options_secu);
pipeline('bigform_post_insertion', [
'args' => [
'id_objet' => $id_objet,
'objet' => $objet,
'mode' => $mode,
'args' => $args,
'tId_doc' => $T
]
]);
//return [];
$T = $bigform($id_objet,$objet,$mode);
if (!empty($args) and !empty($args['redirect'])) {
return ['redirect' => $args['redirect']];
} else {

View file

@ -0,0 +1,17 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')){
return;
}
function inc_bigform_generer_url_document_dist($id_document, $args = '', $ancre = '', $public = null, $connect = '') {
if (sql_countsel('spip_documents',['id_document='.$id_document, 'protected="oui"'])) {
//return generer_url_action('charger_document','id_document='.$id_document);
include_spip('inc/securiser_action');
return securiser_action_auteur('charger_document',$id_document);
}
include_spip('inc/documents');
return generer_url_document_dist($id_document, $args, $ancre);
}

View file

@ -14,7 +14,11 @@
[(#SET{multiple,#ENV{multiple,oui}})]
[(#SET{accept,#ENV{accept}|bigform_tab_accept})]
<INCLURE{fond=inclure/inc-bigup_liste_fichiers,
[(#SET{inclure,inc-bigup_liste_fichiers})]
[(#ENV{suffix_liste_fichiers}|oui)
[(#SET{inclure,#GET{inclure}|concat{_}|concat{#ENV{suffix_liste_fichiers}}})]
]
<INCLURE{fond=inclure/#GET{inclure},
nom=fichiers,
multiple=oui,
fichiers=#ENV{_bigup_fichiers}
@ -26,5 +30,7 @@
{accept=#GET{accept}}
)]
<INCLURE{fond=js/bigform.js,env}>
[(#ENV{charger_js_titre}|!={non}|oui)
<INCLURE{fond=js/bigform.js,env}>
]

View file

@ -52,4 +52,3 @@
</BOUCLE_fichiers>
</div>
</B_fichiers>

View file

@ -1,9 +1,9 @@
<paquet
prefix="bigform"
categorie="edition"
version="1.2.3"
version="1.4.0"
etat="dev"
compatibilite="[3.2.5;4.2.*]"
compatibilite="[4.1.0;4.2.*]"
logo="prive/themes/spip/images/bigform-64.png"
documentation=""
schema="1.0.5"
@ -23,5 +23,7 @@
<pipeline nom="post_edition" inclure="bigform_pipelines.php" />
<pipeline nom="bigform_verifier" action='' />
<pipeline nom="bigform_post_insertion" action='' />
</paquet>

View file

@ -1,4 +1,11 @@
<BOUCLE_documents(DOCUMENTS){id_document}{largeur}{hauteur}{taille}{tout}>
<BOUCLE_documents(DOCUMENTS)
{si #CONFIG{bigform/retailler_image}|=={oui}}
{si #SESSION{id_auteur}}
{si #ENV{id_auteur}|=={#SESSION{id_auteur}}}
{protected=""}
{id_document}
{largeur}{hauteur}{taille}
{tout}>
[(#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})]