it-swarm-ko.tech

모듈 충돌 ( "반 의존성")을 어떻게 처리합니까?

특별히 다른 모듈에서 작동하지 않는 모듈이 있습니다. 해당 모듈이 활성화되었는지 확인하고 예를 들어 설치를 중단하거나 다른 모듈이 비활성화 된 경우에만 모듈을 설치할 수 있도록 설치 상자를 회색으로 표시하는 방법이 있는지 알고 싶습니다.

역 종속성과 같습니다!

Drupal에서 제대로하는 방법이 있습니까?

7
Alex Weber

모듈은 hook_requirements () ; 요구 사항은 모듈이 설치되지 않았고 모듈이 hook_requirements()에서 오류를 반환하면 설치되지 않는 것입니다.

모듈은 다음과 유사한 코드를 구현해야합니다.

function mymodule_requirements($phase) {
  $requirements = array();
  // Ensure translations don't break at install time
  $t = get_t();

  if ($phase == 'install') {
    if (module_exists('other_module')) {
      $requirements['mymodule'] = array(
        'title' => $t('My module'), 
        'value' => $t('My module is not compatible with Other module.'), 
        'severity' => REQUIREMENT_ERROR, 
      );
    }
  }

  return $requirements;
}
8
kiamlaluno

이를 위해 hook_requirements 를 사용할 수 있습니다. 특별히 $phase == 'install'를 확인한 다음 REQUIREMENT_ERROR를 포함하는 적절한 배열을 반환해야합니다.

Simpletest module for Drupal 6은 특정 조건이 충족되지 않으면 설치를 중단하는 좋은 예입니다.

5
jhedstrom