Compare commits
64 commits
gestion_mo
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
3398155b9d | ||
|
d0548a952c | ||
110ad97c13 | |||
4f6c3f8607 | |||
|
654bcb5b4a | ||
|
c14898d75c | ||
|
4f52fe2c54 | ||
|
e44c854b7a | ||
|
ae7665ef2f | ||
|
b2232a9323 | ||
|
40d61b2988 | ||
36cea7e4c6 | |||
1fd62d251a | |||
1745f8d854 | |||
f3e8326650 | |||
91fb5cb036 | |||
fc05287781 | |||
3838807fdf | |||
aec035250a | |||
f444d46818 | |||
|
a5706c79af | ||
efd1dda37b | |||
1ef8ddec16 | |||
8e67ee4208 | |||
1addd51db1 | |||
65aae8ebcb | |||
dbca8408c9 | |||
5c54cd64d4 | |||
63662f2966 | |||
77f391a155 | |||
eb5be6693c | |||
54aa01ddba | |||
0d3379d500 | |||
4d2c8baeb6 | |||
9aec7e9cda | |||
9ab900502a | |||
0df02274db | |||
efda01cd64 | |||
|
21a756c23f | ||
185de280da | |||
732b1a5459 | |||
f5932d2870 | |||
6f8a3be915 | |||
|
017dbcf01d | ||
|
8707354624 | ||
0ddc616c8f | |||
|
f9ab363f38 | ||
d0d8d2d1ad | |||
1bf6df1186 | |||
c33b0b58e6 | |||
d6842cd760 | |||
ba251ee614 | |||
e86c611ed5 | |||
21d985575b | |||
1f5a6d54fa | |||
ae901b1401 | |||
5e55305505 | |||
|
011d0adc58 | ||
|
9eb8d4e85b | ||
4138f71680 | |||
5d21b9b8f3 | |||
a8f439967e | |||
f5b2f4c080 | |||
ee0899a9dc |
22 changed files with 477 additions and 159 deletions
86
README.md
86
README.md
|
@ -1,27 +1,67 @@
|
||||||
# Plugin bigform
|
# Plugin bigform
|
||||||
|
|
||||||
> plugin proposant un formulaire CVT pour le plugin bigup
|
> plugin proposant un formulaire CVT pour le plugin bigup
|
||||||
|
|
||||||
## Usage 1 : en formulaire autonome (comme html5_upload)
|
## 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.
|
> 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()
|
> Ne pas hésiter à surcharger la fonction de vérification : formulaires_bigform_verifier()
|
||||||
> en fonction des besoins !
|
> en fonction des besoins !
|
||||||
|
|
||||||
```html
|
```html
|
||||||
#FORMULAIRE_BIGFORM{objet, id_objet, mode}
|
#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
|
## Usage 2 : en inclure dans un formulaire
|
||||||
|
|
||||||
> Ajoute dynamiquement un champ **titre** pour chaque image
|
> Ajoute dynamiquement un champ **titre** pour chaque image
|
||||||
|
|
||||||
1. dans le formulaire html:
|
1. dans le formulaire html:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<INCLURE{fond=inclure/bigform,env}>
|
<INCLURE{fond=inclure/bigform,env}>
|
||||||
|
ou
|
||||||
|
<INCLURE{fond=inclure/bigform, env, id_document, charger_js_titre=non}>
|
||||||
```
|
```
|
||||||
cet inclure peut accepter 3 arguments facultatifs :
|
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)
|
- `accept=#LISTE{image/*, application/pdf}` ou `accept="image/*"` par défaut tous les fichiers
|
||||||
* `multiple=non` (par défaut = oui)
|
- `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
|
||||||
|
|
||||||
2. dans le formulaire php
|
|
||||||
```php
|
```php
|
||||||
// dans le charger :
|
// dans le charger :
|
||||||
$valeurs['_bigup_rechercher_fichiers'] = true;
|
$valeurs['_bigup_rechercher_fichiers'] = true;
|
||||||
|
@ -32,6 +72,19 @@ $valeurs['_bigup_rechercher_fichiers'] = true;
|
||||||
// https://git.spip.net/plugin/verifier/src/branch/master/verifier/fichiers.php
|
// https://git.spip.net/plugin/verifier/src/branch/master/verifier/fichiers.php
|
||||||
$bigform = charger_fonction('bigform_verifier','inc');
|
$bigform = charger_fonction('bigform_verifier','inc');
|
||||||
$options = ['mime' => 'image_web'];
|
$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);
|
$bigform($options,$erreurs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -45,9 +98,26 @@ $bigform($options,$erreurs);
|
||||||
$bigform = charger_fonction('bigform_traiter','inc');
|
$bigform = charger_fonction('bigform_traiter','inc');
|
||||||
$bigform($id_objet, $objet);
|
$bigform($id_objet, $objet);
|
||||||
|
|
||||||
// Ou pour proteger les documents
|
// 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 = charger_fonction('bigform_traiter','inc');
|
||||||
$bigform($id_objet, $objet, $mode, true);
|
$bigform($id_objet, $objet, $mode, $secu);
|
||||||
|
|
||||||
|
|
||||||
|
// ou definir la constante pour l'avoir dans tous les formulaires:
|
||||||
|
define('_BIGFORM_OBFUSQUER', true);
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
> **ATTENTION**
|
> **ATTENTION**
|
||||||
> Il faut ajouter les vérifications pour les différents types de fichiers
|
> 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
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
<?php
|
<?php
|
||||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||||
|
|
||||||
function action_bigform_supprimer_doc_dist(){
|
function action_bigform_supprimer_doc_dist($arg = null){
|
||||||
|
|
||||||
|
|
||||||
|
if ($arg === null) {
|
||||||
$securiser_action = charger_fonction('securiser_action', 'inc');
|
$securiser_action = charger_fonction('securiser_action', 'inc');
|
||||||
$arg = $securiser_action();
|
$arg = $securiser_action();
|
||||||
list($id_document, $id_objet, $objet) = explode('-', $arg);
|
list($id_document, $id_objet, $objet) = explode('-', $arg);
|
||||||
|
} else {
|
||||||
|
list($id_document, $id_objet, $objet) = $arg;
|
||||||
|
}
|
||||||
|
|
||||||
include_spip('inc/autoriser');
|
include_spip('inc/autoriser');
|
||||||
|
|
||||||
|
|
|
@ -3,17 +3,8 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||||
|
|
||||||
function action_charger_document_dist($arg=null){
|
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');
|
$securiser_action = charger_fonction('securiser_action', 'inc');
|
||||||
$arg = $securiser_action();
|
$arg = $securiser_action();
|
||||||
}
|
|
||||||
// Sinon, on prend l'arg direct
|
|
||||||
else {
|
|
||||||
$arg = _request('arg');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include_spip('inc/autoriser');
|
include_spip('inc/autoriser');
|
||||||
if (! autoriser("charger","document")) {
|
if (! autoriser("charger","document")) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
function bigform_declarer_tables_principales($tables_principales){
|
function bigform_declarer_tables_principales($tables_principales){
|
||||||
|
|
||||||
$tables_principales['spip_documents']['field']['protected'] = 'varchar(5) NOT NULL';
|
$tables_principales['spip_documents']['field']['protected'] = 'varchar(5) NOT NULL';
|
||||||
|
$tables_principales['spip_documents']['field']['fichier_origine'] = 'varchar(255) NOT NULL';
|
||||||
|
|
||||||
return $tables_principales;
|
return $tables_principales;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,11 @@ function bigform_upgrade($nom_meta_base_version, $version_cible) {
|
||||||
'charger_public' => 1
|
'charger_public' => 1
|
||||||
];
|
];
|
||||||
|
|
||||||
$maj['create'] = [['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
$maj['create'] = [
|
||||||
|
['maj_tables', ['spip_documents']],
|
||||||
|
['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
||||||
$maj['1.0.1'] = [['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
$maj['1.0.1'] = [['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
||||||
$maj['1.0.4'] = [['maj_tables', ['spip_documents']]];
|
$maj['1.0.5'] = [['maj_tables', ['spip_documents']]];
|
||||||
|
|
||||||
include_spip('base/upgrade');
|
include_spip('base/upgrade');
|
||||||
maj_plugin($nom_meta_base_version, $version_cible, $maj);
|
maj_plugin($nom_meta_base_version, $version_cible, $maj);
|
||||||
|
|
|
@ -26,9 +26,7 @@ function autoriser_document_charger_dist($faire, $type, $id, $qui, $opt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function autoriser_document_dissociersupprimer_dist($faire, $type, $id, $qui, $opt) {
|
function autoriser_document_dissociersupprimer_dist($faire, $type, $id, $qui, $opt) {
|
||||||
if (!intval($id)
|
if (!intval($id) or !intval($qui['id_auteur'])) {
|
||||||
or !$qui['id_auteur']
|
|
||||||
) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,10 @@ if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
return;
|
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
|
// https://code.spip.net/@urls_propres2_dist
|
||||||
function urls_propres2($i, &$entite, $args = '', $ancre = '') {
|
function urls_propres2($i, &$entite, $args = '', $ancre = '') {
|
||||||
|
|
|
@ -12,3 +12,41 @@
|
||||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Branchement sur l'insertion de document pour generer le cache des images
|
||||||
|
* a la sortie du formualire
|
||||||
|
* Extensions utilisées :
|
||||||
|
* - jpg
|
||||||
|
* - png
|
||||||
|
* - webm
|
||||||
|
*
|
||||||
|
* @param Array $flux
|
||||||
|
*
|
||||||
|
* @return Array $flux
|
||||||
|
*/
|
||||||
|
function bigform_post_edition($flux){
|
||||||
|
if (isset($flux['args']['table'])
|
||||||
|
and $flux['args']['table'] === 'spip_documents'
|
||||||
|
and $id_document = intval($flux['args']['id_objet'])
|
||||||
|
and $flux['args']['action'] === 'ajouter_document'
|
||||||
|
and in_array($flux['data']['extension'], ['jpg', 'png', 'webm'])
|
||||||
|
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_auteur" => session_get('id_auteur')
|
||||||
|
], true, false);
|
||||||
|
|
||||||
|
$ch = curl_init($url);
|
||||||
|
curl_setopt($ch, CURLOPT_HEADER, false);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
|
||||||
|
curl_exec($ch);
|
||||||
|
curl_close($ch);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $flux;
|
||||||
|
}
|
||||||
|
|
|
@ -1,18 +1,58 @@
|
||||||
[(#ENV{objet_ok}|oui)
|
[(#ENV{objet_ok}|oui)
|
||||||
<div class="formulaire_spip formulaire_#FORM">
|
<div class="formulaire_spip formulaire_#FORM">
|
||||||
|
|
||||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
|
||||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
|
|
||||||
|
|
||||||
|
[(#ENV*{message_ok}|oui)
|
||||||
|
<script>
|
||||||
|
var aa = '#ENV*{message_ok}';
|
||||||
|
if (aa) {
|
||||||
|
try {
|
||||||
|
aa = JSON.parse(aa);
|
||||||
|
} catch (e) {
|
||||||
|
// utiliser le catch pour la compat descendante = lorsque ENV{message_ok} est une simple string avec le nom du bloc à recharger
|
||||||
|
ajaxReload(aa);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//console.log(aa);
|
||||||
|
if (aa.bloc_ajax !== undefined) {
|
||||||
|
let bb = '';
|
||||||
|
if (aa.callback_ajax !== undefined) {
|
||||||
|
bb = aa.callback_ajax;
|
||||||
|
}
|
||||||
|
ajaxReload(
|
||||||
|
aa.bloc_ajax,
|
||||||
|
{
|
||||||
|
callback: eval(bb)
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
]
|
||||||
<form class="form_bigform" id="form_bigform[_(#ENV{objet})][_(#ENV{id_objet})]" name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data"><div>
|
<form class="form_bigform" id="form_bigform[_(#ENV{objet})][_(#ENV{id_objet})]" name="formulaire_#FORM" action="#ENV{action}" method="post" enctype="multipart/form-data"><div>
|
||||||
#ACTION_FORMULAIRE{#ENV{action}}
|
#ACTION_FORMULAIRE{#ENV{action}}
|
||||||
|
|
||||||
|
[(#ENV{ajaxReload}|non)
|
||||||
<INCLURE{fond=inclure/bigform_doc,env,ajax}>
|
<INCLURE{fond=inclure/bigform_doc,env,ajax}>
|
||||||
|
]
|
||||||
<INCLURE{fond=inclure/bigform,env}>
|
<INCLURE{fond=inclure/bigform,env}>
|
||||||
|
|
||||||
<div class="boutons"><input id="valider_bigup" type="submit" class="submit valider_bigup" value="Envoyer" ></div>
|
<div class="boutons"><input id="valider_bigup" type="submit" class="submit valider_bigup" value="<:bigform:envoyer:>" ></div>
|
||||||
</div></form>
|
</div></form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
]
|
]
|
||||||
|
[(#ENV{boutonSubmit}|non)
|
||||||
|
<style type="text/css">
|
||||||
|
.valider_bigup { display: none; }
|
||||||
|
</style>
|
||||||
|
]
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(function() {
|
||||||
|
//$('.valider_bigup').css('display','none');
|
||||||
|
$('input.bigup').bigup({}, {
|
||||||
|
complete: function(){
|
||||||
|
$(this).parents('form').submit();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
|
@ -3,15 +3,24 @@ if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
include_spip('inc/cvtupload');
|
|
||||||
|
|
||||||
|
function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $args = []) {
|
||||||
|
if (!empty($args['ajaxReload'])) {
|
||||||
|
$ajaxReload = $args['ajaxReload'];
|
||||||
|
$charger_js_titre = 'non';
|
||||||
|
} else {
|
||||||
|
$charger_js_titre = $args['charger_js_titre'] ?? 'oui';
|
||||||
|
$ajaxReload = null;
|
||||||
|
}
|
||||||
|
$boutonSubmit = !empty($args['boutonSubmit']) ? $args['boutonSubmit'] : null;
|
||||||
|
|
||||||
function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $args = array()) {
|
|
||||||
$valeurs = [
|
$valeurs = [
|
||||||
'_bigup_rechercher_fichiers' => true,
|
'_bigup_rechercher_fichiers' => true,
|
||||||
'id_objet' => $id_objet,
|
'id_objet' => $id_objet,
|
||||||
'objet' => $objet,
|
'objet' => $objet,
|
||||||
'mode' => $mode
|
'ajaxReload' => $ajaxReload,
|
||||||
|
'charger_js_titre' => $charger_js_titre === 'oui' ? 'oui' : 'non',
|
||||||
|
'boutonSubmit' => $boutonSubmit,
|
||||||
];
|
];
|
||||||
|
|
||||||
$valeurs['objet_ok'] = '';
|
$valeurs['objet_ok'] = '';
|
||||||
|
@ -23,16 +32,63 @@ function formulaires_bigform_charger_dist($objet, $id_objet, $mode = 'auto', $ar
|
||||||
return $valeurs;
|
return $valeurs;
|
||||||
}
|
}
|
||||||
|
|
||||||
function formulaires_bigform_verifier_dist($objet, $id_objet, $mode = 'auto', $args = 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);
|
||||||
|
|
||||||
$erreurs = array();
|
|
||||||
return $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 = [];
|
||||||
|
if (array_key_exists('proteger', $args)) {
|
||||||
|
$options['proteger'] = true;
|
||||||
|
}
|
||||||
|
if (array_key_exists('obfusquer', $args)) {
|
||||||
|
$options['obfusquer'] = true;
|
||||||
|
}
|
||||||
|
// passer l'id_document à remplacer seulement si ce n'est pas un logo (en cas de logo SPIP supprime puis recrée le doc)
|
||||||
|
if (array_key_exists('id_document', $args) && intval($args['id_document']) && !in_array($mode, ['logoon', 'logooff'])) {
|
||||||
|
$options['id_document'] = intval($args['id_document']);
|
||||||
|
}
|
||||||
|
|
||||||
$bigform = charger_fonction('bigform_traiter','inc');
|
$bigform = charger_fonction('bigform_traiter','inc');
|
||||||
|
$T = $bigform($id_objet,$objet,$mode, $options);
|
||||||
|
|
||||||
//return [];
|
pipeline('bigform_post_insertion', [
|
||||||
return $bigform($id_objet,$objet,$mode);
|
'args' => [
|
||||||
|
'id_objet' => $id_objet,
|
||||||
|
'objet' => $objet,
|
||||||
|
'mode' => $mode,
|
||||||
|
'args' => $args,
|
||||||
|
'tId_doc' => $T
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
$retour = [];
|
||||||
|
if (!empty($args['redirect'])) {
|
||||||
|
$retour['redirect'] = $args['redirect'];
|
||||||
|
}
|
||||||
|
if (!empty($args['ajaxReload'])) {
|
||||||
|
//$retour['message_ok'] = $args['ajaxReload'];
|
||||||
|
|
||||||
|
$Tretour = ['bloc_ajax' => $args['ajaxReload']];
|
||||||
|
if (!empty($args['ajaxCallback'])) {
|
||||||
|
$Tretour['callback_ajax'] = $args['ajaxCallback'];
|
||||||
|
}
|
||||||
|
$retour['message_ok'] = json_encode($Tretour);
|
||||||
|
}
|
||||||
|
return $retour;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,22 @@
|
||||||
<div>
|
<div>
|
||||||
#ACTION_FORMULAIRE
|
#ACTION_FORMULAIRE
|
||||||
|
|
||||||
|
<div class="editer_groupe">
|
||||||
|
#SET{name,retailler_image}
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
|
||||||
|
<div class="editer editer_[(#GET{name})][ (#GET{erreurs}|oui)erreur]">
|
||||||
|
<label>Activer la génération des adaptive_images lors du televersement</label>
|
||||||
|
<div class="choix">
|
||||||
|
<input type="radio" class="radio" name="#GET{name}" value="" id="#GET{name}_non"[ (#ENV{#GET{name}}|!={oui}|?{checked="checked"})] >
|
||||||
|
<label for="#GET{name}_non">Non</label>
|
||||||
|
</div>
|
||||||
|
<div class="choix">
|
||||||
|
<input type="radio" class="radio" name="#GET{name}" value="oui" id="#GET{name}_oui"[ (#ENV{#GET{name}}|=={oui}|?{checked="checked"})] >
|
||||||
|
<label for="#GET{name}_oui">Oui</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<input type="hidden" name="_meta_casier" value="bigform" />
|
<input type="hidden" name="_meta_casier" value="bigform" />
|
||||||
<p class="boutons"><span class="image_loading"> </span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
|
<p class="boutons"><span class="image_loading"> </span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
17
inc/bigform_generer_url_document.php
Normal file
17
inc/bigform_generer_url_document.php
Normal 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);
|
||||||
|
}
|
39
inc/bigform_obfusquer_doc.php
Normal file
39
inc/bigform_obfusquer_doc.php
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Permet d'obfusquer le nom d'un document
|
||||||
|
*
|
||||||
|
* @param array $Tid_doc
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function bigform_obfusquer_doc($Tid_doc){
|
||||||
|
|
||||||
|
foreach ($Tid_doc as $id) {
|
||||||
|
if (intval($id)) {
|
||||||
|
$r = sql_fetsel('extension, fichier','spip_documents','id_document='.intval($id));
|
||||||
|
$ext = $r['extension'];
|
||||||
|
$fichier = $r['fichier'];
|
||||||
|
$fichier_ob = $fichier.uniqid(1);
|
||||||
|
$fichier_ob = $ext ."/". md5($fichier_ob) . ".".$ext;
|
||||||
|
if ($fichier) {
|
||||||
|
$source = _DIR_IMG . "/" . $fichier;
|
||||||
|
$dest = _DIR_IMG . "/" . $fichier_ob;
|
||||||
|
if (file_exists($source)) {
|
||||||
|
$d = deplacer_fichier_upload($source, $dest, true);
|
||||||
|
if ($d) {
|
||||||
|
sql_updateq('spip_documents',[
|
||||||
|
'fichier' => $fichier_ob,
|
||||||
|
'fichier_origine' => $fichier,
|
||||||
|
], 'id_document='.$id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,15 +3,42 @@ if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fonction de recuperation et liaison image / objet
|
* fonction de recuperation et liaison image / objet
|
||||||
*
|
*
|
||||||
* @param $id_objet
|
* @param $id_objet
|
||||||
|
* @param $objet
|
||||||
* @param $mode
|
* @param $mode
|
||||||
|
* @param array $options['secu' => false, 'obfusquer' => false, 'id_document' => ID du document pour lequel on va remplacer le fichier]
|
||||||
* @return array tableau des id_document $Tid_doc
|
* @return array tableau des id_document $Tid_doc
|
||||||
*/
|
*/
|
||||||
function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', $secu = false) {
|
function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', $options = false) {
|
||||||
include_spip('inc/joindre_document');
|
include_spip('inc/joindre_document');
|
||||||
|
include_spip('inc/autoriser');
|
||||||
|
|
||||||
|
$proteger = false;
|
||||||
|
$obfusquer = false;
|
||||||
|
$id_document = 'new';
|
||||||
|
if (is_array($options)) {
|
||||||
|
if (array_key_exists('proteger', $options)) {
|
||||||
|
$proteger = $options['proteger'];
|
||||||
|
}
|
||||||
|
if (array_key_exists('obfusquer', $options)) {
|
||||||
|
$obfusquer = $options['obfusquer'];
|
||||||
|
}
|
||||||
|
if (array_key_exists('id_document', $options)
|
||||||
|
&& $options['id_document'] == intval($options['id_document'])
|
||||||
|
&& intval($options['id_document'])
|
||||||
|
) {
|
||||||
|
$id_document = $options['id_document'];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($options) {
|
||||||
|
$proteger = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
set_request('joindre_upload','ok');
|
set_request('joindre_upload','ok');
|
||||||
|
|
||||||
$files = joindre_trouver_fichier_envoye();
|
$files = joindre_trouver_fichier_envoye();
|
||||||
|
@ -27,6 +54,12 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// en mode logoon, on va supprimer le (ou les) anciens logos. on récupère d'abord leurs id
|
||||||
|
//if ($mode == 'logoon'){
|
||||||
|
//$T_docs_objet = sql_allfetsel('id_document','spip_documents_liens',"id_objet=".intval($id_objet)." AND objet='" . $objet . "'");
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* On peut utiliser une fonction SPIP
|
* On peut utiliser une fonction SPIP
|
||||||
* pour supprimer les logos
|
* pour supprimer les logos
|
||||||
|
@ -47,40 +80,46 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto',
|
||||||
// si l'auteur n'a pas le droit d'associer un document à l'objet lui refiler une autorisation exceptionnelle
|
// si l'auteur n'a pas le droit d'associer un document à l'objet lui refiler une autorisation exceptionnelle
|
||||||
// typiquement les 1comite ne peuvent associer un doc à un article de statut publie...
|
// typiquement les 1comite ne peuvent associer un doc à un article de statut publie...
|
||||||
$autorisation_temp = false;
|
$autorisation_temp = false;
|
||||||
if (!autoriser('associerdocuments', $objet, $id_objet)) {
|
|
||||||
include_spip('inc/autoriser');
|
include_spip('inc/autoriser');
|
||||||
autoriser_exception('associerdocuments', $objet, $id_objet);
|
// supprimer les _ du nom de l'objet pour que l'autorisation temporaire fonctionne
|
||||||
|
$type = str_replace('_', '', strncmp($objet, '_', 1) == 0 ? $objet : objet_type($objet, false));
|
||||||
|
if (!autoriser('associerdocuments', $type, $id_objet)) {
|
||||||
|
autoriser_exception('associerdocuments', $type, $id_objet);
|
||||||
$autorisation_temp = true;
|
$autorisation_temp = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// traitement vignette (pompé sur medias/formulaires/illustrer_document.php)
|
|
||||||
if ($mode === 'vignette') {
|
|
||||||
$id_vignette = sql_getfetsel('id_vignette', 'spip_documents', 'id_document=' . intval($id_objet));
|
|
||||||
$ajouter_documents = charger_fonction('ajouter_documents', 'action');
|
|
||||||
$ajoute = $ajouter_documents($id_vignette, $files, '', 0, 'vignette');
|
|
||||||
|
|
||||||
if (is_numeric(reset($ajoute))
|
|
||||||
and $id_vignette = reset($ajoute)
|
|
||||||
) {
|
|
||||||
include_spip('action/editer_document');
|
|
||||||
document_modifier($id_objet, array('id_vignette' => $id_vignette, 'mode' => 'document'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// traitement doc ou logo
|
|
||||||
else {
|
|
||||||
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
||||||
$Tid_doc = $ajouter_document('new', $files, $objet, $id_objet, $mode);
|
$Tid_doc = $ajouter_document($id_document, $files, $objet, $id_objet, $mode);
|
||||||
}
|
|
||||||
|
|
||||||
if ($autorisation_temp) {
|
if ($autorisation_temp) {
|
||||||
autoriser_exception('associerdocuments', $objet, $id_objet, false);
|
autoriser_exception('associerdocuments', $type, $id_objet, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($Tid_doc) and count($Tid_doc) and $secu) {
|
if (is_array($Tid_doc) and count($Tid_doc) and $proteger) {
|
||||||
include_spip('inc/bigform_securiser_doc');
|
include_spip('inc/bigform_securiser_doc');
|
||||||
bigform_securiser_doc($Tid_doc);
|
bigform_securiser_doc($Tid_doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_array($Tid_doc) and count($Tid_doc) and $obfusquer) {
|
||||||
|
include_spip('inc/bigform_obfusquer_doc');
|
||||||
|
bigform_obfusquer_doc($Tid_doc);
|
||||||
}
|
}
|
||||||
|
if (is_array($Tid_doc) and count($Tid_doc) and defined('_BIGFORM_OBFUSQUER')) {
|
||||||
|
include_spip('inc/bigform_obfusquer_doc');
|
||||||
|
bigform_obfusquer_doc($Tid_doc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// si tout s'est bien passé, on supprime le/les anciens logos
|
||||||
|
//if ($mode == 'logoon'){
|
||||||
|
//foreach ($T_docs_objet as $i => $ligne) {
|
||||||
|
//$id_doc = $ligne['id_document'];
|
||||||
|
//if (sql_getfetsel('mode','spip_documents','id_document=' . intval($id_doc)) == 'logoon'){
|
||||||
|
//sql_delete('spip_documents', 'id_document='.intval($id_doc));
|
||||||
|
//sql_delete('spip_documents_liens', 'id_document='.intval($id_doc));
|
||||||
|
//}
|
||||||
|
//}
|
||||||
|
//}
|
||||||
|
|
||||||
if (!empty($html_titre) and count($Tid_doc)) {
|
if (!empty($html_titre) and count($Tid_doc)) {
|
||||||
foreach ($Tid_doc as $i => $id_doc) {
|
foreach ($Tid_doc as $i => $id_doc) {
|
||||||
|
|
|
@ -4,12 +4,29 @@ if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function inc_bigform_verifier_dist($options = [], &$erreurs){
|
function inc_bigform_verifier_dist($options = [], &$erreurs = [] ){
|
||||||
|
$options_defauts = [
|
||||||
|
'mime' => 'tout_mime',
|
||||||
|
'dimension_max' => [
|
||||||
|
'largeur' => 20000,
|
||||||
|
'hauteur' => 20000,
|
||||||
|
]
|
||||||
|
];
|
||||||
|
if (is_array($options)) {
|
||||||
|
$options = array_merge($options_defauts, $options);
|
||||||
|
} else {
|
||||||
|
$options = $options_defauts;
|
||||||
|
}
|
||||||
|
|
||||||
$er = [];
|
$er = [];
|
||||||
$verifier = charger_fonction('verifier', 'inc/');
|
$verifier = charger_fonction('verifier', 'inc/');
|
||||||
$verifier($_FILES['fichiers'], 'fichiers',$options, $er);
|
|
||||||
|
if (!empty($_FILES)) {
|
||||||
|
foreach ($_FILES as $cle => $file) {
|
||||||
|
$verifier($file, 'fichiers', $options, $er);
|
||||||
if (count($er)) {
|
if (count($er)) {
|
||||||
$erreurs['fichiers'] = implode('<br>', $er);
|
$erreurs[$cle] = implode('<br>', $er);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,11 @@
|
||||||
[(#SET{multiple,#ENV{multiple,oui}})]
|
[(#SET{multiple,#ENV{multiple,oui}})]
|
||||||
[(#SET{accept,#ENV{accept}|bigform_tab_accept})]
|
[(#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,
|
nom=fichiers,
|
||||||
multiple=oui,
|
multiple=oui,
|
||||||
fichiers=#ENV{_bigup_fichiers}
|
fichiers=#ENV{_bigup_fichiers}
|
||||||
|
@ -26,5 +30,7 @@
|
||||||
{accept=#GET{accept}}
|
{accept=#GET{accept}}
|
||||||
)]
|
)]
|
||||||
|
|
||||||
<INCLURE{fond=js/bigform.js,env}>
|
[(#ENV{charger_js_titre}|!={non}|oui)
|
||||||
|
<INCLURE{fond=js/bigform.js,env}>
|
||||||
|
]
|
||||||
|
|
||||||
|
|
|
@ -13,22 +13,20 @@
|
||||||
.bloc_titres{
|
.bloc_titres{
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
|
.vignette_doc {
|
||||||
|
max-width: 200px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
[(#REM)
|
|
||||||
affichage selon le mode : logoon logoff image vignette document
|
|
||||||
défaut = document
|
|
||||||
|
|
||||||
] #SET{mode, #ENV{mode,document}}
|
|
||||||
<div class="docs_ressource doc_rang" id="les_docs">
|
<div class="docs_ressource doc_rang" id="les_docs">
|
||||||
<BOUCLE_doc(DOCUMENTS){id_objet}{objet}{si #GET{mode}|in_array{#LISTE{image,logoon,logoff}}}{mode in image,logoon,logoff}{statut in prop,prepa,publie}{par rang_lien}{doublons}>
|
<BOUCLE_doc(DOCUMENTS){id_objet}{objet}{mode in image,logoon,vignette}{statut in prop,prepa,publie}{par rang_lien}>
|
||||||
<div id="id-#ID_DOCUMENT" class="doc_article doc_objet[ (#MODE|=={logoon}|oui)logo_objet]">
|
<div id="id-#ID_DOCUMENT" class="doc_article doc_objet[ (#MODE|=={logoon}|oui)logo_objet]">
|
||||||
<div class="vignette_doc">
|
<div class="vignette_doc">
|
||||||
[(#EXTENSION|match{jpg|png|gif}|oui)
|
[(#EXTENSION|match{jpg|png|gif}|oui)
|
||||||
<a href="#URL_DOCUMENT" title="Ouvrir le document" class="mediabox">
|
<a href="[(#URL_DOCUMENT)]" title="Ouvrir le document" class="mediabox">
|
||||||
][(#EXTENSION|match{jpg|png|gif}|non)
|
][(#EXTENSION|match{jpg|png|gif}|non)
|
||||||
<a href="#URL_DOCUMENT" title="Ouvrir le document" class="" download="[(#FICHIER|basename)]">
|
<a href="[(#URL_DOCUMENT)]" title="Ouvrir le document" class="" download="[(#FICHIER|basename)]">
|
||||||
]
|
]
|
||||||
#LOGO_DOCUMENT{apercu}
|
<img class="spip_logo spip_logos" src="[(#LOGO_DOCUMENT{apercu}|extraire_attribut{src})]" alt="">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="infos_doc">
|
<div class="infos_doc">
|
||||||
|
@ -51,37 +49,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</BOUCLE_doc>
|
</BOUCLE_doc>
|
||||||
<BOUCLE_doc_vignette(DOCUMENTS){id_vignette!=''}{id_document=#ENV{id_objet}}{si #GET{mode}|=={vignette}}>
|
|
||||||
<BOUCLE_vignette(DOCUMENTS){mode=vignette}{id_document=#ID_VIGNETTE}{tout}{extension IN jpg,png,gif}{doublons}>
|
|
||||||
<div id="id-#ID_DOCUMENT" class="doc_article doc_objet">
|
|
||||||
<div class="vignette_doc">
|
|
||||||
<a href="#URL_DOCUMENT" title="Ouvrir la vignette" class="mediabox">
|
|
||||||
#LOGO_DOCUMENT{apercu}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="infos_doc">
|
|
||||||
<div class="icones_doc">
|
|
||||||
[(#AUTORISER{modifier, #ENV{objet}, #ENV{id_objet}})
|
|
||||||
<div class="icone-doc">
|
|
||||||
<a class="ajax nocache nohistory btn btn_poubelle"
|
|
||||||
href="[(#URL_ACTION_AUTEUR{bigform_supprimer_doc, [(#ID_DOCUMENT)]-[(#ENV{id_objet})]-[(#ENV{objet})], #SELF})]"
|
|
||||||
onClick="return confirm('Confirmer la suppression de cette vignette ?');"
|
|
||||||
title="Supprimer la vignette">
|
|
||||||
<i class="fa fa-trash red"></i>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</BOUCLE_vignette>
|
|
||||||
</BOUCLE_doc_vignette>
|
|
||||||
|
|
||||||
<BOUCLE_pdf(DOCUMENTS){id_objet}{objet}{mode=document}{extension=pdf}{statut in prop,prepa,publie}{par rang_lien}{doublons}>
|
<B_pdf>
|
||||||
<div id="id-#ID_DOCUMENT" class="doc_article doc_objet doc_pdf">
|
<BOUCLE_pdf(DOCUMENTS){id_objet}{objet}{mode=document}{extension=pdf}{statut in prop,prepa,publie}{par rang_lien}>
|
||||||
|
<div id="id-#ID_DOCUMENT" class="doc_article doc_objet doc_pdf]">
|
||||||
<div class="vignette_doc">
|
<div class="vignette_doc">
|
||||||
<a href="#URL_DOCUMENT" title="Ouvrir le document" class="" download="[(#FICHIER|basename)]">
|
<a href="[(#URL_DOCUMENT)]" title="Ouvrir le document" class="" download="[(#FICHIER|basename)]">
|
||||||
#LOGO_DOCUMENT{apercu}
|
[(#LOGO_DOCUMENT{apercu})]
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="infos_doc">
|
<div class="infos_doc">
|
||||||
|
@ -100,40 +74,5 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</BOUCLE_pdf>
|
</BOUCLE_pdf>
|
||||||
|
|
||||||
<BOUCLE_autres(DOCUMENTS){id_objet}{objet}{mode=document}{statut in prop,prepa,publie}{par rang_lien}{doublons}>mode2: #MODE
|
|
||||||
<div id="id-#ID_DOCUMENT" class="doc_article doc_objet">
|
|
||||||
<div class="vignette_doc">
|
|
||||||
<a href="#URL_DOCUMENT" title="Ouvrir le document" class="" download="[(#FICHIER|basename)]">
|
|
||||||
#LOGO_DOCUMENT{apercu}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="infos_doc">
|
|
||||||
<div class="bloc_titres">
|
|
||||||
[<div class="titre_doc #EDIT{titre}" title="Editer le titre">(#TITRE|sinon{[(#AUTORISER{modifier, #ENV{objet}, #ENV{id_objet}})<i class="fa fa-edit"></i>]})</div>]
|
|
||||||
<div class="fichier_doc">[(#FICHIER|basename)]</div>
|
|
||||||
</div>
|
|
||||||
[(#AUTORISER{modifier, #ENV{objet}, #ENV{id_objet}})
|
|
||||||
<a class="fr ajax nocache nohistory btn btn_poubelle"
|
|
||||||
href="[(#URL_ACTION_AUTEUR{bigform_supprimer_doc, [(#ID_DOCUMENT)]-[(#ENV{id_objet})]-[(#ENV{objet})], #SELF})]"
|
|
||||||
onClick="return confirm('Confirmer la suppression de ce document ?');"
|
|
||||||
title="Supprimer le document">
|
|
||||||
<i class="fa fa-trash red"></i>
|
|
||||||
</a>
|
|
||||||
]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</BOUCLE_autres>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
jQuery(function() {
|
|
||||||
$('.valider_bigup').css('display','none');
|
|
||||||
$('input.bigup').bigup({}, {
|
|
||||||
complete: function(){
|
|
||||||
console.log("on valide [(#ENV{objet})]_[(#ENV{id_objet})]");
|
|
||||||
$(this).parents('form').submit();
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
]
|
]
|
||||||
<B_fichiers>
|
<B_fichiers>
|
||||||
<div class='bigup_fichiers fichiers_[(#ENV{nom}|concat{#ENV{multiple}|=={oui}|?{\[\]}}|bigup_nom2classe)]'>
|
<div class='bigup_fichiers fichiers_[(#ENV{nom}|concat{#ENV{multiple}|=={oui}|?{\[\]}}|bigup_nom2classe)]'>
|
||||||
<BOUCLE_fichiers(DATA){source tableau, #FICHIERS|bigup_lister_fichiers{#ENV{nom},#ENV{multiple}}}>
|
<BOUCLE_fichiers(DATA){source table, #FICHIERS|bigup_lister_fichiers{#ENV{nom},#ENV{multiple}}}>
|
||||||
<div class='fichier'>
|
<div class='fichier'>
|
||||||
<div class='description'>
|
<div class='description'>
|
||||||
[(#VALEUR{bigup/vignette/data}|oui)
|
[(#VALEUR{bigup/vignette/data}|oui)
|
||||||
|
@ -36,20 +36,21 @@
|
||||||
<span class='name'><strong>#NAME</strong></span>
|
<span class='name'><strong>#NAME</strong></span>
|
||||||
<span class='size'>[(#SIZE|taille_en_octets)]</span>
|
<span class='size'>[(#SIZE|taille_en_octets)]</span>
|
||||||
</div>
|
</div>
|
||||||
|
[(#ENV{mode}|=={liste}|non)
|
||||||
<div class="html_titre">
|
<div class="html_titre">
|
||||||
<label><:bigform:html_titre:><input type="text" value="" name="html_titre\[\]"/></label>
|
<label><:bigform:html_titre:> <input type="text" value="" name="html_titre\[\]"/></label>
|
||||||
<input type="hidden" value="#NAME" name="html_ordre\[\]"/>
|
<input type="hidden" value="#NAME" name="html_ordre\[\]"/>
|
||||||
</div>
|
</div>
|
||||||
<div class='actions'>
|
<div class='actions'>
|
||||||
<button class='submit' type='submit'
|
<button class='submit' type='submit'
|
||||||
name='bigup_enlever_fichier' value="#VALEUR{bigup/identifiant}"
|
name='bigup_enlever_fichier' value="#VALEUR{bigup/identifiant}"
|
||||||
onclick="jQuery(this).parents('form').find('input,textarea,select').filter('[required]').prop('required', false); return true;">
|
onclick="jQuery(this).parents('form').find('input,textarea,select').filter('\[required\]').prop('required', false); return true;">
|
||||||
<:bigup:bouton_enlever:>
|
<:bigup:bouton_enlever:>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
]
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</BOUCLE_fichiers>
|
</BOUCLE_fichiers>
|
||||||
</div>
|
</div>
|
||||||
</B_fichiers>
|
</B_fichiers>
|
||||||
|
|
||||||
|
|
23
lang/bigform_en.php
Normal file
23
lang/bigform_en.php
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
|
||||||
|
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||||
|
|
||||||
|
// B
|
||||||
|
'bigform_titre' => 'BigForm',
|
||||||
|
|
||||||
|
// C
|
||||||
|
|
||||||
|
// E
|
||||||
|
'envoyer' => 'Submit',
|
||||||
|
|
||||||
|
//H
|
||||||
|
'html_titre' => 'Title',
|
||||||
|
|
||||||
|
// T
|
||||||
|
'titre_page_configurer_bigform' => 'Configure BigForm',
|
||||||
|
);
|
|
@ -11,13 +11,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||||
'bigform_titre' => 'BigForm',
|
'bigform_titre' => 'BigForm',
|
||||||
|
|
||||||
// C
|
// C
|
||||||
'cfg_exemple' => 'Exemple',
|
|
||||||
'cfg_exemple_explication' => 'Explication de cet exemple',
|
// E
|
||||||
'cfg_titre_parametrages' => 'Paramétrages',
|
'envoyer' => 'Envoyer',
|
||||||
|
|
||||||
//H
|
//H
|
||||||
'html_titre' => 'Titre',
|
'html_titre' => 'Titre',
|
||||||
|
|
||||||
// T
|
// T
|
||||||
'titre_page_configurer_bigform' => 'BigForm',
|
'titre_page_configurer_bigform' => 'Configurer BigForm',
|
||||||
);
|
);
|
||||||
|
|
11
paquet.xml
11
paquet.xml
|
@ -1,12 +1,12 @@
|
||||||
<paquet
|
<paquet
|
||||||
prefix="bigform"
|
prefix="bigform"
|
||||||
categorie="edition"
|
categorie="edition"
|
||||||
version="1.1.4"
|
version="1.4.5"
|
||||||
etat="dev"
|
etat="dev"
|
||||||
compatibilite="[3.2.5;3.3.*]"
|
compatibilite="[4.1.0;4.*]"
|
||||||
logo="prive/themes/spip/images/bigform-64.png"
|
logo="prive/themes/spip/images/bigform-64.png"
|
||||||
documentation=""
|
documentation=""
|
||||||
schema="1.0.4"
|
schema="1.0.5"
|
||||||
>
|
>
|
||||||
|
|
||||||
<nom>BigForm</nom>
|
<nom>BigForm</nom>
|
||||||
|
@ -17,9 +17,14 @@
|
||||||
<licence>GNU/GPL</licence>
|
<licence>GNU/GPL</licence>
|
||||||
|
|
||||||
<necessite nom="bigup" compatibilite="[1.0.0;[" />
|
<necessite nom="bigup" compatibilite="[1.0.0;[" />
|
||||||
|
<necessite nom="verifier" compatibilite="[3.1.0;[" />
|
||||||
|
|
||||||
<pipeline nom="autoriser" inclure="bigform_autorisations.php" />
|
<pipeline nom="autoriser" inclure="bigform_autorisations.php" />
|
||||||
<pipeline nom="declarer_tables_principales" inclure="base/bigform.php" />
|
<pipeline nom="declarer_tables_principales" inclure="base/bigform.php" />
|
||||||
|
|
||||||
|
<pipeline nom="post_edition" inclure="bigform_pipelines.php" />
|
||||||
|
|
||||||
|
<pipeline nom="bigform_verifier" action='' />
|
||||||
|
<pipeline nom="bigform_post_insertion" action='' />
|
||||||
|
|
||||||
</paquet>
|
</paquet>
|
||||||
|
|
13
retailler_img.html
Normal file
13
retailler_img.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<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})]
|
||||||
|
[(#FICHIER|image_recadre{512:300,-,focus}|adaptive_images{512})]
|
||||||
|
</BOUCLE_documents>
|
Loading…
Add table
Reference in a new issue