Встроенное поле мультимедиа Видео: Вывод как объекта видеовспышки, так и миниатюры видео на дисплее узла?


Я хотел бы иметь доступ как к объекту Video Flash, так и к пути к файлу миниатюр видео с дисплея узла. Пожалуйста, дайте мне знать, если я смогу предоставить дополнительную информацию, не уверен, что что-то еще имеет отношение к делу! Спасибо!

Уточнение: В основном я хочу иметь возможность выводить как видео с пользовательским разрешением, так и миниатюру с помощью предустановки imagecache, либо из пользовательского модуля, либо внутри template.php . По сути, я бы надеялся чтобы в итоге получить как окончательный HTML-код видео, так и HTML-код изображения в виде отдельных объектов или переменных php, чтобы затем я мог выводить их, где мне заблагорассудится, из соответствующего node.tpl.php . Я предполагаю, что есть простая функция theme(), которую я могу использовать для обоих вышеперечисленных. Встроенное видео в это время может быть получено с Youtube/Vimeo.

 1
Author: DanH, 2011-07-18

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 (-ИЛИ- используйте первый блок кода напрямую в шаблоне узла)

Надеюсь, это поможет.

 2
Author: zerolab, 2011-09-06 17:30:26