أنا أتطلع لفعل شيء كهذا
$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;
?>
إنك تسئ تطبيق drupal_render()
في مثالك. drupal_render()
يحتفظ بالمحتوى المراد عرضه والتعليمات الخاصة بكيفية عرضه في مصفوفة بحيث يمكن تعديل كل المحتوى بواسطة وحدات أخرى ، حتى آخر لحظة قبل العرض. يتم تحميل كل شيء في الوسيطة drupal_render()
&$elements
_ ، وهي الوسيطة الخاصة بالدالة. drupal_render()
لا يُرجع العناصر المقدمة من المتغيرات التي تم تمريرها في الوسيطات.
انظر إلى theme API لسلسلة من الوظائف التي ستوفر HTML لعناصر المحتوى المختلفة بما في ذلك الملفات.
الوظيفة التي ربما تبحث عنها هي file_get_content_headers () ، والتي تحدد الرؤوس للسماح بتنزيل الملف ، أو (إذا كان الملف ملفًا نصيًا ، أو صورة) ليتم عرضها بشكل مضمن.
تتطلب الوظيفة كائن ملف كما تم إرجاعه بواسطة file_load_multiple () أو file_load () أو الكيان_الحمل ('file') .