Commit Graph

38 Commits (master)

Author SHA1 Message Date
Maïeul 4da796fbac Début pour le passage du stockage de `serialize` à `json_encode()`.
- Le filtre `|tenter_unserialize` est déprécié.
- Il est remplacé par `|formidable_deserialize`.
- Ce filtre peut recevoir au choix :
  * Un tableau, qu'il retourne tel quel
  * Un tableau serializé via `json_encode`
  * Un tableau serializé via `serialize`
- Dans les deux dernier cas, il renvoie la version deserializé, en cas
de réussite, sinon l'argument passé.

Exemple

````
include_spip('formidable_fonctions');
'filtre');
$a = ['a' => 'a'];

$a = json_encode($a);
var_dump($a);

$a = formidable_deserialize($a);
var_dump($a);

$a = serialize($a);
var_dump($a);

$a = formidable_deserialize($a);
var_dump($a);

$a = serialize($a).'plop';//Serialisation corrompu
var_dump($a);

$a = formidable_deserialize($a);
var_dump($a);
````

Ainsi, pas besoin de convertir tous les formulaires de `serialize`  à
`json_encode`  à la mise à jour du plugin formidable :
on peut le faire au fur à mesure qu'on modifie les champs/traitements
d'un formulaire.

On utilisera donc ce filtre à chaque fois que l'on veut déchiffrer
depuis la BDD :
- * traitements d'un formulaire
- * saisies d'un formulaire
- * réponse d'un champ multivalué (ex: checkbox)
1 year ago
Cerdic 2322d0c6a0 Complement de e860673 et 7ecacee pour eviter une erreur à la compilation dans le public quand la fonction statut_titre n'est pas chargée 1 year ago
Maïeul fbc1537623 Il existait un pipeline `formidable_affiche_resume_reponse`, utilisé
uniquement par le plugin `formidable_quizz`, actuellement non maintenu
et non publié.

Ce pipeline n'était pas générique, car le remplacement des `@@` ne
concerne pas que l'affichage résumé des réponses, mais aussi en
différent endroit (message de retour par exemple).

On créé deux pipelines plus générique :
- `formidable_pre_raccourcis_arobases`
- `formidable_post_raccourcis_arobases`

On supprime donc le pipeline `formidable_affiche_resume_reponse`.

On simplifie par ailleurs la signature de la fonction
`formidable_raccourcis_arobases_2_valeurs_champs()`.
1. En supprimant les deux derniers arguments passés par références (`$valeurs` et
`$valeurs_libellees`).
La seule raison de ce passage par référence, qui n'était utilisé sur
toute la zone que dans **UN** appel à la fonction, était précisement
de passer les valeurs libellées en arguments du pipeline `formidable_affiche_resume_reponse`. Puisqu'on supprime ce pipeline, plus besoin de ces valeurs.
2. On regroupe tout les paramètres en troisième arguments, dans
$options, tout en assurant une rétrocompatibilité (pas d'autre usage de
`formidable_raccourcis_arobases_2_valeurs_champs()` sur la zone, mais j'ai
du code perso qui l'utilise, et il n'est pas impossible que d'autres
fassent de même.
3. On ajoute une option `'contexte'` pour indiquer le contexte d'appel
de `formidable_raccourcis_arobases_2_valeurs_champs`, ce qui permet de
remplacer utilement le pipeline `formidable_affiche_resume_reponse`.
1 year ago
Maïeul 2a53782537 Eviter une erreur du type
```
Erreur d’exécution ../plugins-dist/revisions/prive/objets/liste/versions.html | File […]/plugins/formidable/formidable_fonctions.php Line 280 : Argument 2 passed to generer_titre_formulaires_reponse() must be of the type array, null given, called in […]/ecrire/inc/filtres.php on line 4752
```
A priori il faudrait corriger plutot l'appel en amont, mais pour l'heure
il faut que ca sorte.
1 year ago
Maïeul 88b7fb6866 L'équivalent du titre d'une réponse, c'est son résumé.
On mappe dong g`enerer_titre_formulaires_reponse()` dessus. C'est utilisée
notamment pour l'affichage des révisions (si champs extras sur
formulaire).
1 year ago
Maïeul 5d51e54df4 Fix différents warning sur les
`formidable_raccourcis_arobases_2_valeurs_champs` pour les formulaires
avec des fieldsets et des explications.
2 years ago
Maïeul fc35a7f41c calculer_voir_reponses : prendre en compte le cas des saisies fichiers, où il faut installer le lien de téléchargement 3 years ago
Maïeul 7757e8319b On revient totalement sur la manière de gérer les crayons pour des
champs qui n'existeraient pas encore en base pour une réponse donnée.

Partant du constat
1. Que lorsque formidable reçoit une réponse vide (soit par
afficher_si, soit par non remplissage) pour un champ donné, il insère ce
champ en base quand même.
2. Que les seuls cas où le champ non rempli n'est pas présent en base
pour une réponse donnée, c'est quand il a été ajouté dans le formulaire
après l'enregistrement de la réponse.

Il ne paraît pas gênant lorsqu'on appel un crayon sur un champ
inexistant en base pour une réponse donnée de le créer en base, cela
revient juste à faire 1.
3 years ago
Maïeul 6f7d0d2fe1 crayons sur un champ inexistant en bas car ajouté après coup sur une réponse : trouver correctement la saisie. Reste maintenant à trouver comment enregistrer la réponse en base 3 years ago
Maïeul 394e62a879 recuperer fichier : si extension en majuscule, passer en minuscule, pour trouver la bonne vignette 3 years ago
Maïeul 69fc0bc7db ne pas essayer de produire une icone si pas de fichier 3 years ago
maieul@maieul.net 802c2dad54 notice PHP 3 years ago
maieul@maieul.net b1b4832566 Correction suite à r118367. Je m'étais trompé sur les statiques dans affiche_resume_reponse() 4 years ago
maieul@maieul.net d6dbb79bcf Formidable_raccourcis_arobases_2_valeurs_champs() peut désormais prendre
les valeurs n'ont pas dans _request() mais dans l'enregistrement d'une
réponse. On peut donc facilement utiliser le raccourci @@ pour afficher
une présentation particulière d'une réponse donnée (cas d'usage : un
plugin perso pour une application métier).

Du coup on fait appel à cette fonction pour affiche_resume_reponse() en
gardant la compatibilité ascendante de ce qui est passé au pipeline
homonyme (dont je doute que qui que ce soit l'utilise, mais c'est une
autre affaire).
4 years ago
maieul@maieul.net e970a30bb2 oups, lorsqu'on ajoute des arguments à une fonction, fusse-t-elles interne, il faut vérifier tout ses appels 4 years ago
maieul@maieul.net 7f285e72f0 utiliser les bonnes saisies si on est sur une base externes 4 years ago
maieul@maieul.net e1672e7ede VOIR_REPONSE: tenir compte du serveur sql sur lequel on boucle (Florence Henry, contrib) 4 years ago
maieul@maieul.net 8b6d550d24 Revert r112205 "trailing spaces"
n'était pas une correction de trailing spaces, mais un
changement de casse ! J'ignore diable sur quelle touche j'ai cliqué pour
provoquer cela.
Mea culpa
5 years ago
maieul@maieul.net 306b1b1497 correction sur les retours lignes et tutti quanti dans la fonction de nettoyage de la vue 5 years ago
maieul@maieul.net de815b03ab amélioration drastique de formidable_tableau_valeurs_saisies():
- suppression d'un code mort sur test de valeur brute ou pas brute,
puisque par défaut renvoyait les deux, le test avait lieu en amont
- pour déterminer la valeur humaine, on se base désormais sur
saisie-vues/xxx, ce qui assure d'avoir une valeur humaine aussi lorsque
c'est prévu mais qu'il n'y a pas d'argument datas à la saisie,
typiquement pour les saisies de type evenements (plugin agenda)
5 years ago
maieul@maieul.net f718e40216 trailing spaces 5 years ago
maieul@maieul.net 6a9924277a #VOIR_SAISIE{input_1,edit} permet de générer le code crayons correspondant 5 years ago
Maïeul Rouquette 2d3f5b1886 #VOIR_REPONSE : nouvel option : label, pour avoir juste le label 5 years ago
maieul@maieul.net be3b5fa4a2 L'option qui permet de définir un résumé personnalisé pour les réponses
enregistrées correspond au seul traitement "enregistrement".
On déplace donc la config dans les réglages de ce traitement.
La migration des réglages est prévues lors de la mise à jour du plugin.
5 years ago
maieul@maieul.net a090482991 lorsqu'on envoie une image, la vue affiche la miniature de l'image 6 years ago
kent1@arscenic.info b2063cf347 PSR SPIP 6 years ago
kent1@arscenic.info 4446ea0a51 PSR SPIP 6 years ago
maieul@maieul.net 1b7dfc004b notices php en moins 7 years ago
maieul@maieul.net fae93c8f47 refactorisation 7 years ago
maieul@maieul.net 825288a3f5 notices php en moins 7 years ago
maieul@maieul.net 410f31bf49 nom plus clair 7 years ago
maieul@maieul.net ccaa81e1e6 finalement il faut utiliser une action securisée, qui renvoie le document 7 years ago
maieul@maieul.net 711096ad9d modifier legerement les paramètres passés à la vue de saisie fichiers, pour ajouter l'url de l'action 7 years ago
kent1@arscenic.info d7e9bcc7f4 PSR et optimisation des images 7 years ago
cedric@yterium.com 6a5a05a9e3 Revision de la fonction affiche_resume_reponse introduite par r84737 pour lui faire interpreter les champs.
C'est un peu lourd de passer par saisie pour reformater ensuite le HTML en texte brut mais faisons au plus simple.
On ajoute un pipeline qui permet de faire des petites mises en forme perso sur les champs au besoin (ou sur l'affichage de la reponse).
9 years ago
cedric@yterium.com c375116188 Les listes de reponses sont par defaut non signifiantes car n'affichant aucune autre information que la date de saisie et l'IP source.
On permet de configurer pour chaque formulaire une chaine qui sera utilisee pour afficher un resume de chaque reponse (les champs @input_1@.. etant remplaces par leur valeur).
Ceci rend les listes de reponse beaucoup plus utilisables.
9 years ago
rastapopoulos@spip.org ed83c3b8b7 Une nouvelle balise qui sera peut-être utile à celleux qui veulent afficher leurs réponses enregistrées.
#VOIR_REPONSE{champ} à utiliser dans une boucle (FORMULAIRES_REPONSES).

Par défaut ça afficher la même chose que #VOIR_SAISIE. Mais on peut faire des variantes pour ne sortir que la valeur (en HTML mais sans le label et l'entourage) ou que la valeur brute dans la base.

#VOIR_REPONSE{selection_1, brut}
#VOIR_REPONSE{selection_1, valeur_uniquement}

En troisième argument on peut aussi passer la chaîne qu'on veut afficher pour les champs qui n'ont pas de réponse (champ vide). Sinon c'est le truc par défaut "Sans réponse". On peut y mettre la chaîne vide si on ne veut rien.
9 years ago
marcimat@rezo.net 4ae2d584e6 Un peu plus de migration de Formidable vers SPIP 3 :
- paquet.xml et administration nouvelle mode
- un peu de phpdoc.
11 years ago