寄稿したモジュールを少しハックして、必要な機能を少し追加する必要があります。これは通常、モジュールのメンテナがおそらく使用したくないプロジェクトに固有の機能です。
現在、私はすべてのハックのためのパッチファイルを作成し、そのようなパッチファイルをすべてsite/all/modulesに保存しています。このようにして、モジュールを更新するときはいつでも、ハックを簡単に再適用して競合を解決できます。
どうしようもない気がします。私ですか?
パッチは必ずしも新しいバージョンのモジュールに適用されるとは限りません。パッチを適用した関数を別の行に移動するか、その関数のコードを変更するだけで、パッチは適用されなくなります。関数を別の行に移動するには、別の関数を書き直して行数を増やす(または行数を減らす)だけで十分です。
モジュールの動作を変更するより良い方法は、Drupal 7の場合:
hook_preprocess_rdf_metadata()
for theme_rdf_metadata() 、およびテーマ関数が取得する変数。変更したい関数がフックではない場合:
node_save()
をハックしませんが、hook_node_presave()
を実装して変更します。今まで述べたことが当てはまらない場合は、カスタムモジュールを作成し、他のモジュールのコードを使用して作成することをお勧めします。また、機能が実装されていることを期待して、既存のモジュールの機能リクエストを依頼してみます。
サードパーティのモジュールをハッキングすることは決して良い考えではありません。特に、そのモジュールでは(Update ManagerまたはDrushを介した)モジュールの自動更新が不可能になるためです。
ほとんどのモジュールには、モジュールの多くの機能をオーバーライドするフックと、テーマを乗り越えるためのテーマ機能が付属しています。ほとんどの場合、それを試して使用する必要があります。コード自体をハッキングすることを避けます。
達成したいことがオーバーライドで実行できるものではないことが確実である場合、私が選択する次のオプションは、モジュールのコピーを作成し、それに他の名前を付け、さらには、本当に必要はありませんし、そこから新しいモジュールを作成します。
変更がほとんどない場合は、コード自体を変更しても害はありませんが、アップグレード後に変更を追跡して、すでに実行していると思われるコードを再度機能させる必要があります。
ええ、IMOあなたは「間違っている」のかもしれませんが、おそらくプロジェクトの要件は私の平均的なプロジェクトの要件よりも少ないでしょう:)すべてのパッチとモジュールのバージョンをDrushメイクファイルに入れて、Drushで常にプラットフォームを構築できるようにします何かが起こります。
http://drupal.org/project/drush_make
構文がわかれば、Makeファイルは非常に簡単に記述できます。