프로그래밍 방식으로 모듈을 설치하고 활성화하려면 어떻게합니까?


17

Drupal 6에는 많은 리소스가 있지만 Drupal 7에 대한 솔루션을 찾지 못했습니다.

선택한 모듈을 어떻게 설치하고 활성화합니까?

답변:


27

다음을 사용하여 한 단계 만 있습니다 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.