declarer_tables_objets_sql

Ce pipeline sert à déclarer la structure SQL des tables objets. Il permet également de déclarer leurs exceptions.

Une documentation détaillée se trouve sur spip.net, avec un exemple : pour la déclaration des objets BREVES.

Toutes les déclarations réalisées avant SPIP 3 via les globales $table_titre, $table_date, $table_principale, $table_auxiliaire ou via les pipelines rechercher_liste_des_champs, rechercher_liste_des_jointures, declarer_tables_objets_surnoms et declarer_type_surnoms restent fonctionnelles.

Les pipelines voient passer les informations qui ont déjà été déclarées dans le pipeline declarer_tables_objets_sql. Il est fortement conseillé de migrer vers cette déclaration unifiée plus complète, qui pourra s’enrichir, et permet de faire bénéficier les objets concernés de fonctionnalités généralisées. Par exemple, tous les objets ainsi déclarés peuvent d’ores et déjà recevoir des documents joints et des mots clés.

Accéder aux informations

Dans SPIP, la liste des informations est ensuite accessible de plusieurs façons :

 pour obtenir tout le tableau des données déclarées pour toutes les tables :

include_spip('base/objets');
lister_tables_objets_sql();

 pour obtenir les infos de la table spip_articles uniquement :

include_spip('base/objets');
lister_tables_objets_sql('spip_articles');

 pour obtenir les informations de la description SQL de la table il faut passer par base/trouver_table qui lit la description en base de la table, et l’enrichit du contenu de lister_tables_objets_sql :

$trouver_table = charger_fonction('trouver_table','base');
$trouver_table('spip_articles');

 le filtre info_objet pour obtenir une information précise,
Exemple :
echo _T(info_objet('article', 'texte_objet'));
ou dans un squelette :
[(#OBJET|info_objet{texte_objet}|_T)]
Ce filtre utilise l’objet en entrée car c’est ce dont on dispose en général dans les squelettes.

Exemple

Autre exemple d’utilisation

Le plugin medias_responsive_mod propose 2 nouveaux modèles pour afficher les images. Pour les déclarer de manière à ce que SPIP les intègre au fonctionnement du critère {vu}, il utilise le pipeline declarer_tables_objets_sql

function medias_responsive_mod_declarer_tables_objets_sql($tables) {
  $tables['spip_documents']['modeles'][] = 'ligne';
  $tables['spip_documents']['modeles'][] = 'slide';    
  return $tables;
}

Lister les tables en SPIP
La boucle suivante liste les tables contenant ’mot’ et présente leur descriptif et leur petit nom :

<ul>
<BOUCLE_objets(POUR){tableau #REM|lister_tables_objets_sql}{cle==mot}>
	<li>Nom mysql=#CLE / Descriptif : [(#VALEUR{texte_objets}|_T)]	/ Nom résumé : #VALEUR{table_objet}</li>
</BOUCLE_objets>
</ul>

Résultat sur un spip de base :
 Nom MYSQL=spip_mots / Descriptif : Mots-clés / Nom résumé : mots
 Nom MYSQL=spip_groupes_mots / Descriptif : Groupes de mots-clés / Nom résumé : groupes_mots

Auteur JLuc Publié le : Mis à jour : 16/03/24