No Branch/Tag Specified
phpunit
v3
master
dev/issue_252_encapsuler_noms
issue_262_statuts_additionnels
issue261_etoile_message_erreur
issue24_data_choix_autre
fieldset_simplifier_conteneur
php8
conteneur_inline
explication_simplifier_conteneur
constructeur_glisser_deposer
issue_48
issue99
no_submit
v1
v2
v3.54.9
v4.0.4
v3.41.3
v4.8.0
v4.7.1
v4.7.0
v4.6.1
v4.6.0
v4.5.1
v4.5.0
v4.4.1
v4.4.0
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.3
v4.2.1
v4.2.0
v4.1.0
v4.0.3
v4.0.2
v3.9.1
v3.9.0
v3.8.9
v3.8.8
v3.8.7
v3.8.6
v3.8.5
v3.8.4
v3.8.3
v3.8.2
v3.8.11
v3.8.10
v3.8.1
v3.8.0
v3.7.2
v3.7.1
v3.7.0
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.56.6
v3.56.5
v3.56.4
v3.56.3
v3.56.2
v3.56.1
v3.56.0
v3.55.4
v3.55.3
v3.55.2
v3.55.1
v3.55.0
v3.54.8
v3.54.7
v3.54.6
v3.54.4
v3.54.2
v3.54.10
v3.54.1
v3.54.0
v3.53.3
v3.53.2
v3.53.1
v3.53.0
v3.52.2
v3.52.1
v3.52.0
v3.51.8
v3.51.7
v3.51.6
v3.51.5
v3.51.4
v3.51.3
v3.51.2
v3.51.1
v3.51.0
v3.50.2
v3.50.1
v3.50.0
v3.5.1
v3.5.0
v3.49.1
v3.49.0
v3.48.2
v3.48.1
v3.48.0
v3.47.3
v3.47.2
v3.47.1
v3.47.0
v3.46.0
v3.45.2
v3.45.1
v3.45.0
v3.44.1
v3.44.0
v3.43.5
v3.43.4
v3.43.3
v3.43.2
v3.43.0
v3.42.8
v3.42.7
v3.42.6
v3.42.5
v3.42.2
v3.42.1
v3.42.0
v3.41.6
v3.41.5
v3.41.0
v3.40.1
v3.40.0
v3.4.0
v3.39.0
v3.38.2
v3.38.0
v3.37.1
v3.37.0
v3.36.2
v3.32.0
v3.31.3
v3.31.2
v3.31.1
v3.31.0
v3.30.2
v3.30.1
v3.30.0
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.29.1
v3.29.0
v3.28.9
v3.28.8
v3.28.7
v3.28.6
v3.28.5
v3.28.4
v3.28.3
v3.28.2
v3.28.16
v3.28.15
v3.28.14
v3.28.13
v3.28.12
v3.28.11
v3.28.10
v3.28.1
v3.28.0
v3.27.7
v3.27.6
v3.27.5
v3.27.4
v3.27.3
v3.27.2
v3.27.1
v3.27.0
v3.26.1
v3.26.0
v3.25.1
v3.25.0
v3.24.0
v3.23.4
v3.23.3
v3.23.2
v3.23.1
v3.23.0
v3.22.1
v3.22.0
v3.21.4
v3.21.3
v3.21.2
v3.21.1
v3.21.0
v3.20.0
v3.2.1
v3.2.0
v3.19.6
v3.19.5
v3.19.4
v3.19.3
v3.19.2
v3.19.1
v3.19.0
v3.18.9
v3.18.8
v3.18.7
v3.18.6
v3.18.5
v3.18.4
v3.18.3
v3.18.2
v3.18.14
v3.18.13
v3.18.12
v3.18.11
v3.18.10
v3.18.1
v3.18.0
v3.17.0
v3.16.1
v3.16.0
v3.15.0
v3.14.0
v3.13.4
v3.13.3
v3.13.2
v3.13.1
v3.13.0
v3.12.7
v3.12.6
v3.12.5
v3.12.4
v3.12.3
v3.12.2
v3.12.1
v3.12.0
v3.11.2
v3.11.1
v3.11.0
v3.10.1
v3.10.0
v3.1.0
v3.0.0
v2.9.0
v2.8.1
v2.8.0
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.14
v2.7.13
v2.7.12
v2.7.11
v2.7.10
v2.7.1
v2.7.0
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.30
v2.5.3
v2.5.29
v2.5.28
v2.5.27
v2.5.26
v2.5.25
v2.5.24
v2.5.23
v2.5.22
v2.5.21
v2.5.20
v2.5.2
v2.5.19
v2.5.18
v2.5.17
v2.5.16
v2.5.15
v2.5.14
v2.5.13
v2.5.12
v2.5.11
v2.5.10
v2.5.1
v2.5.0
v2.4.0
v2.3.1
v2.3.0
v2.28.0
v2.27.0
v2.26.9
v2.26.8
v2.26.7
v2.26.6
v2.26.5
v2.26.4
v2.26.3
v2.26.2
v2.26.10
v2.26.1
v2.26.0
v2.25.4
v2.25.3
v2.25.2
v2.25.1
v2.25.0
v2.24.3
v2.24.2
v2.24.1
v2.24.0
v2.23.6
v2.23.5
v2.23.4
v2.23.3
v2.23.2
v2.23.1
v2.23.0
v2.22.0
v2.21.4
v2.21.3
v2.21.2
v2.21.1
v2.21.0
v2.20.1
v2.20.0
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.19.9
v2.19.8
v2.19.7
v2.19.6
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19.0
v2.18.9
v2.18.8
v2.18.7
v2.18.6
v2.18.5
v2.18.4
v2.18.3
v2.18.24
v2.18.23
v2.18.22
v2.18.21
v2.18.20
v2.18.2
v2.18.19
v2.18.18
v2.18.17
v2.18.16
v2.18.15
v2.18.14
v2.18.13
v2.18.12
v2.18.11
v2.18.10
v2.18.1
v2.18.0
v2.17.1
v2.17.0
v2.16.2
v2.16.1
v2.16.0
v2.15.2
v2.15.1
v2.15.0
v2.14.8
v2.14.7
v2.14.6
v2.14.5
v2.14.4
v2.14.3
v2.14.2
v2.14.1
v2.14.0
v2.13.0
v2.12.0
v2.11.2
v2.11.1
v2.11.0
v2.10.0
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v1.42.5
v1.42.11
No Label
amélioration
bug
doublon
help wanted
invalide
question
refusé
Milestone
Set milestone
Clear milestone
No items
No Milestone
Assignees
Assign users
Clear assignees
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: spip-contrib-extensions/saisies#89
Reference in New Issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
On relira au préalable https://contrib.spip.net/Fonctionnement-technique-de-la-verification-des#Cote-PHP
Pb 1 pouvoir avoir un afficher_si dépendant d'une saisie dans une étape précédente
Côté évaluation en JS
saisies_afficher_si_js_defaut()
>$saisie_form
devrait être l'ensemble des saisies, par étapeCôté évaluation en PHP
Idem. Les valeurs des étapes précédentes étant disponible via
_request
, ca devrait passer crêmePB 2 Pouvoir conditionner une étape par afficher_si
Ca c'est relativement facile, suffit juste d'appeler la fonction php
saisies_evaluer_afficher_si()
avant de balancer l'étape.Ça dépend :p
On ne "balance pas l'étape", leur nombre est déclarée au départ dans le charger. Donc si ya des conditions pas remplies, faut pas déclarer la même chose.
https://git.spip.net/spip-contrib-extensions/saisies/src/branch/master/saisies_pipelines.php#L197
Ou bien faut laisser le même nombre (histoire que l'étape 4 reste toujours l'étape 4) mais faut arriver à ce que ça passe direct à la 5 si ceci-cela, sauf que ça dans l'API multi-étapes du core je sais pas du tout si on a la main dessus.
Je dirais l'option 2. Et si côté formulaire on peut dire "aller à une étape" en indiquant un numéro d'étape (cf message de cerdic ici https://core.spip.net/issues/4699), bah j'imagine que du coup il doit y avoir une fonction qui permet juste de trouver l'étape à utiliser. Au pire du pire, on fait un `set_request('aller_a_etape', n+1); si jamais on saute l'étape n. Enfin c'est ce que je dirais spontanément sans fouiller le core...
Il s'agit pas de savoir calculer la bonne étape où aller. Ce que je dis c'est qu'on a pas forcément la main dans le core (par un pipeline à priori si ça existait) sur cette décision de où aller, de quoi afficher ensuite.
Concrètement l'étape demandée explicitement (si ça existe) est récupérée avant tout pipeline :
https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/cvt_multietapes.php#L224
Alors que la méthode ancienne
_retour_etape_N
est elle appelée après le pipeline :https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/cvt_multietapes.php#L253
Il faudrait donc :
Si je reprend le problème 1, a savoir du afficher_si cross etape, l'un des soucis que j'ai c'est qu'à chaque étape, je n'ai que la liste des saisies courantes.
Alors qu'ilfaut l'ensemble des carac des saisies (notamment pour distinguer saisies fichiers des autres) pour pouvoir generer un afficher_si.
Je vois pas comment on peut couper à modifier la syntaxe de
#GENERER_SAISIES
.#GENERER_SAISIES{#ENV{saisies},<etape>}
#GENERER_SAISIES{<saisies_etape_courante>,<saisies_toutes>}
La première syntaxe a plutot ma préférence.
Je dirais donc plutôt le 1, mais il n'y a pas à prévoir d'arg en plus :
#GENERER_SAISIES{#ENV{saisies},etape=#ENV{_etape}}
(aucun #GET donc)Et c'est dans inc/generer_saisies qu'il faudra refaire un lister_par_etapes au début, pour n'afficher que les saisies de l'étape. Et par contre dans le #ENV envoyé à generer_html() la clé "saisies" aura donc bien tout. Par contre ya que pour le cas
#ENV{_env}
que là ça n'y serait pas, mais je ne sais plus pour quels cas c'est utilisé…Ce qui m'embête aussi c'est de lancer plusieurs fois lister_par_etapes (là déjà 2 fois actuellement, et 3 fois avec cette modif), ça refait les mêmes choses à chaque fois.
on peut avoir des arguments nommés sur des balises ? en dehors de
#SAISIE
s'entend. (et je ne sais pas d'où tu sorts de GET putatif, mais peu importe puisqu'il y est pas :)Dans
inclure/voir_saisies.html
(donc pas concerné à priori)inclure/generer_saisies.html
mais je ne sais pas quand et où ce_env
est censé arrivé jusqu'à là (mais si c'est l'environnement, il doit bien contenur#ENV{saisies}
aussi non ? donc avec toutes les saisiesformulaires/inc-generer_saisies_configurables.html
, mais pareil je ne sais pas d'où cela vient :)Là comme cela je vois trois pistes
En fait pour la partie "Afficher si entre saisie d'étape différente", il y a vraiment que ce point à résoudre, vu que toutes les infos sur les étapes précédentes sont stockés en hidden à chaque étape, et que, depuis la réécriture d'afficher_si JS, peut importe si c'est en hidden, radio, input ou autre.
Les balises #SAISIE et #GENERER_SAISIES ne sont que des redirections vers INCLURE depuis le début donc oui on peut avoir des arguments nommés. C'est même marqué dans le code :)
https://git.spip.net/spip-contrib-extensions/saisies/src/branch/master/balise/generer_saisies.php#L21
Je disais aucun #GET pas par rapport à toi, mais c'est bien des #GET changé en amont utilisé dans le code actuel. Donc là on ne modifierait rien en amont, mais uniquement en aval.
Pour
_env
je ne me demandais pas tant où c'est utilisé, mais où c'est rempli pour quels cas. Et c'est donc dans saisies_afficherhttps://git.spip.net/spip-contrib-extensions/saisies/src/branch/master/inc/saisies_afficher.php#L149
Mais de ce que je me souviens c'est pour l'affichage des sous saisies quand ya des conteneurs comme fieldset. Enfin bon à tester voir si ça pète rien juste avec ce que je disais plus haut…
Pour ce qui est des appels multiples : oui on a besoin de passer les saisies listées par étape car c'est utilisé pour le chemin notamment. Ça utilise des infos de chaque fieldset racine trouvés, dans tous les cas faut avoir les saisies complètes (et là ça utilise que le label/legend, mais on peut très bien imaginer qu'une personne surcharge ce chemin pour mettre le titre + l'explication ou encore le nombre de sous-saisies à remplir pour chacune des étapes genre "Étape 1 (45 champs)", etc : on doit laisser les infos complètes).
Je pense pas qu'on puisse fait un static, ya pas d'identifiant unique pour stocker et puis ça peut changer suivant des pipelines etc. Par contre une fois découpé en étapes, on pourrait le stocker dans une clé dédiée, càd à la fois envoyer
_saisies
et_saisies_par_etapes
(seulement si existantes) et du coup l'avoir déjà sous la main, et on le passe à #GENERER_SAISIES aussi. Et dans le squelette de generer_saisies : si ya "etape" demandé, on utilisesaisies_par_etape
si déjà présent dans l'environnement, sinon seulement en fallback à tout hasard on le reconstruit avecsaisies
.Ca me parait cohérent tout ca.
Mais en lisant le code de generer_saisies, je vois "
#INCLURE{fond=inclure/generer_saisies,env,saisies=#TABLEAU_DE_SAISIES}
"Du coup le env est deja transmis, donc a priori pas besoin de modifier la syntaxe de
#GENERERER_SAISIES
, faut juste modifier son code. Enfin à tester concrètement.Par contre je reviens sur ce que j'ai dit concerant le code JS, il faudrat bien generer un code JS différents (juste false ou true) pour les saisies des étapes précédentes, car les valeurs sont stockés de manière chiffrés dans les hidden.
J'ai testé, pour moi ça a l'air de bien fonctionner, tu penses qu'on peut merger ainsi que la branche saisies_issue89 de formidable ?
j'aimerais mieux éviter pour l'instant pour deux raisons :
Mais donc dès que la 3.2.12 sera sortie, on pourra merger et releaser
Ok, merci du retour.