特に別のモジュールで動作しないモジュールがあります。他のモジュールが無効になっている場合にのみモジュールをインストールできるように、そのモジュールが有効かどうかを確認してインストールを中止する方法や、インストールボックスをグレー表示する方法があるかどうかを知りたいです。
それは逆依存のようなものです!
Drupalでこれを正しく行う方法はありますか?
特に別のモジュールで動作しないモジュールがあります。他のモジュールが無効になっている場合にのみモジュールをインストールできるように、そのモジュールが有効かどうかを確認してインストールを中止する方法や、インストールボックスをグレー表示する方法があるかどうかを知りたいです。
それは逆依存のようなものです!
Drupalでこれを正しく行う方法はありますか?
回答:
モジュールは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;
}
hook_requirements
これに使用できます。特にを確認し$phase == 'install'
、を含む適切な配列を返す必要がありREQUIREMENT_ERROR
ます。
Drupal 6 のSimpletestモジュールは、特定の条件が満たされない場合にインストールを中止する良い例です。