web-dev-qa-db-fra.com

Comment installer et activer par programme un module?

Il y a beaucoup de ressources pour le faire dans Drupal 6, mais je n'ai pas trouvé de solution pour Drupal 7.

Comment puis-je installer et activer les modules sélectionnés?

17
Codium

Il n'y a qu'une seule étape, en utilisant module_enable() :

$modules = array('module1', 'module2'); // Array of module names
$enable_dependencies = TRUE; // Whether or not to enable dependant modules

module_enable($modules, $enable_dependencies);
27
Clive

Voici comment procéder avec une mise à jour de la base de données en utilisant hook_update_N d'un autre module activé *.install fichier. Ensuite, vous pouvez visiter /update.php dans le navigateur ou exécutez $ drush updb sur la ligne de commande pour déclencher ce code.

/**
 * Enable module1 and module2.
 */
function MYMODULE_update_7101() {

  // Array of module names.
  $modules = ['module1', 'module2'];

  // Whether or not to enable dependant modules.
  $enable_dependencies = TRUE;

  module_enable($modules, $enable_dependencies);
}
8
elvis2

Dans Drupal 7 il n'y a plus drupal_install_modules () , donc si vous voulez forcer le processus d'installation du module par programme (s'il est déjà activé), vous pouvez utiliser:

module_invoke('module_name', 'install');

Pour l'activer, c'est simplement:

module_enable(array('module_name'));

Ou en utilisant drush dans le cadre du processus de déploiement:

drush -y en module_name
1
kenorb

Pour drupal 8, vous pouvez utiliser ce qui suit:

\Drupal::service("module_installer")->install(["my_custom_module"]);

Dans l'ivresse:

drush php-eval '\Drupal::service("module_installer")->install(["my_custom_module"]);'
1
Stef Van Looveren