Manque pour les jointures spécialisées
TL/DR : ajouter la possibilité de déclarer des fonctions spécifiques pour les jointures sur les recherches fulltext.
Dans la recherche standard de spip on peut déclarer des fonctions pour gérer les cas spéciaux de jointures : https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/recherche_to_array.php#L193-L195
$rechercher_joints = charger_fonction("rechercher_joints_${table}_${table_liee}", 'inc', true)
or $rechercher_joints = charger_fonction("rechercher_joints_objet_${table_liee}", 'inc', true)
or $rechercher_joints = charger_fonction("rechercher_joints_${table}_objet_lie", 'inc', true)
Dans la recherche fulltext on n'a en revanche pas cette possibilité : https://git.spip.net/spip-contrib-extensions/fulltext/src/branch/master/inc/recherche_to_array.php#L107
Les lignes ci-dessus sont bien présentes mais ne concernent pas les tables avec des index fulltext, pour celles-ci le plugin gère automatiquement les cas de jointures courantes, mais pas moyen de personnaliser pour gérer les cas spéciaux.
Donc similairement à la recherche standard, il faudrait pouvoir déclarer des fonctions qui seraient appelées en priorité pour traiter les jointures. Ça pourrait être la même nomenclature que les fonctions de base, mais suffixées par _fulltext
par ex. :
$rechercher_joints = charger_fonction("rechercher_joints_${table}_${table_liee}_fulltext", 'inc', true)
or $rechercher_joints = charger_fonction("rechercher_joints_objet_${table_liee}_fulltext", 'inc', true)
or $rechercher_joints = charger_fonction("rechercher_joints_${table}_objet_lie_fulltext", 'inc', true)
Exemple d'utilisation : dans mon cas le besoin c'est de pouvoir faire une jointure entre les auteurs et les orgas, c'est à dire inclure le nom des orgas liées aux auteurs dans la recherche.
Le problème c'est que les auteurs peuvent eux-mêmes être des orgas, donc la jointure automatique ne fonctionne pas, il faut traiter ce cas à part. Ça fonctionne bien avec la recherche standard de Spip, mais pas avec le plugin.