モジュールをプログラムでインストールして有効にするにはどうすればよいですか?


17

Drupal 6にはそれを行うためのリソースがたくさんありますが、Drupal 7の解決策は見つかりませんでした。

選択したモジュールをインストールして有効にするにはどうすればよいですか?

回答:


27

使用するステップは1つだけ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);

これにより、モジュールはアレイ内と同じ順序で有効になりますか?
ブレントコナー

@BrentConnorはありません。依存関係マップが計算され、意味のある順序でインストールされます
Clive

8

hook_update_N他の有効なモジュールの*.installファイルを使用してデータベースを更新する方法は次のとおりです。その後/update.php、ブラウザでアクセスするか$ drush updb、コマンドラインで実行して、このコードを実行できます。

/**
 * 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にはdrupal_install_modules()はありません。したがって、モジュールインストールプロセスをプログラムで強制する場合(既に有効になっている場合)、次を使用できます。

module_invoke('module_name', 'install');

有効にするには、次のようにします。

module_enable(array('module_name'));

またはdrush、展開プロセスの一部として使用:

drush -y en module_name

0

drupal 8では、次を使用できます。

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

急いで:

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

IDEのイントロスペクションが必要な場合は、これを使用します: `` `/ ** @var \ Drupal \ Core \ Extension \ ModuleInstallerInterface $ moduleInstaller * / $ moduleInstaller = \ Drupal :: service(" module_installer "); $ moduleInstaller-> install(['readmehelp']); `` `
オタク-マーリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.