পড়ার সময় আজাক্স ফ্রেমওয়ার্ক ডকুমেন্টেশন আমি #ajax
সম্পত্তির উল্লেখ পেয়েছিলাম । আমি কোডের মাধ্যমে পোকার থেকে জানি যে এই বৈশিষ্ট্যগুলির মধ্যে আরও কিছু রয়েছে যার সামনে হ্যাশ চিহ্ন রয়েছে। হ্যাশ চিহ্নটি কী বোঝায়? এই বৈশিষ্ট্যগুলি সম্পর্কে কি?
পড়ার সময় আজাক্স ফ্রেমওয়ার্ক ডকুমেন্টেশন আমি #ajax
সম্পত্তির উল্লেখ পেয়েছিলাম । আমি কোডের মাধ্যমে পোকার থেকে জানি যে এই বৈশিষ্ট্যগুলির মধ্যে আরও কিছু রয়েছে যার সামনে হ্যাশ চিহ্ন রয়েছে। হ্যাশ চিহ্নটি কী বোঝায়? এই বৈশিষ্ট্যগুলি সম্পর্কে কি?
উত্তর:
এটি সাধারণভাবে অ্যারেগুলি সরবরাহ করতে হয়, এটি কেবল অ্যাজেএক্স বা ফর্ম এপিআইয়ের সাথে নির্দিষ্ট নয় (যদিও ফর্ম এপিআই এটির বিষয়বস্তু তৈরির জন্য একচেটিয়াভাবে রেন্ডার অ্যারে ব্যবহার করে)।
সহজ কথায় #
বলতে গেলে নামের সামনে ছাড়াই একটি রেন্ডারে অ্যারেতে অ্যারের কীগুলি রেন্ডার অ্যারের শিশু হিসাবে দেখা হয় এবং পরে তারা নিজেরাই রেন্ডার হয় (পুনরাবৃত্তভাবে)।
সেই সঙ্গে একটি #
তাদের সামনে ব্যবহারের অ্যারের প্রয়োজনীয় হিসাবে রেন্ডার এর মেটা ডেটা / ভেরিয়েবল হিসেবে দেখা হয়, এবং নিজেদের অনুষ্ঠিত নেই।
রেন্ডার অ্যারে ডকস (উপরের সাথে সংযুক্ত) আসলে এটিকে সুন্দর এবং সংক্ষেপে রেখেছেন:
একটি রেন্ডার অ্যারে হ'ল একটি ক্লাসিক ড্রুপাল স্ট্রাকচার্ড অ্যারে যা ডেটার সরবরাহ করে (সম্ভবত নেস্টেড) এটি কীভাবে রেন্ডার করা উচিত তা সম্পর্কিত (বৈশিষ্ট্য, যেমন # টাইপ)।
#
কী 'নির্দেশ' যে উপরোক্ত অনুচ্ছেদের বিষয়ে কথা বলছে, অ- হয় #
কী নেস্টেড তথ্য আছে।
আমি সেই পৃষ্ঠাটি পুরোপুরি একটি পঠন দেওয়ার পরামর্শ দিচ্ছি, এটি পুরো রেন্ডার অ্যারে জিনিসটি ডি-মাইস্টিফাইজ করার একটি ভাল কাজ করে এবং কোড উদাহরণ দেয়।
থিমিং পৃষ্ঠাটিতে আরও একটি ছোট ব্যাখ্যা / কোড উদাহরণ রয়েছে যা দরকারী হতে পারে।
রেন্ডার অ্যারেগুলি দ্রুপাল (ফর্ম, থিমস, জেনারেল মার্কআপ ইত্যাদি) জুড়ে ব্যবহৃত হয় তাই তাদের সম্পর্কে ভাল কিছু জানা ভবিষ্যতের দ্রুপাল বিকাশের ক্ষেত্রে অনেক সাহায্য করবে।
বৈশিষ্ট্য এবং শিশু উপাদানগুলির মধ্যে পার্থক্য তৈরি করতে ফর্ম এপিআই সমস্ত বৈশিষ্ট্যের সামনে একটি # ব্যবহার করে। নিম্নলিখিত $form['choice_wrapper']['choice']
কোডটিতে একটি শিশু উপাদান, যখন $form['choice_wrapper']['#tree']
সম্পত্তি।
// Add a wrapper for the choices and more button.
$form['choice_wrapper'] = array(
'#tree' => FALSE,
'#weight' => -4,
'#prefix' => '<div class="clearfix" id="poll-choice-wrapper">',
'#suffix' => '</div>',
);
// Container for just the poll choices.
$form['choice_wrapper']['choice'] = array(
'#prefix' => '<div id="poll-choices">',
'#suffix' => '</div>',
'#theme' => 'poll_choices',
);
এই সমস্ত সম্পত্তি ফর্ম এপিআই রেফারেন্সে তালিকাভুক্ত । এখানে অনেকগুলি সম্পত্তি রয়েছে তবে তারা সমস্ত রেন্ডারিং, বৈধতা এবং জমা দেওয়ার বিষয়ে।
বৈশিষ্ট্যগুলির জন্য একটি উপসর্গ ব্যবহার করার কারণ হ'ল শিশু উপাদানগুলির থেকে বৈশিষ্ট্যগুলি দ্রুত ফিল্টার করা সক্ষম হয়, যা যখন তাদের রেন্ডার করা প্রয়োজন তখন দরকারী, উদাহরণস্বরূপ drupal_render () সহ , যা নিম্নলিখিত কোডটি ধারণ করে।
// Get the children of the element, sorted by weight.
$children = element_children($elements, TRUE);
// Initialize this element's #children, unless a #pre_render callback already
// preset #children.
if (!isset($elements['#children'])) {
$elements['#children'] = '';
}
// Call the element's #theme function if it is set. Then any children of the
// element have to be rendered there.
if (isset($elements['#theme'])) {
$elements['#children'] = theme($elements['#theme'], $elements);
}
// If #theme was not set and the element has children, render them now.
// This is the same process as drupal_render_children() but is inlined
// for speed.
if ($elements['#children'] == '') {
foreach ($children as $key) {
$elements['#children'] .= drupal_render($elements[$key]);
}
}
আপনি যদি এলিমেন্ট_চিল্ডেন () দেখুন , আপনি নীচের বৈশিষ্ট্যগুলি ফিল্টার আউট করার জন্য কোডটি লক্ষ্য করবেন।
// Filter out properties from the element, leaving only children.
$children = array();
$sortable = FALSE;
foreach ($elements as $key => $value) {
if ($key === '' || $key[0] !== '#') {
$children[$key] = $value;
if (is_array($value) && isset($value['#weight'])) {
$sortable = TRUE;
}
}
}