以前question的一些后续内容。
正如我在那个问题中所提到的,我的总体目标是在ImageCache通过生成缩略图等等之后调用Ruby脚本。
Sebi从这个问题的建议涉及使用hook_nodeapi 遗憾的是,我的Drupal创建模块和/或入侵现有模块的知识非常有限。
所以,对于这个问题:
修改
我发现这个question正在搜索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');
}
答案 0 :(得分:0)
不要破解图像缓存,记住每次你攻击核心/贡献模块时,上帝会杀死一只小猫;)
您应该创建一个调用hook_nodeapi的模块,查看api文档以找到脚本的正确入口点,nodeapi可以在节点进程的各个不同级别上运行,因此您必须为您选择正确的一个(当您检查链接时,它应该变得清晰)http://api.drupal.org/api/function/hook_nodeapi
您将无法调用您显示的功能,因为它是私有的,因此您必须找到另一条路线。
您可以尝试手动构建路径,您应该能够提取上传文件的文件名,然后将其附加到目录结构,丑陋但它应该可以工作。 e.g。
如果上传的文件名为test123.jpg,那么它应该在/ files / imagecache / thumbnails / test123 / jpg(或类似的东西)中。
希望它有所帮助。