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.

Création du vocabulaire et des termes associés.

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);
    };
}

Suppression du vocabulaire

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);
}

Comment Form



About me

about me

Bienvenue sur mon blog. Sur cet espace j’essaie de partager au mieux ma passion pour le web et actuellement mon engouement pour Drupal. Vous trouverez ici mes découvertes, mes problématiques et les solutions rencontrées.

Commentaires

  • linda: Une autre question pour continuer d'avancer, j'espère que vous aurez une solution. Je dois faire d [...]
  • linda: Merci pour ton invitation Julien. Je ne suis hélas pas sur Paris mais j'avoue que je cherche bien v [...]
  • Anthony: Merci pour le lien ! Les tutos sont vraiment très bien fait et de manière très progressive. Lie [...]
  • Julien: Oui y'a de bonnes infos sur Kolossaldrupal Si tu es sur Paris on organise une rencontre entre dru [...]
  • linda: Bonjour Anthony et merci. J'ai déjà visité le site que tu me conseilles et après de multiples [...]