Browse Source

feat: Permettre à la balise `#CHAMP_SQL` de retourner un champ d’une jointure explicitée via `#CHAMP_SQL{rubrique.titre}`

Fix: #5203
pull/5205/head
Matthieu Marcillaud 4 months ago
parent
commit
2f20ecd7a3
  1. 1
      CHANGELOG.md
  2. 15
      ecrire/public/references.php

1
CHANGELOG.md

@ -9,6 +9,7 @@
### Changed
- #5203 La balise `#CHAMP_SQL` peut expliciter une jointure tel que `#CHAMP_SQL{rubrique.titre}`
- #5156 Les squelettes des formulaires d’édition (`formulaires/editer_xxx.html`) ne reçoivent plus l’ensemble du contenu de `spip_meta` dans l’entrée d’environnement `config`. Utiliser `#CONFIG` dedans si besoin pour cela. Seules les données spécifiques au formulaire sont transmises (par les fonctions `xxx_edit_config()`)
- Ne pas insérer de balise de fermeture PHP dans le fichier `config/connect.php`
- #5082 Ne pas autoriser à refuser ses propres articles en tant que rédacteur ou rédactrice.

15
ecrire/public/references.php

@ -283,6 +283,21 @@ function index_tables_en_pile($idb, $nom_champ, &$boucles, &$joker) {
$joker = false; // indiquer a l'appelant
// la table de jointure est explicitement indiquée (rubrique.titre)
if (preg_match('/^(.*)\.(.*)$/', $nom_champ, $r)) {
[, $_table, $_nom_champ] = $r;
if ($cle = trouver_jointure_champ($_nom_champ, $boucles[$idb], [$_table])) {
$_alias = $cle . '_' . $_nom_champ;
return index_exception(
$boucles[$idb],
$desc,
$_alias,
[$_table, $_nom_champ]
);
}
return ['', ''];
}
// pas d'alias, pas de champ, pas de joker...
// tenter via une jointure...

Loading…
Cancel
Save