0

前の質問からのちょっとしたフォローアップ。

その質問で述べたように、私の全体的な目標は、ImageCacheがサムネイルなどを生成する魔法を実行した後にRubyスクリプトを呼び出すことです。

この質問からのSebiの提案には、hook_nodeapiの使用が含まれていました。
悲しいことに、モジュールの作成や既存のモジュールへのハッキングに関するDrupalの知識はかなり限られています。

だから、この質問のために:

  1. 独自のモジュールを作成する必要がありますか、それともImageCacheモジュールを変更する必要がありますか?
  2. 生成されたサムネイルパス(ImageCacheから)を取得してRubyスクリプトに渡すにはどうすればよいですか?

編集

私はこの質問がSOを検索しているのを見つけました...私が望むことをする_imagecache_cache関数で同様のことをすることは可能ですか?

すなわち

function _imagecache_cache($presetname, $path) {
  ...
  ...
  // check if deriv exists... (file was created between apaches request handler and reaching this code)
  // otherwise try to create the derivative.
  if (file_exists($dst) || imagecache_build_derivative($preset['actions'], $src, $dst)) {
    imagecache_transfer($dst);

    // call ruby script here
    call('MY RUBY SCRIPT');
  }
4

1 に答える 1

0
  1. imagecacheをハックしないでください。コア/コントリビュートモジュールをハックするたびに、神が子猫を殺すのを忘れないでください;)

  2. hook_nodeapiを呼び出すモジュールを作成し、APIドキュメントを見て、スクリプトの正しいエントリポイントを見つける必要があります。nodeapiはノードプロセスのさまざまなレベルで機能するため、正しいものを選択する必要があります(リンクを確認してください)http://api.drupal.org/api/function/hook_nodeapi

表示されている関数はプライベートであるため呼び出すことができず、別のルートを見つける必要があります。

パスを手動で作成してみてください。アップロードされたファイルのファイル名を取り出して、ディレクトリ構造に追加できるはずですが、うまくいくはずです。例えば

アップロードされたファイルの名前がtest123.jpgの場合は、/ files / imagecache / thumbnails / test123 / jpg(または同様のもの)にある必要があります。

それが役に立てば幸い。

于 2010-09-04T16:07:01.283 に答える