Come posso installare e abilitare un modulo a livello di codice?


17

Ci sono molte risorse per farlo in Drupal 6, ma non ho trovato una soluzione per Drupal 7.

Come posso installare e abilitare i moduli selezionati?

Risposte:


27

C'è solo un passo, usando 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);

Questo abilita i moduli nello stesso ordine in cui si trovano nell'array?
Brent Connor,

No @BrentConnor, viene calcolata una mappa delle dipendenze e vengono installati in qualsiasi ordine abbia senso
Clive

8

Ecco come lo faresti con un aggiornamento del database utilizzando hook_update_Ndal file di un altro modulo abilitato *.install. Quindi è possibile visitare /update.phpil browser o eseguire $ drush updbdalla riga di comando per attivare questo codice.

/**
 * 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

In Drupal 7 non c'è più drupal_install_modules () , quindi se vuoi forzare il processo di installazione del modulo a livello di codice (se è già abilitato), puoi usare:

module_invoke('module_name', 'install');

Per abilitare, è semplicemente:

module_enable(array('module_name'));

O usando drushcome parte del processo di distribuzione:

drush -y en module_name

0

Per drupal 8 è possibile utilizzare quanto segue:

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

In drush:

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

Se si desidera introspezione IDE, utilizzare questo: `` `/ ** @var \ Drupal \ Core \ Extension \ ModuleInstallerInterface $ moduleInstaller * / $ moduleInstaller = \ Drupal :: service (" module_installer "); $ moduleInstaller-> installare ([ 'readmehelp']); ``
geek-merlin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.