나는 이런 식으로 뭔가를 찾고 있어요
$fid = 15;
$file = (array)file_load($fid);
$content = drupal_render($file);
echo $content;
특히이 fid는 7.x-2.x 버전의 미디어 모듈 에서 가져온 것 입니다.
나는 이런 식으로 뭔가를 찾고 있어요
$fid = 15;
$file = (array)file_load($fid);
$content = drupal_render($file);
echo $content;
특히이 fid는 7.x-2.x 버전의 미디어 모듈 에서 가져온 것 입니다.
답변:
이것은 나를 위해 작동합니다. 미디어 모듈을 통한 비디오의 경우 :
<?php
$file = file_load($fid);
if (strpos($file->filemime, 'video/') !== 0) {
return;
}
$key = 'media_' . substr($file->filemime, 6) . '_video';
$formatter_info = file_info_formatter_types($key);
$content = array();
$content['#theme'] = $key;
$content['#uri'] = $file->uri;
if (isset($formatter_info['default settings'])) {
$content['#options'] = $formatter_info['default settings'];
}
$rendered = drupal_render($content);
return $rendered;
?>
그리고 이미지를 위해; 사용 가능한 사전 설정이 표시됩니다 ( #style_name
).
<?php
$styles = image_styles();
echo '<pre>' . print_r($styles, TRUE) . '</pre>';
?>
그리고 이것은 파일을 렌더링합니다
<?php
$file = file_load($fid);
$image = image_load($file->uri);
$content = array(
'file' => array(
'#theme' => 'image_style',
'#style_name' => 'large',
'#path' => $image->source,
'#width' => $image->info['width'],
'#height' => $image->info['height'],
),
);
echo drupal_render($content);
?>
참고 image_load의 수행 I / O.
그리고 그 반대의 경우도 있습니다. 파일 이름이 주어지면 fid를 얻으십시오.
<?php
$query = new EntityFieldQuery();
$result = $query
->entityCondition('entity_type', 'file')
->propertyCondition('filename', basename($filename))
->execute();
foreach ($result['file'] as $values) {
$fid = $values->fid;
break;
}
echo $fid
?>
주어진 미디어 임베드 코드는 FID를 얻습니다.
<?php
$file = media_parse_to_file($embed_code);
if (empty($file->fid)) {
return FALSE;
}
return $file->fid;
?>
$file->filemime = video/youtube
다음 키의 테마 기능 내부 사용 'media_youtube_video'끝나게됩니다 drupal.org/project/media_youtube를 (참조 ) media_youtube_theme를 ( )
귀하 drupal_render()
의 예에서 잘못 적용 되고 있습니다. drupal_render()
표시 할 내용과 표시하기 전 마지막 순간까지 다른 모듈에서 모든 내용을 수정할 수 있도록 배열에 내용을 렌더링하는 방법에 대한 지침을 보유합니다. 모든 것은 drupal_render()
인수에 로드되며 &$elements
이는 함수의 인수입니다. drupal_render()
인수에 전달 된 변수에서 렌더링 된 요소를 반환하지 않습니다.
파일을 포함한 다양한 컨텐츠 요소에 HTML을 제공하는 일련의 함수 에 대해서는 테마 API 를 살펴보십시오 .
아마도 찾고있는 함수는 file_get_content_headers ()입니다. 이며 파일을 다운로드 할 수 있도록 헤더를 설정하거나 파일이 텍스트 파일 또는 이미지 인 경우 인라인으로 볼 수 있습니다.
이 함수에는 file_load_multiple () , file_load () 또는 entity_load ( 'file')이 반환 한 파일 객체가 필요합니다 .