2010-07-07 4 views
1

Вот мой пользовательский модуль; он в основном получает файл с определенного URL, сохраняет его на временную папку, а затем я хочу, чтобы изменить CCK поле типа «файл» (имя поля являются: field_video_thumb):Проблема с сохранением поля изображения с помощью крючков в Drupal 6

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; 
    } 
} 

Проблема у меня есть здесь заключается в том, что когда i ucomment «node_save ($ node)» работает (но вызывает рекурсивно, конечно), и удаление его ничего не делает.

Должно быть, я пропустил что-то действительно очевидное, но не могу понять.

+0

В приведенном выше коде, $ файла, $ files_path не определены , если только это не было опущено. – Kevin

ответ

1

У меня есть answered a similar question некоторое время назад. Есть несколько дополнительных шагов, но самое важное отличие от вашей попытки состоит в том, чтобы использовать операцию «presave» hook_nodeapi() вместо «обновления», по мере того как происходит обновление после узел обновлен.

(код в ответ был взят из утилиты класса, так что вам нужно будет настроить его немного, чтобы работать из функции.)

+0

Да, «presave» сделал трюк. Большое спасибо ! – Disco