Bir modülü programlı olarak nasıl kurabilir ve etkinleştirebilirim?


17

Drupal 6'da bunu yapmak için çok fazla kaynak var, ancak Drupal 7 için bir çözüm bulamadım.

Seçili modülleri nasıl kurabilir ve etkinleştirebilirim?

Yanıtlar:


27

Kullanarak sadece bir adım var 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);

Bu modülleri dizideki ile aynı sırayla etkinleştirir mi?
Brent Connor

Hayır @BrentConnor, bir bağımlılık haritası hesaplanır ve herhangi bir sırayla yüklenir
Clive

8

hook_update_NEtkinleştirilmiş başka bir modülün *.installdosyasından bir veritabanı güncellemesi ile nasıl yapacağınız aşağıda açıklanmıştır . Daha sonra bu kodu etkinleştirmek /update.phpiçin tarayıcıyı ziyaret edebilir veya $ drush updbkomut satırında çalışabilirsiniz .

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

Drupal 7'de artık drupal_install_modules () yoktur , bu nedenle modül kurulum işlemini program aracılığıyla zorlamak istiyorsanız (zaten etkinse) şunları kullanabilirsiniz:

module_invoke('module_name', 'install');

Etkinleştirmek için basitçe:

module_enable(array('module_name'));

Veya drushdağıtım işleminin bir parçası olarak kullanmak :

drush -y en module_name

0

Drupal 8 için aşağıdakileri kullanabilirsiniz:

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

Aceleyle:

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

IDE içgözlemini istiyorsanız, şunu kullanın: `` / ** @var \ Drupal \ Core \ Extension \ ModuleInstallerInterface $ moduleInstaller * / $ moduleInstaller = \ Drupal :: service ("module_installer"); $ moduleInstaller-> yükleyin ([ 'readmehelp']); ``
geek-merlin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.