2011-11-19 3 views
10

나는 다음과 같은 모듈을 사용하고 있습니다 : 썸네일을 렌더링하고 싶은드루팔의 템플릿에 유튜브 미리보기를 렌더링하는 방법 7

  • 미디어
  • media_youtube
  • 스타일

및 (.tpl)에있는 Youtube 비디오의 어떤 테마 함수를 사용해야하고 어떤 매개 변수를 사용해야합니까?

내 최고의 quess는 다음과 같을 것이다

내가 드루팔에 아주 새로운 해요 이후 $의 my_media는 FID, URI, 파일 이름을 포함하는 배열, filemime 등

입니다

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

, 내 모든를 모듈 소스 코드를 이해하려는 시도가 실패했습니다. 나는 출력을 얻지 않고 youtube와 styles 모듈에 정의 된 스타일 이름의 모든 가능한 조합을 시도한 것처럼 느낍니다.

렌더링하지만 잘

print theme('media_youtube_video',$my_media); 

를 사용하여 작동 비디오 자체 너희들이 그것을 어떻게해야합니까?

답변

12

media_youtube 모듈 코드를 찾아 보면 이라고하는 includes/media_youtube.formatters.inc에이 기능을 구현할 수있는 기능이 있습니다. 당신은 같은 코드를 사용할 수있는 썸네일 이미지를 렌더링하기 위해 다음과 같이하십시오 만약에 TPL과 원하는

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

:

// 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! 매력처럼 작동합니다. – trioni

+0

어디에서이 코드를 추가 할 수 있습니까? – user3386779

0

그리고 당신은 당신이 할 수있는 엄지 + 비디오를 모두 인쇄하려면 $ 변수를 사용 - 그것은 같은 것입니다 : u는 사용할 수

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

Hopu ...

4

하나 더 예 (vimeo, youtube, qbrick 등)을 사용자 정의 이미지 스타일로 렌더링 할 수 있습니다.

- 미디어 필드에서 쉽게 가져올 수있는 파일 개체입니다.

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

은 유의하시기 바랍니다 당신이 당신이 video 또는 image의 경우는 다른 방법으로 다른 래퍼 객체를 사용하기 때문에, $file->type를 확인해야보다, 또한 이미지를 렌더링합니다.

관련 문제