0

对上一个问题的一点跟进。

正如我在那个问题中提到的,我的总体目标是在 ImageCache 通过生成缩略图和诸如此类的魔力之后调用 Ruby 脚本。

Sebi 对此问题的建议涉及使用 hook_nodeapi。
可悲的是,我在创建模块和/或侵入现有模块方面的 Drupal 知识非常有限。

所以,对于这个问题:

  1. 我应该创建自己的模块还是尝试修改 ImageCache 模块?
  2. 如何获取生成的缩略图路径(来自 ImageCache)以传递到我的 Ruby 脚本中?

编辑

我通过 SO 搜索发现了这个问题......是否可以在函数中做类似的事情_imagecache_cache来做我想做的事情?

IE

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. 不要侵入图像缓存,记住每次你侵入核心/贡献模块时,上帝会杀死一只小猫;)

  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 回答