Bagaimana cara saya menginstal dan mengaktifkan modul secara terprogram?

17

Ada banyak sumber daya untuk melakukannya di Drupal 6, tetapi saya tidak menemukan solusi untuk Drupal 7.

Bagaimana saya bisa menginstal dan mengaktifkan modul yang dipilih?

Natrium
sumber

Jawaban:

27

Hanya ada satu langkah, menggunakan 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);
Clive
sumber
Apakah ini mengaktifkan modul dalam urutan yang sama seperti pada array?
Brent Connor
Tidak @BrentConnor, peta dependensi dihitung dan diinstal sesuai urutan apa pun
Clive
8

Berikut adalah bagaimana Anda akan melakukannya dengan menggunakan pembaruan basis data hook_update_Ndari *.installfile modul lain yang diaktifkan . Kemudian Anda dapat mengunjungi /update.phpdi browser atau menjalankan $ drush updbdi baris perintah untuk memecat kode ini.

/**
 * 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);
}
elvis2
sumber
1

Di Drupal 7 tidak ada lagi drupal_install_modules () , oleh karena itu jika Anda ingin memaksa proses instalasi modul secara terprogram (jika sudah diaktifkan), Anda dapat menggunakan:

module_invoke('module_name', 'install');

Untuk mengaktifkannya, cukup:

module_enable(array('module_name'));

Atau menggunakan drushsebagai bagian dari proses penyebaran:

drush -y en module_name
kenorb
sumber
0

Untuk drupal 8 Anda dapat menggunakan yang berikut:

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

Dalam drush:

drush php-eval '\Drupal::service("module_installer")->install(["my_custom_module"]);'
Stef Van Looveren
sumber
Jika Anda ingin introspeksi IDE, gunakan ini: `` `/ ** @var \ Drupal \ Core \ Extension \ ModuleInstallerInterface $ moduleInstaller * / $ moduleInstaller = \ Drupal :: service (" module_installer "); $ moduleInstaller-> install (['readmehelp']); `` `
geek-merlin