একটি ফর্মের জন্য কাস্টম বৈধতা?


30

আমাকে কোনও ফর্মে কাস্টম বৈধতা যুক্ত করতে হবে, বলুন নিবন্ধের ফর্মটি যুক্ত করুন।

আমি এটি hook_FORM_ID_validate()হ্যান্ডেল করার মতো কিছু প্রত্যাশা করছিলাম তবে এপিআই ডকুমেন্টেশনে রিলেভেন্ট কিছুই খুঁজে পাচ্ছি না।

কোনও ফর্মটিতে কাস্টম বৈধতা যুক্ত করার উপায় কী?

উত্তর:


57

আপনি যে কোনও আকারে বৈধতা ফাংশন সংখ্যক যোগ করতে hook_form_FORM_ID_alter()পারেন:

function mymodule_form_article_node_form_alter(&$form, &$form_state, $form_id) {
  // There will already be some validate handlers added so you need to add to the
  // array rather than overwrite it.
  $form['#validate'][] = 'mymodule_article_form_validate';

  // As mentioned above you can add as many as you want
  $form['#validate'][] = 'mymodule_article_form_validate_2';
}

function mymodule_article_form_validate($form, &$form_state) {
  // Random example, if the title is 'test' throw an error
  if ($form_state['values']['title'] == 'test') {
    form_set_error('title', 'Title cannot be "test"');
  }
}

মনে করুন আমি ইতিমধ্যে 2 বৈধতা ফাংশন আছে এমন একটি ফর্মের সাথে কাস্টম ফর্মের বৈধতা যুক্ত করেছি। তাহলে কোনটি ড্রুপাল 7 এ প্রথম অগ্রাধিকার পাবে?
গুরু

যা সর্বকালে @ গুরুতে অ্যারে প্রথম হয়
ক্লাইভ

যদি ফর্মটি ব্যবহারকারীর_রেজিস্ট্রেশন_ফর্ম হয় তবে এটি সর্বদা "[# বৈধ]]> অ্যারে ([0] => ব্যবহারকারীর_অ্যাকউন্ট_ফর্ম_ডিয়ালিটি [1] => ব্যবহারকারীর নামকরণ)" রাখে। মনে করুন আমি কাস্টম বৈধতা যুক্ত করতে যাচ্ছি। তারপরে এটির মতো হওয়া উচিত "[# বৈকল্পিক] => অ্যারে ([0] => ব্যবহারকারীর অ্যাকাউন্ট_ফর্ম_ডিয়্যালিট [1] => ব্যবহারকারী_ডিয়ালিটি_পিকচার [2] => ব্যবহারকারীর_রেজিস্টার_যুক্তি") "" তবে আমি প্রথমে "ব্যবহারকারীর_রেজিস্টারে_যুক্তকরণ" ফাংশনটি চালাতে চাই।
গুরু

অন্যান্য ক্ষেত্রগুলির জন্য, আপনি ব্যবহার করতে পেয়েছেন:if ($form_state['values']['field_custom']['und'][0]['value'] == 'Error') { //throw error }
ক্রিস হ্যাপি

আকারের জন্য বৈধতা কীভাবে সেট করবেন, এই পদ্ধতিতে প্রসার? এবং আরও একটি প্রশ্ন, যদি "আপলোড" এবং "অপসারণ" এর মতো অজ্যাক্স কার্যকারিতা থাকে তবে আমরা এর জন্য বৈধতাটি কীভাবে পরিচালনা করি?
স্টেনিয়া

6

hook_form_alterআপনার #validateসম্পত্তি ব্যবহার করে আপনার ফাংশনটি ব্যবহার করা উচিত ।

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