হুক_ফর্ম_লটার () এত অগোছালো কেন?


40

আমি সবেমাত্র দৌড়েছি এমন একটি উদাহরণ এখানে। আমি আমার ফিল্ডের লেবেলে কিছু HTML রাখার চেষ্টা করছি।

$form['field_feedback']['und']['#title'] <- has the title
$form['field_feedback']['und'][0]['#title'] <- has the title
$form['field_feedback']['und'][0]['value']['#title'] <- has the title. (Works)

কেন কেবল তিনটি জনবহুল # শিরোনামের গুণাবলী কেবলমাত্র একটি ব্যবহার করা হচ্ছে?


1
এই $ ফর্ম অ্যারে তৈরি করা হয় যেখানে? আমি জানি যে হুক_ফর্ম_ল্টারে এই কাঠামোর সাথে আমাদের কোনও $ ফর্ম নেই
মোহাম্মদ আলী আকবরী

এই জন্য আপনাকে ধন্যবাদ. আমি আমার চুল টেনে বের করছিলাম। অ্যারের কাঠামো হাস্যকর।
জেএম 01

উত্তর:


72

আপনি যা দেখছেন তা হল দ্রুপাল কীভাবে কোনও ফর্মের ক্ষেত্রগুলি উপস্থাপন করে। এটি এভাবে ভেঙে যায়:

  • বাইরের অ্যারের বাচ্চারা, $form['field_back']['und'](এর 'und'জন্য 'undefined') ক্ষেত্রটি যে বিভিন্ন ভাষায় অনুবাদ করা হয়েছে are দ্রুপালে, আপনাকে কোডে ব্যবহারের LANGUAGE_NONEজন্য সুপারিশ করা হয় 'und'
  • প্রতিটি ভাষার অ্যারের অভ্যন্তরে থাকা শিশুরা $form['field_feedback']['und'][0]ক্ষেত্রের জন্য বিভিন্ন এন্ট্রি উপস্থাপন করে। উদাহরণস্বরূপ, যদি একটি ক্ষেত্র সীমাহীন cardinality আছে, এবং যে ক্ষেত্রের জন্য বিভিন্ন এন্ট্রি, তারা দেখাবে যেমন $form['field_feedback']['und'][0], $form['field_feedback']['und'][1]ইত্যাদি
  • পরিশেষে ক্ষেত্রের মানগুলি যেমন, যেমন ফর্ম ইনপুট উপাদান (গুলি) থাকে $form['field_feedback']['und'][0]['value']। এক্ষেত্রে কলামের নামটি হ'ল valueনোডের রেফারেন্স ক্ষেত্রের জন্য এটি টাইপ হবে nidইত্যাদি। যদি কোনও ফিল্ডের সাথে একাধিক ডেটা কলাম যুক্ত থাকে তবে আপনি আরও শিশু দেখতে পাবেন। এগুলি একটি পাঠ্য ক্ষেত্র দ্বারা প্রতিনিধিত্ব করা হয় / বাক্স / বিশেষ উইজেট নির্বাচন করুন এবং শেষ পর্যন্ত ক্ষেত্রের জন্য মান সরবরাহ করবে।

শ্রেণিবদ্ধ জুড়ে বিভিন্ন উপাদানগুলিতে শিরোনাম যুক্ত করা হয়েছে তা সত্যই ঘটনাচক্রে। এই শিরোনামগুলি ফর্মটিতে প্রদর্শিত হবে কিনা তা রেন্ডার অ্যারেটির নির্দিষ্ট সেটিংসের নিচে যা প্রতিটি #titleঅন্তর্ভুক্ত রয়েছে।

প্রকৃত ফর্ম উইজেটের শিরোনাম পরিবর্তন করতে, আপনাকে কেবল অ্যারের একেবারে নীচে থাকা ফর্ম উপাদানটি সম্পর্কে চিন্তা করতে হবে: প্রকৃত ইনপুট উপাদানগুলি ( $form['field_feedback']['und'][0]['value']ইত্যাদি)।

এটি সম্ভবত লক্ষণীয় যে কোনও নির্দিষ্ট ক্ষেত্রের জন্য ব্যবহৃত উপাদান / উইজেটটি বেশ জটিল হতে পারে। আপনার যদি ইতিমধ্যে এটি না থাকে তবে আপনার ডেলি মডিউলটি ইনস্টল করা উচিত এবং অ্যারেটি dpm()পরীক্ষা করতে ফাংশনটি ব্যবহার করা উচিত $form; এটি আপনাকে দেখিয়ে দেবে যে অ্যারেতে আপনি যে উপাদানগুলিকে টার্গেট করার চেষ্টা করছেন সেটি ঠিক কোথায় রয়েছে।


3
সংক্ষেপে, এমন কিছুতে শিরোনাম যুক্ত করা যা দ্রুপাল কোনও ফর্ম এপিআই অ্যারে বিবেচনা করে না; এর কোনও প্রভাব নেই; এমনকি সেই ক্ষেত্রেও এটি বলা হয় না যে # টাইটেলটি বিবেচনায় নেওয়া হয়, যেহেতু এটি সমস্ত ফর্ম উপাদানগুলির জন্য কোনও বৈশিষ্ট্য নয় দ্রুপাল প্রয়োগগুলি। ফিল্ড এপিআই বিষয়গুলিকে জটিল করে তোলে , কারণ এটি ফর্ম অ্যারেটিতে একটি সাধারণ অ্যারে যুক্ত করে, তবে এটি কোনও রূপের উপাদানকে সনাক্ত করতে # টাইপ খুঁজছেন এমন দ্রুপালকে বিভ্রান্ত করে না ।
kiamlaluno
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.