2011-11-19 36 views
10

Tôi đang sử dụng các thành phần sau:Làm thế nào để vẽ lại một hình ảnh thu nhỏ Youtube trong một khuôn mẫu trong Drupal 7

  • phương tiện truyền thông
  • media_youtube
  • Styles

và muốn vẽ lại một hình ảnh thu nhỏ của một video Youtube trong một mẫu (.tpl). Tôi nên sử dụng chức năng chủ đề nào và với thông số nào?

quess tốt nhất của tôi sẽ là một cái gì đó như:

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

nơi $ my_media là một mảng chứa fid, uri, filename, filemime, vv

Vì tôi là rất mới đến Drupal, tất cả của tôi cố gắng để làm cho tinh thần của mã nguồn mô-đun đã thất bại. Tôi cảm thấy như tôi đã thử tất cả các kết hợp có thể có của tên phong cách được định nghĩa trong các mô-đun youtube và phong cách mà không nhận được bất kỳ đầu ra.

Rendering video riêng của mình tuy nhiên công trình tốt bằng

print theme('media_youtube_video',$my_media); 

Làm thế nào để các bạn làm điều đó?

Trả lời

12

Đào xung quanh trong mã số media_youtube có chức năng sẽ tạo điều này cho bạn trong includes/media_youtube.formatters.inc được gọi là media_youtube_file_formatter_image_view(). Bạn có thể sử dụng mã như sau để làm cho hình ảnh thu nhỏ:

// 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); 
+0

Thx! Làm việc như một say mê. – trioni

+0

bạn có thể cho biết nơi để thêm đoạn mã này hoặc trong tpl vide hay cái gì khác? – user3386779

0

Và nếu bạn muốn in cả hai ngón tay cái + video mà bạn có thể làm điều này:

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

Nếu bạn trong một tpl và muốn sử dụng $ biến - nó sẽ là một cái gì đó như:

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

Hopu u có thể sử dụng nó ...

4

thêm một ví dụ , có thể tạo hình thu nhỏ video (vimeo, youtube, qbrick, v.v.) với kiểu hình ảnh tùy chỉnh của bạn.

$file - Đối tượng tệp bạn có thể dễ dàng nhận được từ trường phương tiện.

$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 
)); 

Xin lưu ý, rằng nếu bạn muốn làm cũng ảnh, hơn bạn cần phải kiểm tra $file->type nếu nó video hoặc image, bởi vì nó sẽ sử dụng đối tượng bao bọc khác nhau với các phương pháp khác nhau.

Các vấn đề liên quan