Form API ব্যবহার করে Custom Form তৈরি

ফর্ম এবং কন্টেন্ট টাইপ Customization - ড্রুপাল (Drupal) - Web Development

283

ড্রুপাল (Drupal) এর Form API একটি শক্তিশালী টুল যা ডেভেলপারদের কাস্টম ফর্ম তৈরি এবং তাদের সাথে ইন্টারঅ্যাকশন তৈরি করতে সহায়তা করে। ফর্মগুলি ড্রুপালে কাস্টম কন্টেন্ট সংগ্রহ, ইউজার ইনপুট গ্রহণ, এবং ডেটা প্রক্রিয়া করতে ব্যবহৃত হয়। ড্রুপাল ফর্ম API ব্যবহারের মাধ্যমে আপনি ফর্মের ক্ষেত্র, বৈধতা, সাবমিশন হ্যান্ডলিং এবং আউটপুট কাস্টমাইজ করতে পারেন।

এই গাইডে আমরা ড্রুপাল Form API ব্যবহার করে কাস্টম ফর্ম তৈরি করার একটি সাধারণ পদ্ধতি আলোচনা করবো।


১. কাস্টম ফর্ম তৈরি করা

ড্রুপালে কাস্টম ফর্ম তৈরি করার জন্য, আপনাকে একটি মডিউল তৈরি করতে হবে যা ফর্মের জন্য প্রয়োজনীয় কোড ধারণ করবে।

কাস্টম মডিউল তৈরি করা

  1. মডিউল ডিরেক্টরি তৈরি করুন: প্রথমে একটি নতুন মডিউল ডিরেক্টরি তৈরি করুন, যেমন custom_form_module
  2. custom_form_module.module ফাইল তৈরি করুন: এই ফাইলটি আপনার মডিউলের লজিক ধারণ করবে।
  3. মডিউল ইনফো ফাইল তৈরি করুন: custom_form_module.info.yml ফাইলটি তৈরি করুন এবং এতে মডিউলের তথ্য উল্লেখ করুন।
name: 'Custom Form Module'
type: module
description: 'A custom form example using Form API.'
core_version_requirement: ^8 || ^9
package: Custom
dependencies:
  - drupal:form

কাস্টম ফর্ম কোড তৈরি করা

এখন, আমরা Form API ব্যবহার করে কাস্টম ফর্ম তৈরি করব।

  1. ফর্ম তৈরি করতে hook_menu() বা Route ব্যবহার: আপনার ফর্মটি প্রদর্শন করার জন্য রাউট তৈরি করুন।
  2. ফর্ম তৈরি এবং সাবমিট হ্যান্ডলার লিখুন: ফর্ম তৈরি করতে ড্রুপাল ফর্ম API ব্যবহার করতে হবে।
/**
 * Implements hook_menu().
 */
function custom_form_module_menu() {
  $items = array();

  // Add a new route to show the form.
  $items['custom-form'] = array(
    'title' => 'Custom Form',
    'page callback' => 'custom_form_page',
    'page arguments' => array(),
    'access callback' => 'user_access',
    'access arguments' => array('administer site configuration'),
    'type' => MENU_CALLBACK,
  );

  return $items;
}

/**
 * Custom form page callback.
 */
function custom_form_page() {
  $form = drupal_get_form('custom_form_module_form');
  return $form;
}

/**
 * Define the form using Form API.
 */
function custom_form_module_form($form, &$form_state) {
  // Add a text field.
  $form['name'] = array(
    '#type' => 'textfield',
    '#title' => t('Name'),
    '#description' => t('Please enter your name.'),
    '#required' => TRUE,
  );

  // Add an email field.
  $form['email'] = array(
    '#type' => 'textfield',
    '#title' => t('Email'),
    '#description' => t('Please enter your email address.'),
    '#required' => TRUE,
    '#attributes' => array('placeholder' => 'example@example.com'),
  );

  // Add a submit button.
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
  );

  return $form;
}

/**
 * Form submission handler.
 */
function custom_form_module_form_submit($form, &$form_state) {
  $name = $form_state['values']['name'];
  $email = $form_state['values']['email'];

  // Handle the form submission, e.g., send an email, save to database, etc.
  drupal_set_message(t('Name: @name, Email: @email', array('@name' => $name, '@email' => $email)));
}

২. ফর্ম ক্ষেত্র এবং বৈধতা

ড্রুপাল ফর্ম API আপনাকে ফর্ম ক্ষেত্র এবং তাদের বৈধতা নির্ধারণ করার সুযোগ দেয়। আপনি #required, #element_validate, #default_value ইত্যাদি কনফিগারেশন ব্যবহার করে ক্ষেত্রগুলি কাস্টমাইজ করতে পারেন।

ফর্ম ক্ষেত্র কাস্টমাইজ করা:

$form['message'] = array(
  '#type' => 'textarea',
  '#title' => t('Message'),
  '#description' => t('Enter your message here.'),
  '#required' => TRUE,
);

ফর্মে বৈধতা (Validation) যোগ করা:

ড্রুপাল ফর্ম API আপনাকে ফর্মের বৈধতা নির্ধারণ করার সুযোগ দেয়। আপনি #validate ব্যবহার করে একটি ফাংশন সেট করতে পারেন যা ফর্ম ইনপুট যাচাই করবে।

$form['name'] = array(
  '#type' => 'textfield',
  '#title' => t('Name'),
  '#required' => TRUE,
  '#element_validate' => array('custom_form_name_validate'),
);

function custom_form_name_validate($element, &$form_state) {
  if (strlen($element['#value']) < 3) {
    form_set_error($element['#name'], t('The name must be at least 3 characters long.'));
  }
}

৩. ফর্মের স্টাইলিং এবং কাস্টমাইজেশন

ড্রুপাল ফর্ম API এর মাধ্যমে আপনি ফর্মের CSS এবং JavaScript কাস্টমাইজ করতে পারেন। আপনি ফর্ম ক্ষেত্রগুলির জন্য কাস্টম CSS ক্লাস যোগ করতে পারেন এবং অতিরিক্ত JavaScript যুক্ত করতে পারেন।

$form['name']['#attributes'] = array('class' => array('custom-class'));
$form['#attached']['library'][] = 'custom_form_module/custom_js';

কাস্টম JavaScript যোগ করা:

  1. আপনার মডিউলে একটি custom_form_module.js ফাইল তৈরি করুন।
  2. মডিউলের .libraries.yml ফাইলে JavaScript ফাইল রেজিস্টার করুন।
custom_form_module.custom_js:
  version: 1.x
  js:
    js/custom_form_module.js: {}
  dependencies:
    - core/jquery

৪. ফর্ম সাবমিশন হ্যান্ডলার

ফর্ম সাবমিট হওয়ার পর আপনি ডেটা প্রক্রিয়া করতে পারেন, যেমন:

  • ইউজারের ইনপুট ডেটাবেসে সেভ করা
  • কাস্টম ইমেল পাঠানো
  • অন্যান্য কাস্টম কাজ করা
function custom_form_module_form_submit($form, &$form_state) {
  // Save the form data or send an email.
  $name = $form_state['values']['name'];
  $email = $form_state['values']['email'];
  
  // Example: Send email after form submission
  mail($email, 'Form Submitted', 'Thank you for your submission.');
  drupal_set_message(t('Your form has been submitted successfully.'));
}

৫. ফর্মের ফলাফল দেখানো

ফর্ম সফলভাবে সাবমিট হলে আপনি drupal_set_message ফাংশন ব্যবহার করে একটি বার্তা প্রদর্শন করতে পারেন:

drupal_set_message(t('Form submitted successfully.'));

উপসংহার

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

Content added By
Promotion

Are you sure to start over?

Loading...