新しいモジュールを、正常に機能させるために必要なDrupal 7の最小バージョンに依存させるにはどうすればよいですか?


10

まったく新しいモジュールを開発しています(まだ使用しているサイトはありません)。hook_taxonomy_term_view()Drupalコアバージョン7.17で導入されフックを使用するため、特定のDrupalバージョンが必要です。

たとえば、Drupal 7.16または以前のバージョンのDrupalコアを使用しているサイトでモジュールが有効にならないようにしたい。Drupalのより高いバージョン(7.17以上)で問題ありません。

私の質問:モジュールを最小にするDrupal 7.17バージョンにモジュールを依存させるにはどうすればよいですか?

注:モジュールが既にインストールされているサイトのソリューションは必要ありません(心配する必要はありません)。したがって、このような7.17より前のDrupalバージョンでは、なんらかの方法で無効にする必要はありません。


私のコードで使用するフックについての質問なので、質問にはフックのタグが付けられています。フックは、私が使用できるフックを探しているという意味ではありません。モジュールがDrupal 7.17以降を使用していないサイトにインストールされないようにするためのあらゆる解決策を受け入れています。
kiamlaluno

他のモジュールのマイナーバージョンを要求することもできますが、dependencies[] = mymodule (1.12)これはコアでは機能しないようです。
AyeshK 2013年

@AyeshKええと!いつも有効になっているDrupalコアモジュールを紹介していただければ、興味深いかもしれません。
kiamlaluno

私はそれとdependencies[] = taxonomy (>7.17)いくつかの他の可能なバージョン番号でそれを試しましたが、うまくいきませんでした。
AyeshK 2013年

回答:


11

トリックは、明らかに、次のようなシステムモジュールを使用することです。

dependencies[] = system (>=7.17)

4
これは正解です。ソース:dwwと私はバージョン管理された依存関係チェッカーを書きました。drupal4hu.com/node/274でこれについてブログを書いて、今度はdrupal.org/node/542202の関連するハンドブックページにも追加しました。

7

hook_requirements() まさにそのような目的のために存在します。

インストール要件を確認し、ステータスレポートを作成します。

$phaseパラメーターをチェックして、モジュールがインストールされているかどうかを判別し、現在のDrupalバージョンを必要なバージョンと照合して、重大度を返すことができREQUIREMENT_ERRORます。これにより、要件が満たされるまでモジュールがインストールされなくなります。

ドキュメントはかなり徹底的です。ここで言及する価値があることの1つは、フックがモジュールの.installファイルに実装される必要があることです。


これは正しい答えではありません。なぜそれがそれほど高く評価されているのかはわかりません。

@chx私はそれについてあなたの言葉を取りますが、その場合は「インストール要件を確認し、ステータスレポートを実行してください」という機能の説明ですやや誤解を招くのではないですか?結局のところ、インストール時にモジュールの要件を確認することについて具体的に話します:)
Clive

1
@Chapabu文書によらない:)モジュールについて具体的に説明し、基本的にそのフックを使用して戻るREQUIREMENT_ERRORことで、要件を満たしていない場合にモジュールがインストールされていないことを確認します。Drupalのバージョンをチェックすることは有効なユースケースであると想定していましたが(ドキュメントではそうしないことについて触れていません)、何かを見逃していると思います。それは単に悪い習慣かもしれないし、私が知らないことかもしれない
クライヴ

1
@Clive奇妙なこと、私がそれからそれを得たのは知らない..たぶんD8は単なるドキュメントのアップグレードであるべきだ;-)
Chapabu

1
@chxあなたは私の無知を許し、これまでこれまでにやったことはありません...問題はD8に反し、その後バックポートされますか?あなたの意見では、テキスト全体を変更する必要がありますか、それとも、このフックを使用してモジュール/コアバージョン、ライブラリ要件のみなどをチェックしないことに言及したメモが必要ですか(言及したドキュメントへのリンク付き)?ありがとう
クライヴ

2

あなたはhook_enabledを使うことができます

これは、モジュールのインストール後に発生します。インストールされているdrupalのバージョンを確認し、正しいバージョンでない場合はmodule_disableを使用して、必要なエラーメッセージを表示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.