Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.
Ces bouts de codes peuvent être utilisé dans des hook update ou des fonction de post_update.
Création du vocabulaire
$vocabulary = \Drupal\taxonomy\Entity\Vocabulary::create(array(
'vid' => 'nom_machine_du_vocabulaire',
'name' => t('Nom du vocabulaire'),
));
$vocabulary->save();
Si vous souhaitez tester que le vocabulaire n'existe pas avant :
$vocabularies = \Drupal\taxonomy\Entity\Vocabulary::loadMultiple();
if (!isset($vocabularies['nom_machine_du_vocabulaire'])) {
$vocabulary = \Drupal\taxonomy\Entity\Vocabulary::create(array(
'vid' => 'nom_machine_du_vocabulaire',
'name' => t('Nom du vocabulaire'),
));
$vocabulary->save();
}
Note : Le nom machine du vocabulaire (VID) ne doit pas contenir de caractères spéciaux et doit être plus petit que 32 caractères.
Création des termes
$terms = ['Terme 1','Terme 2','Terme 3'];
foreach ($terms as $term_name) {
$term = \Drupal\taxonomy\Entity\Term::create([
'vid' => 'nom_machine_du_vocabulaire',
'name' => $term_name,
]);
$term->save();
}
Ordre des termes
Il est aussi possible de créer le terme en gérant leur ordre :
$terms = ['Une minute','Une journée', 'Sur le long terme'];
$weight = 0;
foreach ($terms as $term_name) {
$term = \Drupal\taxonomy\Entity\Term::create([
'vid' => 'mon_vocabulaire',
'name' => $term_name,
'weight' => ++$weight,
]);
$term->save();
}
Commentaires (0)