Уважаемые Друпалеры, каким образом можно реализовать выполнение неких сценариев при сохранении или обновлении содержания ноды? К примеру, через file_field загружается видеорилик, при нажатии кнопок сохранить или применить ffmpeg-php должен сохранить кадр из этого ролика.
Комментарии
http://api.drupal.ru/api/function/hook_nodeapi
Видимо я что-то не так понял. Можете указать на ошибку?
switch ($op) {
case 'insert':
if ($node->type == story) {
$file = $node->field_video[0][filepath];
$frame = 550;
$max_width = 550;
$movie = new ffmpeg_movie($file);
$image = $movie->getFrame($frame);
$show_img = $image->toGDImage();
$new_image = new ffmpeg_frame($show_img);
$old_width = $new_image->getWidth();
$old_heighgt = $new_image->getHeight();
$mov_ratio = $old_width/$old_heighgt;
if ($old_width > $max_width){
$new_width = $max_width;
}
$new_height = $new_width / $mov_ratio;
$new_image->resize($new_width, $new_height);
$new_show_img = $new_image->toGDImage();
$img = file_save_upload($new_show_img, $dest = '/sites/files/video/cover/', $replace = FILE_EXISTS_RENAME);
[user=chmod]chmod[/user]($img, 0660);
}
break;
}
}
'presave': Нода прошла проверку и вскоре будет сохранена. Модули могут использовать этот хук, чтобы внести изменения в ноду, прежде чем она сохранится в базу данных.
Всем спасибо. Разобрался.