Virgule dans l'argument texte d'un critère (ex {where}
)
#5606
Open
opened 4 months ago by maieul
·
6 comments
master
dev/issue_5738_idiomes_actions
issue_5732_notices
issue_3432
issue_5690
4.2
master
new_cache
4.1
new_path
cut_boostrap
admin_plugin_affiche_milieu
issue_4845_next
debug_ecrire_fichier
refactor_idiomes
issue_5095
issue_5667
move-images-to-plugin-images
dev/issue_5560_dispositions_prive
4.0
3.2
dev/issue_4626_menu_squelettes
fix_issue_5454
issue_5427_bis
coquille_doc
issue_5344
dev/hasard_fixe
issue_4836
fix_modifier_login
dev/instituer_ergo
dev_infos_image
fix/valider_url_distante
issue_4946
3.1
boutons-danger
issue_4717
dev-sortable
issue_4705
dev/autoloader
issue_4678
issue_4101
3.0
2.1
2.0
1.9.2
1.9.1
1.8
v4.2.5
v4.1.12
v4.1.11
v4.2.4
v4.2.3
v4.2.2
v4.1.9
v4.0.11
v3.2.19
v4.2.1
v4.1.8
v4.0.10
v3.2.18
v4.2.0
v4.2.0-alpha2
v4.2.0-alpha
v4.1.7
v4.1.6
v4.0.9
v3.2.17
v4.1.5
v4.1.4
v3.2.16
v4.0.8
v4.1.3
v3.2.15
v4.0.7
v4.1.2
v4.0.6
v4.1.1
v4.1.0
v4.1.0-rc
v4.0.5
v3.2.14
v4.1.0-beta
v4.1.0-alpha
v3.2.13
v4.0.4
v4.0.3
v4.0.2
v3.2.12
v4.0.1
v4.0.0
v4.0.0-beta
v4.0.0-alpha
v3.2.11
v3.2.10
v3.1.15
v3.2.9
v3.1.14
v3.1.13
v3.2.8
v4.1.10
v3.2.7
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0-beta.3
v3.2.0-beta.2
v3.2.0-beta
v3.2.0-alpha.1
v3.2.0
v3.2-alpha.1
v3.1.9
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.12
v3.1.11
v3.1.10
v3.1.1
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc
v3.1.0-beta
v3.1.0-alpha
v3.1.0
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.28
v3.0.27
v3.0.26
v3.0.25
v3.0.24
v3.0.23
v3.0.22
v3.0.21
v3.0.20
v3.0.2
v3.0.19
v3.0.18
v3.0.17
v3.0.16
v3.0.15
v3.0.14
v3.0.13
v3.0.12
v3.0.11
v3.0.10
v3.0.1
v3.0.0-rc
v3.0.0-beta.2
v3.0.0-beta
v3.0.0-alpha.1
v3.0.0
v2.1.9
v2.1.8
v2.1.7
v2.1.6
v2.1.5
v2.1.4
v2.1.30
v2.1.3
v2.1.29
v2.1.28
v2.1.27
v2.1.26
v2.1.25
v2.1.24
v2.1.23
v2.1.22
v2.1.21
v2.1.20
v2.1.2
v2.1.19
v2.1.18
v2.1.17
v2.1.16
v2.1.15
v2.1.14
v2.1.13
v2.1.12
v2.1.11
v2.1.10
v2.1.1
v2.1.0
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.3
v2.0.26
v2.0.25
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.2
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.1
v2.0.0
v1.9.2+p
v1.9.2+o
v1.9.2+n
v1.9.2+m
v1.9.2+k
v1.9.2+j
v1.9.2+i
v1.9.2+h
v1.9.2+g
v1.9.2+f
v1.9.1+i
v1.8.3+b
Labels
Clear labels
Amélioration, nouvelle fonctionnalité
Ca ne fonctionne pas
Ce ticket est un doublon
En cours de traitement par le bureau
Ticket invalide
Ignoré, c'est comme Ca...
Apply labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité
APIs
authentification
base de données
bug
Ca ne fonctionne pas
code généré
compilo
css
divers
documentation
doublon
Ce ticket est un doublon
En cours
En cours de traitement par le bureau
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
Ticket invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
Ignoré, c'est comme Ca...
sécurité
traduction
à confirmer
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
En cours
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
à confirmer
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Set Project
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
5 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/spip#5606
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
génère
en squissant la virgule et le reste donc -> ca bug :)
contournement
Testé en SPIP 5 dev.
C'est déjà le cas depuis toujours non ? Une virgule dans un critère est obligatoirement un séparateur d'arguments, donc si t'as besoin d'une virgule faut forcément faire ton where dans un SET avant pour lui donner une chaine déjà fabriquée (et c'est souvent ce qui est fait dans la plupart des squelettes qui utilisent where)
oui cas depuis toujours. Mais cela me paraît une limite. Il me semble en tout cas qu'on devrait a minima pouvoir faire
{where "date_debut < DATE_ADD(NOW(),INTERVAL 1 HOUR)"}
parce que là je trouve cela assez contre intuitif de mettre du
#VAL
ou#GET
après le where...En tout cas c'est bien documenté cf "Préparation de la condition" dans https://www.spip.net/fr_article6396.html#where :)
Le rôle de la virgule semble assez incontournable... Ou alors avec un échappement ?
{where date_debut < DATE_ADD(NOW()\,INTERVAL 1 HOUR)}
C'est un cas particulier des contraintes de la syntaxe SPIP dans le passage des arguments. Selon les moments, d'autres contraintes sont frustrantes, comme par exemple la limitation dans l'emploi de balises en argument d'un filtre ou d'un critère.
Là tu as de la chance de n'avoir pas de balises dans ton critère de base, sinon il aurait fallu passer par un
|concat
.peut être oui qu'un échappement serait plus pertinent.
C'est le parsing des critères qui est défaillant, une virgule étant considéré comme un séparateur d'argument, qu'elle soit dans des guillemets ou non.
Et l'échappement des virgules n'est pas prévu non plus.
Sur la boucle
Le
$crit->param
vautOn pourrait y concaténer plusieurs texte successifs avec une virgule entre chaque, mais ça risque de casser d'autres trucs...
Virgule dans critère `{where}`to Virgule dans l'argument texte d'un critère (ex `{where}`) 1 week ago