Rechercher dynamiquenent les noms des champs à aliaser
Suite discussion en #1 J'avais commit ce commit ``` From f132a8a8ce06dcc6098d7fdf46a4d3783ba54c72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=AFeul=20Rouquette?= <maieul@maieul.net> Date: Sat, 9 Sep 2023 14:10:33 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20lorsqu'on=20cr=C3=A9e=20l'alias=20d'un?= =?UTF-8?q?=20article,=20n'aliaser=20que=20les=20champs=20non=20vide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- action/aliaser.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/action/aliaser.php b/action/aliaser.php index 7a07558..7e9c76c 100644 --- a/action/aliaser.php +++ b/action/aliaser.php @@ -6,16 +6,15 @@ if (!defined('_ECRIRE_INC_VERSION')) { function alias_aliaser_objet($id_article) { include_spip('base/abstract_sql'); - $row = sql_fetsel('id_rubrique', 'spip_articles', 'id_article=' . intval($id_article)); - $c = [ - 'surtitre' => "<article$id_article|surtitre>", - 'titre' => "<article$id_article|titre>", - 'soustitre' => "<article$id_article|soustitre>", - 'descriptif' => "<article$id_article|descriptif>", - 'chapo' => "<article$id_article|chapo>", - 'texte' => "<article$id_article|texte>", - 'ps' => "<article$id_article|ps>", - ]; + include_spip('inc/filtres'); + $champs_editables = objet_info('article', 'champs_editables'); + $row = sql_fetsel(array_merge(['id_rubrique'], $champs_editables), 'spip_articles', 'id_article=' . intval($id_article)); + $c = []; + foreach ($row as $field => $value) { + if ($field !== 'id_rubrique' && $value) { + $c[$field] = "<article{$id_article}|$field>"; + } + } $new = 0; if ($row) { include_spip('action/editer_article'); -- 2.34.1 ``` Sur ce patch plusieurs problèmes - Le point en #2 de "faut-il aliaser les champs vide ?" - il faut aussi s'assurer que c'est des champs textes, sinon ca va couiner - il y a pas de modèle global, mais uniquement par champ. Deux solutions - créer un modèle global - considérer que c'est à la personne qui fournit un champ de fournir le modèle, et on ne crée un alias que si le modèle existe
issue

Forge communautaire SPIP | Charte d'utilisation | Signaler un problème sur ce site