Comment installer et activer par programme un module?


17

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?

Réponses:


27

Il n'y a qu'une é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);

Est-ce que cela active les modules dans le même ordre que dans la baie?
Brent Connor

Pas de @BrentConnor, une carte de dépendances est calculée et elles sont installées dans n'importe quel ordre logique
Clive

8

Voici comment vous le feriez avec une mise à jour de la base de données à l'aide hook_update_Nd'un autre *.installfichier de module activé . Ensuite, vous pouvez visiter /update.phpdans le navigateur ou exécuter $ drush updbsur la ligne de commande pour faire 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);
}

1

Dans Drupal 7, il n'y a plus de 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 drushdans le cadre du processus de déploiement:

drush -y en module_name

0

Pour drupal 8, vous pouvez utiliser les éléments suivants:

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

Dans l'ivresse:

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

Si vous voulez une introspection IDE, utilisez ceci: `` `/ / @var \ Drupal \ Core \ Extension \ ModuleInstallerInterface $ moduleInstaller * / $ moduleInstaller = \ Drupal :: service (" module_installer "); $ moduleInstaller-> install (['readmehelp']); ``
geek-merlin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.