特定のモジュールの更新をチェックしないようにするにはどうすればよいですか?


35

現在のプロジェクトでは、いくつかのモジュール(ノード階層、ワークベンチアクセスなど)の寿命を修正する必要がありました。これらのモジュールは現在、プロジェクトのニーズに完全に適合しており、将来のコアの更新で壊れることはほとんどありません。

つまり、アプリが引き渡されると、クライアントはシステム(ユーザー1)に完全にアクセスできるため、これらのモジュールに利用可能な更新があると警告されます。そして、彼ら何度も私に彼らに懇願しなくても、彼らそれら更新します(ああ、クライアントなしでどれだけ簡単な人生になるでしょう!)。

.info更新マネージャーがこれらのモジュールの更新をチェックしないように説得する方法(おそらくモジュールのファイル内)がありますか?

編集

ファイルでproject status url使用できるキーを知っている.infoので、存在しないURLに設定できると思いますが、可能であれば、きれいな方法でこれを行う方がはるかに望ましいです。

回答:


31

を実装する必要がありますhook_update_projects_alter()

データを取得してバージョンを比較する前に、プロジェクトのリストを変更します。

ほとんどのモジュールでは、このフックを実装する必要はありません。これは、更新ステータスモジュールとの高度な対話用です。単なる人間を適用する必要はありません。このフックの主な使用例は、プロジェクトをリストに追加することです。たとえば、無効化されたモジュールとテーマの更新ステータスデータを提供します。提供されたモジュールは、リストからプロジェクトを非表示にする場合があります。たとえば、公式リリースのないサイト固有のモジュールがある場合、そのモジュールはこのリストから自身を削除して「利用可能なリリースが見つかりません」という警告を回避できます利用可能な更新レポート。まれに、モジュールが既にリストにあるプロジェクトに関連付けられているデータを変更する場合があります。


19

.infoファイルのprojectキーは、モジュールがどのプロジェクトからのものであるかを識別するために、drupal.orgのパッケージ化スクリプトによって追加されます。更新モジュールの主な用途は、インストール済みパッケージのバージョンを監視し、新しいバージョンが利用可能になったときに管理者に通知することです。

.infoファイルのこの行を削除またはコメントするだけで、Drupalはこのモジュールの更新のチェックを停止します。


これは間違っているか、他の何らかの理由でダウン投票されましたか?
mpdonadio

これがIMOで、最良かつ最も簡単な方法です!
AyeshK

1
@MPD projectマニュアルでの使用はドキュメントでは推奨されていません。
モウォ

これは、テーマのカスタマイズバージョンのチェックを停止する唯一の方法でした。もちろん、私はそれを「正しい方法」で行いたいと思いますが、これは機能し、npcのコードを再利用しますが、THEMENAME_update_projects_alterでは機能しませんでした。
nedwards

3
@nedwardssを使用するMYMODULE_THEMENAME_、このコードを配置する場所のみを示します。カスタムモジュールの代わりにテーマ関数ファイルでこのコードを使用すると、別の段階で処理され、期待どおりに動作しない場合があります。テーマを$projects変数に含める必要があります。
-emc

14

選択した答えを助けるためにコードサンプルを提供するだけです:

function MYMODULE_update_projects_alter(&$projects){
    unset($projects['slug_of_the_module_you_want_to_disable']);
    //dsm($projects);  // view a list of projects
}

$projects[]無効にする変数にモジュール名を入力します。スラッグが何なのかわからない場合(小文字で下線が引かれます)、そのdsm()呼び出しを使用するかprint_r()、モジュールのリストを印刷してください。


1
注意点- slugモジュール.infoファイルの名前と同じモジュールの技術名です。したがって、モジュールのフォルダーを見るだけでプロジェクトの配列をダンプする必要はありません。ほとんどの場合、名前はモジュールフォルダーの名前と同じです。
Nux

1
@Nuxの「ほとんどの場合」は、スラッグモジュール名と一致しない場合が数回あります。スラッグを初めて表示して使用することで、開発者を教育し、起こりうる問題の数を減らします。
emc

Drupalから使用される用語は、スラッグではなく、マシン名です。Slugは一部のCMSから正規のURLまたはパスエイリアスに相当するものとして使用されます
kiamlaluno

12

2つの方法でそれを行うことができます。

特に、特定のプロジェクトまたは特定のリリースを無視するプロジェクトごとの設定は、モジュールのコアバージョンにはありません。「ステータスの詳細設定の更新」モジュールはこれらの設定を復元し、最終的にコアの「ステータスの更新」モジュールに追加機能を提供する場合があります。


Drushコマンドはまさに私が探していたものです、ありがとう!
AFR

drush help upc以下のためにこれを与える--lock--lock = <FOO、バー>更新時に考慮から指定されたプロジェクトを削除する永続的なロックを追加します。ヘルプ。ロックは--unlockパラメーターを使用して削除するか、プロジェクトをpm-updateまたはpm-updatecodeのパラメーターとして明示的に指定することでオーバーライドできます。ロックはpm-downloadには影響しません。
イズミールラミレス

2

モジュールのアップデートでも同じ問題が発生します。アップデートの無効化モジュールをインストールしたところ、うまく機能しているようです。

これは、サイト管理者が特定のテーマおよびモジュールの更新のチェックを無効にする小さな管理モジュールで、更新設定フォーム(/ admin / reports / updates / settings)でhook_update_projects_alter()の機能を公開します。テーマやモジュールを任意に選択できるほか、カスタムモジュール、パッチを適用したモジュール、サイト固有の機能モジュールを自動検出できます。

ここに画像の説明を入力してください


0

基本的に、あなたはフォークを作りましたよね?だからあなたがする必要があります:

  1. フォークマークを含めるように名前を変更します
  2. infoファイルで、project status urlそのモジュールのリポジトリに設定します。

最後になりましたが、サポートされていないが、他のモジュールを支持して廃止されていない場合は、共同メンテナーになり、修正をコミュニティと共有することを検討してください。


2
Donschoe:メンテナはこちら。あなたが望むなら、私はあなたがスピードに達するのを手伝いたいです。
バーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.