私のモジュールの新しいバージョンは、古いバージョンよりも多くのモジュールに依存します。モジュールユーザーをインストールする方法は?
-
16-10-2019 - |
質問
開発した既存のモジュールを更新しています。新しいバージョンでは、古いバージョンがそうではなかった「ヘルパー」モジュールが必要です(fwiw、具体的には「nodereference count」)。私のモジュールの以前のバージョンから新しいバージョンに人々がアップグレードしたときに、彼らが最初に新しく必要なヘルパーモジュールを必ずインストールするようにするにはどうすればよいですか?
hook_update_n関数に入れなければならないものはありますか?
ありがとう。
解決
使用できます hook_requirements(), 、モジュールがインストール/更新されたときにエラーを表示できるようにする必要があります。
または、それがうまくいかない場合は、実装できます hook_init() モジュールのチェックを実行し、それに応じて対応します。
アップデート: 私は自分で同じ問題に遭遇したばかりで、ここに私が使用したコードがあります。
/**
* Implements hook_init().
*/
function MYMODULE_init() {
if (!module_exists('ctools')) {
module_enable(array('ctools'));
if (!module_exists('ctools')) {
drupal_set_message(t('MYMODULE has been disabled as the required !ctools module is not present.', array('!ctools' => l(t('Chaos tool suite'), 'http://drupal.org/project/ctools'))), 'error');
module_disable(array('MYMODULE'));
}
}
}
これにより、必要なモジュールが有効になり、そうすることができない場合は、ユーザーにエラーメッセージが表示され、モジュールが無効になります。
所属していません drupal.stackexchange