J'ai créé par programme un type de contenu lors de l'installation d'un module (à l'aide de la configuration de stockage sur site).
Je souhaite supprimer ce type de contenu lors de la désinstallation du module.
Existe-t-il un moyen de le faire avec Drupal 8?
drupal snippet --code='$content_type = \Drupal::entityManager()->getStorage("node_type")->load("MACHINE_NAME_OF_TYPE"); $content_type->delete();'
N'ayant pas assez de crédit pour commenter, je vais le mettre ici:
@Berdir, il me semble que l'application du module dans le fichier node.type.custom.yml n'est pas suffisante pour imposer la suppression des nœuds lors de la désinstallation
Dans mon cas, le type de contenu est supprimé lors de la désinstallation du module. Mais la suppression du contenu personnalisé (nœuds) n'est pas appliquée. Pour ce faire, le module personnalisé doit implémenter le
ModuleUninstallValidatorInterface
.Une fois implémenté, le module personnalisé ne peut pas être désinstallé avant la suppression des nœuds personnalisés. La case de sélection sera désactivée.
Au lieu de mettre en œuvre l'interface, je le fais sale en supprimant les nœuds dans
hook_uninstall()
:la source
Pour déclencher une action lors de la désinstallation d'un module, vous devez implémenter
hook_uninstall
dans le*.install
fichier de votre module . Avant de supprimer le type de contenu, vous pouvez également vous assurer que tous les nœuds de ce type de contenu ont également été supprimés. Enfin, après avoir désinstallé le module et avoir supprimé le type de contenu, n'oubliez pas d'exporter la configuration mise à jour.la source
bundle
deMACHINE_NAME_OF_TYPE
, comme la réponse basée sur une requête noeud-id ne, ou non? Je veux dire, cela semble être un peu cher (s'il y a beaucoup de NID) et j'aimerais utiliser cette solution lorsque cela est possible.