[spip ↪ refactor_idiomes] 20 commits

spip/spip | 20 commits

Par Cerdic, le 20 avril 2024 à 16h15min :

fix: eviter une indéfinie

Modifié
ecrire/public/phraser_html.php

Détails : fix: eviter une indéfinie (78857623) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

refactor: optimisation, quand l’idiome est simple on peut directement creer le Spip\Compilateur\Noeud\Champ plutot que de lancer un parsing compliqué

Modifié
ecrire/public/phraser_html.php

Détails : refactor: optimisation, quand l'idiome est simple on peut directement creer le... (a4171059) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

fix: dans la syntaxe tableau en second argument, #TRAD peut recevoir des options au format tableau en troisième argument, qui seront passées à _T() (class, sanitize, ou force)

Modifié
ecrire/public/balises.php

Détails : fix: dans la syntaxe tableau en second argument, `#TRAD` peut recevoir des... (42d708c5) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

fix: la balise #TRAD peut prendre une syntaxe type inclure ou une syntaxe avec un tableau en second argument. La première est necessaire pour la transposition facile de la syntaxe <:...:> et la seconde est plus naturelle pour écriture directe,
par analogie avec _T()

Modifié
ecrire/public/balises.php

Détails : https://git.spip.net/spip/spip/-/commit/7c25eef791a950529bb1e5e9491eae89d7cbc55e

==============================
Par Matthieu Marcillaud, le 20 avril 2024 à 16h15min :

docs: phpdoc balise #TRAD

Modifié
ecrire/public/balises.php

Détails : docs: phpdoc balise `#TRAD` (229695ef) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

fix: il ne faut pas casser la chaine des $result en appelant phraser_arg() ou phraser_args() car ils en ont besoin si ils rappellent phraser_champs_exterieurs() qui voudra réinjecter un des champs.
Le bug était a priori là depuis longtemps mais on y passait jamais, et là tout a coup avec le refactoring des idiomes on tombe dedans…

Modifié
ecrire/public/phraser_html.php

Détails : fix: il ne faut pas casser la chaine des `$result` en appelant `phraser_arg()`... (8090a58b) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

chores: nettoyer les references aux objets spécifiques Idiome

Supprimé
ecrire/src/Compilateur/Noeud/Idiome.php
Modifié
ecrire/public/compiler.php
ecrire/public/interfaces.php
ecrire/public/phraser_html.php

Détails : chores: nettoyer les references aux objets spécifiques Idiome (a8aeee35) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

fix: quotes sur la chaine de langue quand on injecte un module par defaut

Modifié
ecrire/public/phraser_html.php

Détails : fix: quotes sur la chaine de langue quand on injecte un module par defaut (61ab0a57) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

fix: le remplacement de <:xxx:> par un #TRAD{xxx} génère parfois des bugs de compilation, on passe donc par des #PLACEHOLDER_IDIOME_xxxx sans arguments, qui sont la forme la plus simple des champs et ne posent pas de problème.
Le remplacement se fait ensuite a l’analyse des champs

Exemple de syntaxe qui passe avec une chaine de langue, mais pas quand la remplace par un #TRAD{xxx}, le phrasage echouant sur le <:accueil_site:> transformé en #TRAD{accueil_site}

[(#ENV{home,'non'}|=={oui}|?{
	<h1 class="spip_logo_site">[(#LOGO_SITE_SPIP|image_reduire{224,96})]#NOM_SITE_SPIP</h1>
	,
	<strong class="h1 spip_logo_site"><a rel="start home" href="#URL_SITE_SPIP/" title="<:accueil_site:>">[(#LOGO_SITE_SPIP
            |image_reduire{224,96})]#NOM_SITE_SPIP</a></strong>
	})]

Modifié
ecrire/public/phraser_html.php

Détails : fix: le remplacement de `<:xxx:>` par un `#TRAD{xxx}` génère parfois des bugs... (6ab91087) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

refactor: le parsing des idiomes <:ecrire:module:> qui intervenait tard dans le parsing des squelettes et empêchait de fait des écritures riches dans les arguments ou les filtres des idiomes est remplacé par un parsing classique d’une balise #TRAD
La prise en charge de la syntaxe historique est assurée par un pré-parsing sur le squelette, avant analyse des balises, pour transformer les écritures de type <:module:chaine{arg1=texte1,arg2=[(#BALISE)]}|filtre1{texte2,#BALISE}|filtre2:> en ecriture standard de balise
[(#TRAD{module:chaine,arg1=texte1,arg2=[(#BALISE)]}|filtre1{texte2,#BALISE}|filtre2)]
ce qui permet du coup toutes les syntaxes possibles dans les arguments et filtres des chaines de langue.

On note au passage que l’on maintient le support des curieuses et peu usitées écritures de type <:module:{=#ENV{chaine}}:> voire <:{=#ENV{chaineavecmodule}}:> qui permettaient des écritures avec chaine de langue dynamique.

Au passage le strtolower sur la chaine de langue disparait, ce qui traite donc aussi #2536

Modifié
ecrire/public/balises.php
ecrire/public/phraser_html.php

Détails : refactor: le parsing des idiomes `<:ecrire:module:>` qui intervenait tard dans... (565807c4) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

tests: tests unitaires pour les chaines de langue dans les squelettes, leurs variantes de syntaxe et une nouvelle balise #TRAD

Ajouté
ecrire/tests/Squelettes/Idiomes/IdiomesTest.php

Détails : tests: tests unitaires pour les chaines de langue dans les squelettes, leurs... (c171d195) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 avril 2024 à 16h15min :

refactor: generaliser les fonctions de memorisation/reinjection de placeholder de type balise, en permettant d’avoir des balises simples sans argument ni crochets

Modifié
ecrire/public/phraser_html.php

Détails : refactor: generaliser les fonctions de memorisation/reinjection de placeholder... (4524b866) · Validations · spip / spip · GitLab

==============================
Par Matthieu Marcillaud, le 17 avril 2024 à 11h57min :

docs(changelog): sur #5916

Modifié
CHANGELOG.md

Détails : docs(changelog): sur #5916 (25a43ffe) · Validations · spip / spip · GitLab

==============================
Par b_b, le 17 avril 2024 à 11h55min :

fix: éviter un débordement du contenu des explications dans les formulaires de l’espace privé

Fix: #5916

Modifié
prive/themes/spip/forms.css.html

Détails : fix: éviter un débordement du contenu des explications dans les formulaires de l'espace privé (a4b25854) · Validations · spip / spip · GitLab

==============================
Par Matthieu Marcillaud, le 17 avril 2024 à 11h51min :

docs(changelog): sur !5936

Modifié
CHANGELOG.md

Détails : docs(changelog): sur !5936 (e58551d0) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 17 avril 2024 à 11h51min :

fix: ne pas provoquer une fatale quand on essaye de securiser une action qui a été appelée sans arg ni hash

Modifié
ecrire/inc/securiser_action.php

Détails : fix: ne pas provoquer une fatale quand on essaye de securiser une action qui a... (069550d5) · Validations · spip / spip · GitLab

==============================
Par b_b, le 17 avril 2024 à 08h59min :

chore: retrait de variables inutilisées dans inc/notifications

utiliser directement include_spip() au lieu de charger_fonction()

Fix: #5052

Modifié
ecrire/inc/notifications.php

Détails : chore: retrait de variables inutilisées dans `inc/notifications` (292a7806) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 17 avril 2024 à 08h56min :

doc(changelog): fixes #4209

Modifié
CHANGELOG.md

Détails : doc(changelog): fixes #4209 (01ed95e1) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 17 avril 2024 à 08h55min :

fix: typage et PHPDoc

Modifié
ecrire/public/criteres.php

Détails : fix: typage et PHPDoc (b5139c5f) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 17 avril 2024 à 08h55min :

fix: ne pas perdre le pas de pagination quand on a aussi un critere {x,y} sur la boucle avec un des arguments calculé
On reserve la propriete total_parties à la pagination et on passe simplement en argument de la fonction calculer_parties() la valeur necessaire dans les 2 critères qui l’utilisent.

Attention, il y a 2 occurences d’appel de cette fonction sur la zone (criteres_suivant_precedent et aveline), mais la signature de la fonction calculer_parties() assure une transition douce
Refs: #4209

Modifié
ecrire/public/criteres.php

Détails : fix: ne pas perdre le pas de pagination quand on a aussi un critere `{x,y}`... (94294e6f) · Validations · spip / spip · GitLab