Il est parfois utile de définir une taxonomie pour un module Drupal. Tout se passe lors de l’installation, rien de bien compliqué, voici comment faire.
Tout d’abord il vous faut créer votre module c’est à dire créer et remplir le fichier .info, et créer le fichier .module.
Nous allons ajouter à l’intérieur du hook_install notre code pour générer notre vocabulaire et nos termes de taxonomie.
Déclaration du vocabulaire
$vocabulary = array(
'name' => t('NOM_DU_VOCABULAIRE'),
'nodes' => array('NOM_DU_TYPE_DE_CONTENU'=>1),
'description' => t(''),
'multiple' => 0,
'required' => 1,
'hierarchy' => 0,
'relations' => 0,
'module' => 'NOM_DU_MODULE',
);
Sauvegarde du vocabulaire
taxonomy_save_vocabulary($vocabulary);
Création d’une variable contenu l’id du vocabulaire, cette variable est enregistrée dans la table variable par le biais de la fonction variable_set($name, $value).
variable_set('VARIABLE_DE_SAUVEGARDE (ex:NOM_DU_VOCABULAIRE_vocabulary)', $vocabulary['vid']);
Création et sauvegarde des TERMES du vocabulaire
$terms = array('TERME1','Terme2');
$vid = $vocabulary['vid'];
foreach($terms as $term){
$edit = array('vid'=>$vid, 'name'=>$term);
taxonomy_save_term($edit);
};
Nous venons de créer et sauvegarder notre vocabulaire et nos termes à l’installation du module, normalement vous devriez avoir le code suivant :
function MON_MODULE_install(){
$vocabulary = array(
'name' => t('NOM_DU_VOCABULAIRE'),
'nodes' => array('NOM_DU_TYPE_DE_CONTENU'=>1),
'description' => t(''),
'multiple' => 0,
'required' => 1,
'hierarchy' => 0,
'relations' => 0,
'module' => 'NOM_DU_MODULE',
);
taxonomy_save_vocabulary($vocabulary);
variable_set('VARIABLE_DE_SAUVEGARDE', $vocabulary['vid']);
$terms = array('TERME1','Terme2');
$vid = $vocabulary['vid'];
foreach($terms as $term){
$edit = array('vid'=>$vid, 'name'=>$term);
taxonomy_save_term($edit);
};
}
Lorsque l’on crée un module il faut penser à sa désinstallation et donc prévoir de supprimer ou non la taxonomie.
Pour effacer la taxonomie que l’on vient de créer, insérez le code que nous allons voir ci dessous dans le hook_uninstall. Cette fonction est appelée lorsque vous validez la désinstallation du module.
Tout d’abord nous allons récupérer l’id du vocabulaire que nous avons enregistré à l’installation dans une variable. Pour cela nous allons utiliser la fonction inverse de récupération qui est
variable_get($name, $default)
Maintenant que nous connaissons l’id de notre taxonomie il ne nous reste plus qu’à exécuter le code de suppression :
taxonomy_del_vocabulary($vid);
function MON_MODULE_uninstall(){
//suppression du vocabulaire
$vid = variable_get('VARIABLE_DE_SAUVEGARDE', ' ');
taxonomy_del_vocabulary($vid);
}