একটি ফাইল আইডি দেওয়া (ফিড) কীভাবে আমি এইচডিএমএল পেতে পারি যা সেই ফিড উপস্থাপন করে?


উত্তর:


15

এটি আমার পক্ষে কাজ করে। মিডিয়া মডিউলটির মাধ্যমে ভিডিওগুলির জন্য:

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

মনে রাখবেন যে চিত্র_লোড আই / ও সম্পাদন করে।

এবং বিপরীত জন্য; একটি ফাইল নাম দেওয়া একটি মজাদার পেতে।

<?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
?>

মিডিয়া এম্বেড কোড দেওয়া হয়েছে, একটি এফআইডি পান।

<?php
$file = media_parse_to_file($embed_code);
if (empty($file->fid)) {
  return FALSE;
}
return $file->fid;
?>

আপনি কি দয়া করে "$ কী = 'মিডিয়া_' ব্যাখ্যা করতে পারেন sub সাবস্ট্রাস্ট ($ ফাইল-> ফাইলমাইম,)) '' _ভিডিও ';" ? আমি খালি থেকে ভিডিও রেন্ডার করার চেষ্টা করছি। আমি কোনও ভিডিও ফিল্ড ব্যবহার করতে চাই না এবং আমার কোনও কাস্টম ভিডিও ফর্ম্যাট নেই।
তেজস বৈদ্য

1
@TejasVaidya যদি $file->filemime = video/youtubeতারপর কী 'media_youtube_video' যার থিম ফাংশন ভিতরে ব্যবহার করবে হচ্ছে শেষ হয়ে যাবে drupal.org/project/media_youtube (দেখুন media_youtube_theme () )
mikeytown2

7

আপনি drupal_render()আপনার উদাহরণটিতে ভুল ব্যবহার করছেন। drupal_render()প্রদর্শিত সামগ্রীতে এবং কীভাবে এটি অ্যারেতে রেন্ডার করা যায় তার নির্দেশাবলী রাখে যাতে সমস্ত সামগ্রী অন্য মডিউল দ্বারা পরিবর্তিত হতে পারে, প্রদর্শিত হওয়ার আগে শেষ মুহুর্ত পর্যন্ত। সমস্ত কিছু drupal_render()আর্গুমেন্টে বোঝা হয় &$elements, যা ফাংশনটির জন্য আর্গুমেন্ট। drupal_render()আর্গুমেন্টে পাস হওয়া ভেরিয়েবলগুলি থেকে রেন্ডার করা উপাদানগুলি ফেরত দেয় না।

থিম এপিআই দেখুন এমন ক্রিয়াকলাপগুলির জন্য যা ফাইল সহ বিভিন্ন সামগ্রী উপাদানগুলির জন্য এইচটিএমএল সরবরাহ করবে।


এটি বলতে ঘৃণা করুন তবে ডিবাগ_ব্যাকট্রেস আমাকে অন্যথায় বলেছে। সে কারণেই আমি আমার উত্তর / প্রশ্নে দ্রুপাল_রেন্ডার নিয়ে গিয়েছিলাম ।
মাইকাইটাউন 2

3

আপনি যে ফাংশনটি সন্ধান করছেন তা হ'ল ফাইল_জেট_কন্টেন্ট_হেডারস () , যা কোনও ফাইল ডাউনলোড করার অনুমতি দেওয়ার জন্য শিরোনাম নির্ধারণ করে, বা (যদি ফাইলটি কোনও টেক্সট ফাইল বা কোনও চিত্র থাকে তবে) ইনলাইন দেখার জন্য।

ফাংশনটির জন্য ফাইল- লোড_মલ્ટ্টিপল () , ফাইল_লোড () , বা সত্তা_লোড ('ফাইল') দ্বারা ফেরত হিসাবে কোনও ফাইলের বিষয়বস্তুর প্রয়োজন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.