Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Drupal 7中的模板中呈现Youtube缩略图_Php_Drupal_Drupal 7 - Fatal编程技术网

Php 如何在Drupal 7中的模板中呈现Youtube缩略图

Php 如何在Drupal 7中的模板中呈现Youtube缩略图,php,drupal,drupal-7,Php,Drupal,Drupal 7,我正在使用以下模块: 媒体 媒体与youtube 风格 并希望在模板(.tpl)中呈现Youtube视频的缩略图。我应该使用哪个主题函数,使用什么参数 我最好的任务是: $my_media['style_name'] = 'unlinked_thumbnail'; print theme('file_styles',$my_media); <?php print render($variables['content']['field_url']['#object']->cont

我正在使用以下模块:

  • 媒体
  • 媒体与youtube
  • 风格
并希望在模板(.tpl)中呈现Youtube视频的缩略图。我应该使用哪个主题函数,使用什么参数

我最好的任务是:

$my_media['style_name'] = 'unlinked_thumbnail';
print theme('file_styles',$my_media);
<?php print render($variables['content']['field_url']['#object']->content['field_video']);?>
其中$my_media是一个数组,包含fid、uri、文件名、filemime等

因为我对Drupal非常陌生,所以我所有理解模块源代码的尝试都失败了。我觉得我已经尝试了youtube和styles模块中定义的所有可能的样式名称组合,但没有得到任何输出

然而,渲染视频本身使用

print theme('media_youtube_video',$my_media);

你们是怎么做到的

media\u-youtube
模块代码中挖掘,在
includes/media\u-youtube.formatters.inc
中有一个函数,名为
media\u-youtube\u-file\u-formatter\u-image\u-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);

如果您想同时打印thumb+视频,可以执行以下操作:

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

如果您在tpl中希望使用$variables,它将类似于:

$my_media['style_name'] = 'unlinked_thumbnail';
print theme('file_styles',$my_media);
<?php print render($variables['content']['field_url']['#object']->content['field_video']);?>


Hopu u可以使用它…

还有一个示例,它可以使用自定义图像样式渲染视频缩略图(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
是否为
视频
图像
,因为它将使用不同的包装器对象和不同的方法。

您能告诉在vide tpl或其他内容中在何处添加这段代码吗?