Как сделать миниатюру Youtube в шаблоне в Drupal 7

Я использую следующие модули:

  • СМИ
  • media_youtube
  • Стили

и хотел бы сделать миниатюру видео Youtube в шаблоне (.tpl). Какую функцию темы я должен использовать и с какими параметрами?

Моя лучшая проблема была бы такой:

$my_media['style_name'] = 'unlinked_thumbnail'; print theme('file_styles',$my_media); 

где $ my_media – массив, содержащий fid, uri, filename, filemime и т. д.

Поскольку я очень новичок в Drupal, все мои попытки понять исходный код модулей не удались. Я чувствую, что пробовал все возможные комбинации названий стилей, определенных в модуле youtube и styles, без получения каких-либо результатов.

Однако рендеринг самого видео работает очень хорошо, используя

 print theme('media_youtube_video',$my_media); 

Как вы, ребята, это делаете?

media_youtube в media_youtube модуля media_youtube есть функция, которая будет создавать это для вас в includes/media_youtube.formatters.inc называется media_youtube_file_formatter_image_view() . Для рендеринга уменьшенного изображения вы можете использовать следующий код:

 // Make sure the correct include file is loaded module_load_include('inc', 'media_youtube', '/includes/media_youtube.formatters.inc'); // Load the file $file = file_load($my_media['fid']); // Set up the settings array with your image style $display['settings'] = array('image_style' => 'unlinked_thumbnail'); // Get the render array for the thumbnail image $image_render_array = media_youtube_file_formatter_image_view($file, $display, LANGUAGE_NONE); // Render it print render($image_render_array); 

Еще один пример, который позволяет отображать миниатюру видео (vimeo, youtube, qbrick и т. Д.) С вашим пользовательским стилем изображения.

$file – Файловый объект, который вы можете легко получить из медиа-поля.

 $wrapper = file_stream_wrapper_get_instance_by_uri($file->uri); $image_uri = $wrapper->getLocalThumbnailPath(); $image_rendered = theme('image_style', array( 'style_name' => 'YOUR_IMAGE_STYLE_HERE', 'path' => $image_uri )); 

Обратите внимание, что если вы хотите также отобразить изображение, вам нужно проверить $file->type если это video или image , потому что оно будет использовать разные объекты-обтекатели различными способами.

И если вы хотите напечатать оба пальца + видео, вы можете сделать это:

 <?php print render($content['field_your_field']); ?> 

Если вы в tpl и хотите использовать переменные $ – это будет что-то вроде:

 <?php print render($variables['content']['field_url']['#object']->content['field_video']);?> 

Hopu u может использовать его …