Chcę móc wyłączyć, a następnie odinstalować moduł programowo w moim lokalnym środowisku, a następnie łatwo wypchnąć ten kod do prod, aby wszystko zostało zaktualizowane. Zgaduję, że to coś z hook_update_N (http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_update_N/7), ale nie wiem od czego zacząć.Jak programowo wyłączyć i odinstalować moduł Drupal?
12
A
Odpowiedz
34
Pomyśl, że znalazłem odpowiedź! W pliku modules .install dodałem ten kod:
/**
* Disable and uninstall the module.
*/
function MODULE_update_7200() {
if(module_exists('MODULE')) {
module_disable(array('MODULE'));
drupal_uninstall_modules(array('MODULE'));
}
}
Liczba w funkcji powinna odzwierciedlać instalację drupalną. Zobacz jak ponumerować je tutaj: http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_update_N/7
1
Drupal 8
Do umieszczenia wewnątrz MYMODULE.install
:
/**
* Uninstall Field UI.
*/
function MYMODULE_update_8001(&$sandbox) {
\Drupal::service('module_installer')->uninstall(['field_ui']);
}