[spip] 20 commits

spip/spip | 20 commits

Par Maïeul Rouquette, le 20 novembre 2024 à 11h28min :

remove: phraser_boucle_placeholder() et public_generer_boucle_placeholder()

Modifié
ecrire/public/phraser_html.php

Détails : remove: `phraser_boucle_placeholder()` et `public_generer_boucle_placeholder()` (d3c9f54f) · Validations · spip / spip · GitLab

==============================
Par Maïeul Rouquette, le 20 novembre 2024 à 11h22min :

docs(phpdoc): sur phraser_placeholder_memoriser_ou_reinjecter()

Modifié
ecrire/public/phraser_html.php

Détails : docs(phpdoc): sur `phraser_placeholder_memoriser_ou_reinjecter()` (e3223714) · Validations · spip / spip · GitLab

==============================
Par Maïeul Rouquette, le 20 novembre 2024 à 11h20min :

docs: commentaire redondant avec PHPdocs

Modifié
ecrire/public/phraser_html.php

Détails : docs: commentaire redondant avec PHPdocs (1215f2da) · Validations · spip / spip · GitLab

==============================
Par Maïeul Rouquette, le 20 novembre 2024 à 11h18min :

style: or||

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

Détails : style: `or` -> `||` (0f0ea8a5) · Validations · spip / spip · GitLab

==============================
Par Maïeul Rouquette, le 20 novembre 2024 à 11h17min :

docs(phpdoc): .....

Modifié
ecrire/public/balises.php

Détails : docs(phpdoc): `..` -> `...` (af7cb1ee) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

refactor: separer les 2 usages de #TRAD :

  • la balise #TRAD a usage public utilise une syntaxe avec #ARRAY en second argument et 3eme argument optionnel
  • la balise #TRAD_IDIOME a usage interne uniquement supporte la syntaxe type #INCLURE pour faciliter la conversion par le compilateur
    Refs: !5633

Modifié
ecrire/public/balises.php
ecrire/public/phraser_html.php
ecrire/tests/Squelettes/Idiomes/IdiomesTest.php

Détails : refactor: separer les 2 usages de `#TRAD` : (a67888c4) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

refactor: mutualiser le calcul du placeholder unique dans une fonction phraser_placeholder_hash()

Modifié
ecrire/public/phraser_html.php

Détails : refactor: mutualiser le calcul du placeholder unique dans une fonction `phraser_placeholder_hash()` (ebcc0cbb) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

refactor: 2 fonctions phraser_placeholder_memoriser() et phraser_placeholder_reinjecter() pour simplifier la lecture du code,
qui appellent la fonction interne phraser_placeholder_memoriser_ou_reinjecter() + retablir les fonctions phraser_boucle_placeholder() et public_generer_boucle_placeholder() en deprecated

Modifié
ecrire/public/phraser_html.php

Détails : refactor: 2 fonctions `phraser_placeholder_memoriser()` et... (83e6867d) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

fix: eviter une indéfinie

Modifié
ecrire/public/phraser_html.php

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

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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... (af78e911) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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... (42922312) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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 : fix: la balise `#TRAD` peut prendre une syntaxe type inclure ou une syntaxe... (d9557b30) · Validations · spip / spip · GitLab

==============================
Par Matthieu Marcillaud, le 20 novembre 2024 à 11h12min :

docs: phpdoc balise #TRAD

Modifié
ecrire/public/balises.php

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

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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()`... (c1e20b46) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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 (0e77c133) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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 (13ee5e18) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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... (ce7993ed) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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... (d80c3780) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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... (0220f2ed) · Validations · spip / spip · GitLab

==============================
Par Cerdic, le 20 novembre 2024 à 11h12min :

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... (55b243c2) · Validations · spip / spip · GitLab