1

这是我的自定义模块;它基本上从特定的 URL 获取文件,将其保存在临时文件夹中,然后我希望它修改“文件”类型的 cck 字段(字段名称为:field_video_thumb):

function mymodule_nodeapi(&$node, $op) {
switch ($op) {
    case "update":
              $node->field_video_thumb[0] = 
              field_file_save_file ($filename, array(),
              $files_path, FILE_EXISTS_REPLACE);
              // node_save($node);
            break;
    }
}

我在这里遇到的问题是,当我注释“node_save($node)”时它可以工作(但当然是递归调用)并且删除它不会做任何事情。

我一定错过了一些非常明显但无法弄清楚的东西。

4

1 回答 1

1

不久前我已经回答了一个类似的问题。涉及一些额外的步骤,但与您的尝试最重要的区别是使用“presave”操作hook_nodeapi()而不是“update”,因为更新发生节点更新之后。

(答案中的代码取自实用程序类,因此您需要对其进行一些调整才能在函数内工作。)

于 2010-07-07T18:38:13.127 回答