SPIP est connu pour la gestion d’objets et parmis les plus importants nous trouvons :
Les rubriques, les articles, les auteurs, les brèves.
Mais il est parfois intéressant de rajouter ses propres objets.
Matthieu Marcimat a écrit un excellent article en détaillant pas à pas la création d’un plugin qui construit un nouvel objet. Le plugin Chats que vous retrouvez ici
Quelques petites atuces pourtant dans ce tuturial extremement bien fait, manquent.
Comment faire pour que le moteur de recherche trouve les mots d"un nouvel objet ?
Comment faire pour que le critère de boucle age et age_relatif soient pris en compte.
Sachez qu’en premier lieu, il est souhaitable de dire à SPIP que l’on crée un objet en lui donnant un surnom :
Dans le fichier qui sert à déclarer les tables, il suffira de rajouter :
function chats_declarer_tables_objets_surnoms($surnoms) {
// Le type ['*'] correspond a la table nommee
$surnoms['chat'] = 'chats';
return $surnoms;
}Pour que les boucles prennent en compte age et age_relatif.. Toujours dans le même fichier :
function chats_declarer_tables_interfaces($interface){
$interface['table_date']['chats'] = 'date_naissance';
$interface['DATE_NAISSANCE'][]= 'normaliser_date(%s)';
return $interface;
}Pour le moteur de recherche on pourrait par exemple construire si ce n’est déjà fait un fichier chats_fonctions à la racine du plugin avec ceci :
<?php
include_spip('inc/presentation');
function chats_rechercher_liste_des_champs($tables){
$tables['chat']['titre'] = 3;
$tables['chat']['nom'] = 3;
$tables['chat']['votrechamp'] = 3;
return $tables;
}
?>
Bien entendu il ne faut pas oublier de notifier tous ces appels dans le fichier plugin.xml
<pipeline>
<nom>declarer_tables_objets_surnoms</nom>
<inclure>base/chats.php</inclure>
</pipeline>
<pipeline>
<nom>declarer_tables_interfaces</nom>
<inclure>base/chats.php</inclure>
</pipeline>
<pipeline>
<nom>rechercher_liste_des_champs</nom>
<inclure>chats_fonctions.php</inclure>
</pipeline>
Mise en garde : Vous avez vu que l’objet est parfois au singulier et parfois au pluriel. Il est important de conserver cette synthaxe.