আমি কীভাবে কোনও ফর্মের আইডি খুঁজে পেতে পারি?


22

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

function hook_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'the form id for the node form') {
    $form['#submit'][] = 'my_custom_submit_handler';
  }
}

2

দয়া করে উপরের প্রশ্নের উত্তরগুলি দেখুন, এটি আপনার প্রশ্নেরও উত্তর দেওয়া উচিত
লক্ষ্মণ 13

1
এখানে প্রশ্নটি একেবারেই আলাদা; এটি কীভাবে কোনও ফর্ম উপাদান সনাক্ত করতে পারে তা জিজ্ঞাসা করছে না, তবে রূপটি আইডি যা বাস্তবায়নে চেক করা উচিত hook_form_alter()। রিপোর্ট করা কোড দেওয়া হলেও আমি বলব এই প্রশ্নটি আলাদা।
কিমলালুনো

উত্তর:


17

পিএইচপি ফাংশন মুদ্রণ_আর দিয়ে ফর্ম ভেরিয়েবলগুলি মুদ্রণের চেষ্টা করুন ।

function hook_form_alter(&$form, &$form_state, $form_id) {
  print_r($form);
}

আপনি পৃষ্ঠাটি দেখার সময় ফর্মটি চালু থাকলে ভেরিয়েবল (এবং নাম) প্রদর্শিত হবে।

ডেভেল মডিউল দ্বারা প্রদত্ত ডিএমএম () ফাংশনটি ব্যবহার করা হবে তথ্যের অ্যাক্সেসের (বা বরং দেখার) একটি সহজ উপায় । আপনি যেভাবে মুদ্রণ_আর ব্যবহার করবেন সেভাবে আপনি এটি ব্যবহার করতে পারেন।


1
রিপোর্ট করা কোড দেওয়া, $formভেরিয়েবলের বিষয়বস্তু দেখার দরকার নেই ।
কিমলালুনো

10
এছাড়াও $ ফর্ম_আইডি একটি পরম যা আপনি সরাসরি এটি প্রিন্ট করতে পারেন !!
নিক্সম্যাক

1
আপনি যদি devel সক্ষম করা থাকে, শুধুdpm($form_id);
কোন Sssweat

35

মডিউল ইনস্টল না করে ফোরাম আইডি সন্ধান করা

ফর্ম আইডি সন্ধান করা খুব সহজ মডিউল এবং সমস্ত ইনস্টল করার দরকার নেই

পদক্ষেপ 1: এর সম্পাদনা পৃষ্ঠায় যেতে বা আপনাকে খুলুন (বা আপনার ফর্মটি পরীক্ষা করুন)।

পদক্ষেপ 2: এটির কোনও নোড ফর্ম যদি পরিদর্শনকারী উপাদানটিতে " নোড-ফর্ম " খুঁজে পায়

ফর্ম আইডি সন্ধান করা হচ্ছেআপনি ফর্ম উপাদান হয় চেক ।

পদক্ষেপ 3: সংযুক্ত চিত্রটি দেখুন হাইলাইট করা সবুজ পাঠ্যটি ফর্মের আইডি

পদক্ষেপ 4: গুরুত্বপূর্ণ আপনি যদি হাইপেনটিকে আন্ডারস্কোর দিয়ে hook_form_alter()প্রতিস্থাপন করতে চান তবে অবশেষে এটি ব্যবহার করুন

উদাহরণ স্বরূপ: yourform_id_with_content_type_name_form

বুদ্ধিমানের মতো আপনি ড্রুপাল-এ যে কোনও ফর্মের আইডি খুঁজে পেতে পারেন যা যা করতে হবে তা হল পরিদর্শন-> ফর্ম উপাদানটি সন্ধান করুন এবং আইডি বৈশিষ্ট্যটি অনুসন্ধান করুন এবং এটি ব্যবহার করুন

আশা করি এটা সাহায্য করবে :)


1
যখন আমি কোনও দ্রুপাল 8 সাইটে মন্তব্য ফর্মটি রক্ষা করতে চেয়েছিলাম তখন এটি আমার পক্ষে কাজ করে না। আমি এই মন্তব্যটিতে দ্রুপাল.আরজে একটি সমাধান পেয়েছি , যেখানে এটি বলেছে: 1) একটি লুকানো ইনপুট উপাদান খুঁজে নিন যার nameবৈশিষ্ট্যটির "form_id" মান রয়েছে। 2) ইনপুট উপাদানটির valueবৈশিষ্ট্যটি দেখুন - বৈশিষ্ট্যের মান হ'ল কাঙ্ক্ষিত ফর্ম আইডি। উদাহরণ: স্টোরি নোডের মন্তব্য ফর্মটির আইডি "মন্তব্য_কমেন্ট_নোড_ স্টোরি_ফর্ম" রয়েছে। আপনি যদি পছন্দ করেন তবে আপনি এই উত্তরে এই নতুন তথ্য অন্তর্ভুক্ত করতে পারেন।
হার্জবউব

10

যদি আপনার ওয়েবফর্মটি "www.mydomain.com/node/351" এ অবস্থিত থাকে তবে আপনার ফর্ম আইডিটি "ওয়েবফর্ম_ক্লিয়েন্ট_ফর্ম_351" হবে। সুতরাং, আপনার নিড যাই হোক না কেন - এটি আপনার ফর্ম আইডি।


2
প্রশ্নটি ওয়েবফর্ম মডিউল সম্পর্কে নয়। এটি নোড সম্পাদনা ফর্ম সম্পর্কে।
কিমলালুনো

প্রশ্নটি নোড সম্পাদনা ফর্ম সম্পর্কিত তবে আপনি যদি কোনও ওয়েবফর্ম ফর্ম আইডি সন্ধান করতে চান তবে এটি সঠিকভাবে কাজ করে।
হারসি

এই উত্তরটি ঠিক আছে, এটি পরীক্ষা করে দেখুন।
ভিসেনটিহেরেরা

6

আপনি যদি জানেন যে কোডটি কোথায় সেই ফর্মটি সংজ্ঞা দেয় যা আপনি পরিবর্তন করতে চান, সেখানে দেখুন। ফর্ম আইডি এই ফর্মটি সংজ্ঞায়িত করা ফাংশনের নাম মাত্র।

উদাহরণস্বরূপ, ভিউগুলি ভিউ_ইউইডিট_ভিউ_ফর্মটি ফাংশন সংজ্ঞায়িত করে views75৫ লাইনের মতামত / অন্তর্ভুক্ত / অ্যাডমিন.এন.সি. হায়ারার্কিকাল সিলেক্ট ভিউ ফিল্টারটি হুড_ফর্ম_াল্টার ফাংশনে হায়ারার্কিকাল_সিলিট / মডিউল / এইচএস_ট্যাক্সোনমি_ভিউস.মডিউল এর 50 লাইন লাইনে সেই ফর্ম আইডি সন্ধান করে।


4

drupal_set_message()ফর্ম আইডি প্রদর্শন করতে ফাংশনটি ব্যবহার করুন ।

function hook_form_alter(&$form, $form_state, $form_id) {
drupal_set_message($form_id);
// other codes
}

4

দ্রুপালের যে কোনও ফর্মের ফর্ম আইডি সহজেই খুঁজে পেতে ফর্ম আইডি মডিউলটি ব্যবহার করুন ।

প্রকল্পের পৃষ্ঠা থেকে এটি সম্পর্কে একটি উদ্ধৃতি এখানে দেওয়া হয়েছে:

যে কোনও ফর্মের উপরে ঘোরাফেরা করার মাধ্যমে আপনি একটি প্রাসঙ্গিক লিঙ্ক উপলব্ধ দেখতে পাবেন। লিঙ্কটি প্রসারিত করে আপনি ফর্ম আইডি দেখতে পাবেন। লিঙ্কটি ক্লিক করুন এবং আপনি অনুলিপি ফর্ম আইডি এবং hook_for_FORM_ID_alter () হুক পরামর্শ সঙ্গে একটি মডেল উইন্ডো দেখতে পাবেন।

এই মডিউলটি অবচয় করা হয়েছে। এটি ডেভেল ফর্ম ডিবাগ হিসাবে উন্নত, প্রসারিত এবং পুনরায় ব্র্যান্ড করা হয়েছিল ; পরিবর্তে এটি ব্যবহার করুন।

প্রকাশ: আমি এই মডিউলগুলির রক্ষণাবেক্ষণকারী।


3

আপনার উল্লিখিত কোডটি নোড ফর্মের ফর্ম আইডিটি খুঁজছে বলে দুটি মামলা রয়েছে।

দ্রুপাল ঘ

কোডটি যদি কোনও সামগ্রীর ধরণের জন্য সেটিংস সেট করতে ব্যবহৃত ফর্মটি পরিবর্তনের চেষ্টা করে থাকে তবে তারপরে নিম্নলিখিত আইএফ-বিবৃতিটি ব্যবহার করা উচিত।

if ($form_id == 'node_type_form' && isset($form['identity']['type'])) { /* … */ }

কোডটি যদি নোড সম্পাদনা ফর্মটি পরিবর্তনের চেষ্টা করছে, তবে কোডটি নীচের আইএফ-বিবৃতিটি ব্যবহার করা উচিত।

if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }

ড্রুপাল 7 এবং উচ্চতর

প্রথম ক্ষেত্রে, আইএফ-বিবৃতি নিম্নলিখিত হওয়া উচিত:

if ($form_id == 'node_type_form') { /* … */ }

একটি ভিন্ন পন্থা ব্যবহার করে, ধরুন যে মাইমডিউলটি আপনার মডিউলটির সংক্ষিপ্ত নাম, আপনি ব্যবহার করতে পারেন mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)। ড্রুপাল Since সাল থেকে, অন্য মডিউল দ্বারা প্রয়োগ করা ফর্মটি পরিবর্তন করতে ব্যবহৃত সমস্ত হুকগুলি $form_idসর্বশেষ প্যারামিটার হিসাবে পেয়েছে । দেখুন hook_form_alter () , hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter ()

দ্বিতীয় ক্ষেত্রে, আইএফ-বিবৃতিটি ড্রুপাল 6 এর জন্য একই ব্যবহৃত।

if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }

1

প্রথমে ডেভেল মডিউল ইনস্টল করুন .এখন নীচের কোডের মতো একটি মডিউল তৈরি করুন

function hook_form_alter(&$form, &$form_state, $form_id) {
  dpm($form);
}

তারপরে আপনি কোনও ফর্মের সমস্ত বিবরণ দেখতে পাবেন, যেমন ফর্ম আইডি, কোনও ফর্মের ক্ষেত্রের নাম ইত্যাদি

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