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?

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);

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);
}

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

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"]);'

Jika Anda ingin introspeksi IDE, gunakan ini: `` `/ ** @var \ Drupal \ Core \ Extension \ ModuleInstallerInterface $ moduleInstaller * / $ moduleInstaller = \ Drupal :: service (" module_installer "); $ moduleInstaller-> install (['readmehelp']); `` `
geek-merlin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.