ক্ষেত্রের মানটি এর বিন্যাস সহ আমি কীভাবে রেন্ডার করব?


9

আমি ডাটাবেস থেকে একটি ক্ষেত্রের মান এবং এর ফর্ম্যাটটি পড়ছি। আমি কীভাবে এই মানটিকে ফর্ম্যাট দিয়ে রেন্ডার করব?

উত্তর:


36

ফিল্ড এপিআই কীভাবে কাজ করে তা বিচ্ছুরণ করতে আপনি অনেক সময় ব্যয় করতে পেরেছিলেন, আপনি নিজেই ডাটাবেসটি অনুসন্ধানের পরিবর্তে ফিল্ডের বিষয়বস্তু রেন্ডার করতে সরাসরি ফিল্ড এপিআই ব্যবহার করা উচিত। ক্ষেত্রগুলিতে প্রচুর এনকেপসুলেশন এবং বিমূর্ততা যুক্ত হয়েছে যা বাইপাস ছাড়লে ওল্ড গডসকে জাগিয়ে তুলবে।

ফিল্ড এপিআই ব্যবহার করে, আপনি যদি পুরো বিন্যাসিত ক্ষেত্রটি লেবেল এবং সমস্ত মান সহ পূর্ণ করতে চান তবে আপনি এটি ব্যবহার করতে চান field_view_field():

$nid = 1;
$node = node_load($nid);
$output = field_view_field('node', $node, 'field_foo');

// $output is a render array, so it needs to be rendered first
print render($output);

আপনি যদি কেবল একটি ক্ষেত্রের মধ্যে একটি আইটেমের ফর্ম্যাট মানটি প্রদর্শন করতে চান তবে আপনাকে ব্যবহার করা দরকার field_view_value()যা কিছুটা আরও জড়িত:

// Must load field content for entity before using field_view_value()
$fields = field_get_items('node', $node, 'field_foo');

// $index corresponds to the value you want to render. First value = 0.
$index = 0;
$output = field_view_value('node', $node, 'field_foo', $fields[$index]);

print render($output);

আপনি যদি ক্ষেত্রের উদাহরণগুলির জন্য নির্দিষ্ট ডিফল্ট ব্যতীত অন্য কোনও ফর্ম্যাটর ব্যবহার করতে চান তবে তা $displayপরামিতি ব্যবহার করে পাস করুন field_view_field()বা field_view_value():

$display = array('type' => 'my_formatter');
$output = field_view_field('node', $node, 'field_foo', $display);

$index (Field_view_value () তৃতীয় প্যারামিটার) $ ব-দ্বীপ নয়। একক মান ক্ষেত্রে এটি 0 হবে So সুতরাং, আপনি ব্যবহার করতে পারেন $output = field_view_value('node', $node, 'field_foo', $fields[0]);বা$output = field_view_value('node', $node, 'field_foo', $fields[$delta]);
jirirpro

0

এপিআই চেক করে, আমি মনে করি আপনি এটি সন্ধান করছেন। (আমি যাইহোক কোড পরীক্ষা করিনি)

$the_field = field_view_field($entity_type, $entity, $field_name, $display = array(), $langcode = NULL);

// render the field
drupal_render($the_field);

আপডেট: সদৃশ উত্তর, আমাকে মুছতে পারে। আমি উত্তর লিখতে থাকাকালীন অন্যান্য উত্তর পোস্ট করেছে।


0

আপনি যদি মডিউলটি ব্যবহার করেন তবে কাস্টম ফর্ম্যাটরগুলি আপনার ফর্ম্যাটারের ম্যাশাইন নামের এইরকমটির আগে 'কাস্টম_ফর্ম্যাটটার_' উপস্থাপন করতে ভুলবেন না:

$display = array('type' => 'custom_formatters_my_formatter');

0

দেখে মনে হচ্ছে আপনি কীভাবে এই শব্দটি আউটপুট হয় সামঞ্জস্য করতে টেমপ্লেট ফাইলটি সম্পাদনা করতে পারেন:

1) একটি কাস্টম ডেট ফোম্যাট সেট আপ করুন এবং "শর্ট_ডেট_অনলি" বা যেকোন কিছু যেমন একটি মেশিনের নাম দিন। 2) যে ফর্ম্যাটটি ব্যবহার করতে কোনও সামগ্রীর ধরণের জন্য ডিসপ্লে বিকল্পগুলি কনফিগার করুন 3) ফিল্ড টেম্পলেট - ফিল্ড_ডেট_কাস্টম-সামগ্রী_type.tpl এর মতো কিছুতে ওভাররাইড করুন

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