Встроенное поле мультимедиа Видео: Вывод как объекта видеовспышки, так и миниатюры видео на дисплее узла?
Я хотел бы иметь доступ как к объекту Video Flash, так и к пути к файлу миниатюр видео с дисплея узла. Пожалуйста, дайте мне знать, если я смогу предоставить дополнительную информацию, не уверен, что что-то еще имеет отношение к делу! Спасибо!
Уточнение: В основном я хочу иметь возможность выводить как видео с пользовательским разрешением, так и миниатюру с помощью предустановки imagecache, либо из пользовательского модуля, либо внутри template.php . По сути, я бы надеялся чтобы в итоге получить как окончательный HTML-код видео, так и HTML-код изображения в виде отдельных объектов или переменных php, чтобы затем я мог выводить их, где мне заблагорассудится, из соответствующего node.tpl.php . Я предполагаю, что есть простая функция theme(), которую я могу использовать для обоих вышеперечисленных. Встроенное видео в это время может быть получено с Youtube/Vimeo.
1 answers
Один из способов сделать это - установить режим отображения поля видео на полное видео в разделе /content/types/CONTENT_TYPE/display
, а затем добавить миниатюру с помощью theme_emvideo_video_thumbnail() в качестве переменной, используя themename_preprocess_node(&$vars)
в вашей теме template.php - ИЛИ - распечатайте его непосредственно в своем узле.tpl
Хитрость theme_emvideo_video_thumbnail(($field, $item, $formatter, $node, $no_link = FALSE, $options = array()))
заключается в том, чтобы предоставить все правильные параметры. Особенно $options
Например,
<?php
// code adapted from emvideo.theme.inc
// ignore the <?php tag
$system_types = _content_type_info();
$field_name = 'field_video'; // the machine name of your video field
$field = $system_types['fields'][$field_name];
$field['widget'] = $system_types['content types'][$node->type]['fields'][$field_name]['widget']; // get CCK widget data. includes all formatting settings
$options['return_url'] = TRUE; //return URL
$options['raw'] = TRUE; // return image path. Otherwise node path is returned
print theme('emvideo_video_thumbnail', $field, $node->{$field_name}[0], 'video_thumbnail', $node, FALSE, $options);
В template.php
<?php
// change MYTHEME with the theme's machine name or use phptemplate
function MYTHEME_preprocess_node(&$vars) {
if ($vars->type == "mynodetype") {
// see code above
$vars->video_thumbnail = theme('emvideo_video_thumbnail'...);
}
}
Затем <?php print $video_thumbnail; ?>
где вам это нужно в node.tpl.php
(-ИЛИ- используйте первый блок кода напрямую в шаблоне узла)
Надеюсь, это поможет.