Skill

Form এবং ফর্ম হ্যান্ডলিং

গ্র্যাভ (Grav) - Web Development

283

Grav CMS ফর্ম এবং ফর্ম হ্যান্ডলিংয়ের জন্য একটি অত্যন্ত শক্তিশালী এবং নমনীয় সিস্টেম প্রদান করে, যা ব্যবহারকারীদের কাছ থেকে ইনপুট গ্রহণ, তথ্য সংগ্রহ এবং তাদের প্রসেসিং করতে সহায়তা করে। Grav ফর্ম সিস্টেমটি সরাসরি Markdown ফাইল এবং প্লাগইন সিস্টেমের মাধ্যমে কাজ করে এবং এটি ব্যবহারকারীদের জন্য ওয়েবসাইটে সহজে কাস্টম ফর্ম তৈরি করতে সহায়তা করে।

এই গাইডে আমরা Grav-এ ফর্ম তৈরি, কাস্টমাইজেশন এবং হ্যান্ডলিংয়ের প্রক্রিয়া নিয়ে আলোচনা করব।


১. Grav ফর্মের মৌলিক ধারণা

Grav-এ ফর্ম তৈরি করার জন্য ব্যবহারকারীকে কিছু মৌলিক পদক্ষেপ অনুসরণ করতে হয়:

  1. ফর্ম ফাইল তৈরি: ফর্মের জন্য .yaml কনফিগারেশন ফাইল তৈরি করা হয়, যেখানে ফর্মের ইনপুট ফিল্ড, সাবমিট অ্যাকশন, ভ্যালিডেশন ইত্যাদি নির্ধারণ করা হয়।
  2. ফর্ম কনটেন্ট ফাইল: ফর্মের কনটেন্ট ব্লক তৈরি করতে হলে, সাধারণত .md (Markdown) ফাইল ব্যবহার করা হয়।
  3. ফর্ম হ্যান্ডলিং: ব্যবহারকারীর ইনপুট গ্রহণ এবং সাবমিট হওয়া ডেটা প্রসেস করতে Grav ফর্ম হ্যান্ডলিং সিস্টেম ব্যবহার করা হয়।

২. ফর্ম তৈরি করা

Grav-এ একটি ফর্ম তৈরি করার জন্য, প্রথমে আপনাকে একটি .yaml ফাইল তৈরি করতে হবে যেখানে ফর্মের কনফিগারেশন থাকবে। এই ফাইলটি আপনি user/forms/ ফোল্ডারে রাখতে পারেন।

২.১. ফর্ম কনফিগারেশন (.yaml)

নিচে একটি সাদামাটা ফর্ম কনফিগারেশন ফাইলের উদাহরণ দেওয়া হলো:

form:
  name: contact-form
  fields:
    - name: name
      label: Name
      type: text
      validate:
        required: true
        minlength: 3

    - name: email
      label: Email
      type: email
      validate:
        required: true
        format: email

    - name: message
      label: Message
      type: textarea
      validate:
        required: true
        minlength: 10

  buttons:
    - type: submit
      value: Send

  process:
    - email:
        to: 'contact@yourdomain.com'
        from: '{{ form.value.email }}'
        subject: 'New message from {{ form.value.name }}'
    - message: 'Thank you for your message. We will get back to you soon!'

এখানে:

  • form: ফর্মের মূল কনফিগারেশন ব্লক।
  • fields: ফর্মের ইনপুট ফিল্ডগুলি।
    • প্রতিটি ফিল্ডের জন্য name, label, type এবং validate শর্ত নির্ধারণ করা হয়।
  • buttons: ফর্মে একটি সাবমিট বাটন যুক্ত করা হয়।
  • process: ফর্ম সাবমিট হওয়ার পর কী কী পদক্ষেপ নেওয়া হবে তা নির্ধারণ করা হয়, যেমন:
    • ইনপুট ডেটা ইমেইলে পাঠানো।
    • ব্যবহারকারীকে একটি কনফার্মেশন মেসেজ পাঠানো।

২.২. ফর্ম কনটেন্ট ফাইল (.md)

এখন, আপনি একটি .md ফাইল তৈরি করতে পারেন যেটি আপনার ব্লগ বা পেজে ফর্মটি প্রদর্শন করবে। উদাহরণস্বরূপ:

title: Contact Us
template: form
content:
  items:
    - @file: user/forms/contact-form.yaml

এটি contact-form.yaml ফাইলটি পেজের কনটেন্ট হিসেবে যুক্ত করবে এবং ফর্মটি পেজে প্রদর্শিত হবে।


৩. ফর্ম হ্যান্ডলিং

Grav-এ ফর্ম হ্যান্ডলিং সহজ। যখন ব্যবহারকারী ফর্মটি সাবমিট করেন, তখন Grav স্বয়ংক্রিয়ভাবে ফর্মের ডেটা প্রসেস করবে এবং নির্ধারিত অ্যাকশনের মাধ্যমে তা পরিচালনা করবে। এখানে কিছু গুরুত্বপূর্ণ পদক্ষেপের আলোচনা করা হলো:

৩.১. ফর্ম ডেটা প্রসেসিং

Grav ফর্মের ডেটা প্রসেস করার জন্য process ব্লক ব্যবহার করে, যা ইনপুট ডেটার ভিত্তিতে কিছু পদক্ষেপ নেয়। যেমন:

  1. ইমেইল পাঠানো: যদি আপনি ইমেইল পাঠাতে চান, তাহলে email প্রক্রিয়া ব্যবহার করুন:
process:
  - email:
      to: 'contact@yourdomain.com'
      from: '{{ form.value.email }}'
      subject: 'New message from {{ form.value.name }}'
  1. কনফার্মেশন মেসেজ: ফর্ম সাবমিট হওয়ার পর ব্যবহারকারীকে একটি কনফার্মেশন মেসেজ প্রদর্শন করতে পারেন:
process:
  - message: 'Thank you for your message. We will get back to you soon!'

৩.২. ফর্ম ভ্যালিডেশন

Grav ফর্মে ইনপুট ভ্যালিডেশন সিস্টেম অন্তর্ভুক্ত থাকে, যার মাধ্যমে আপনি নির্দিষ্ট ফিল্ডে প্রয়োজনীয় শর্ত (যেমন ফিল্ডের দৈর্ঘ্য বা ফরম্যাট) যোগ করতে পারেন। উদাহরণস্বরূপ:

fields:
  - name: name
    label: Name
    type: text
    validate:
      required: true
      minlength: 3

  - name: email
    label: Email
    type: email
    validate:
      required: true
      format: email

এখানে:

  • required: ফিল্ডটি পূর্ণ হওয়া উচিত।
  • minlength: একটি নির্দিষ্ট দৈর্ঘ্য নির্ধারণ করা হয়েছে।
  • format: ফরম্যাটের জন্য যাচাই করা হবে (যেমন ইমেইল ফরম্যাট)।

৩.৩. ফর্ম সাবমিট পরবর্তী প্রক্রিয়া

ফর্মের সাবমিট হওয়ার পর কিছু পদক্ষেপ নেয়ার জন্য, আপনি process ব্লকে বিভিন্ন কার্যকলাপ নির্ধারণ করতে পারেন, যেমন:

  • ডেটা সংরক্ষণ: ডেটা ইমেইল করে পাঠানো এবং কনফার্মেশন মেসেজ পাঠানো।

৪. Grav ফর্মের অতিরিক্ত ফিচারসমূহ

৪.১. কাস্টম ফিল্ড

Grav আপনাকে কাস্টম ফিল্ড তৈরি করার সুযোগ দেয়, যেমন ড্রপডাউন মেনু, চেকবক্স, অথবা রেডিও বাটন ব্যবহার করে আপনি ফর্ম ফিল্ড কাস্টমাইজ করতে পারেন।

৪.২. CSS কাস্টমাইজেশন

আপনি CSS ব্যবহার করে Grav ফর্মের ডিজাইন কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ, একটি ক্লাস যোগ করে ফর্মের ভিজ্যুয়াল স্টাইলিং পরিবর্তন করতে পারেন:

<form class="my-custom-form">
    ...
</form>

৪.৩. জাভাস্ক্রিপ্ট ব্যবহার

আপনি ফর্মে JavaScript ইন্টিগ্রেট করে কাস্টম ফাংশনালিটি যোগ করতে পারেন, যেমন ফর্ম সাবমিট হওয়ার আগে কিছু নির্দিষ্ট শর্ত যাচাই করা।


সারাংশ

Grav CMS-এ ফর্ম তৈরি এবং হ্যান্ডলিং একটি সহজ এবং শক্তিশালী প্রক্রিয়া। Grav ফর্ম কনফিগারেশন ফাইল (.yaml) এবং কনটেন্ট ফাইল (.md) ব্যবহার করে ফর্ম তৈরি করা যায়। আপনি ফর্মের জন্য ভ্যালিডেশন, প্রক্রিয়াকরণ (যেমন ইমেইল পাঠানো, কনফার্মেশন মেসেজ) এবং কাস্টম ফিল্ড ব্যবহার করে সেগুলি কাস্টমাইজ করতে পারেন। Grav-এর ফর্ম সিস্টেম নমনীয়, দ্রুত এবং ব্যবহারকারী বান্ধব, যা আপনাকে সহজেই ওয়েব ফর্ম তৈরি এবং পরিচালনা করতে সহায়তা করে।

Content added By

Grav একটি শক্তিশালী কনটেন্ট ম্যানেজমেন্ট সিস্টেম (CMS) যা বিভিন্ন প্লাগইনের মাধ্যমে ওয়েবসাইটের কার্যকারিতা বাড়ানোর সুযোগ দেয়। তার মধ্যে একটি অন্যতম প্লাগইন হলো ফর্ম প্লাগইন (Form Plugin), যা ব্যবহারকারীদের জন্য কাস্টম ফর্ম তৈরি এবং পরিচালনা করার সুবিধা প্রদান করে। এই প্লাগইনটি সহজেই যোগাযোগ ফর্ম, কাস্টম ফর্ম, সার্ভে বা অন্যান্য ইন্টারেকটিভ ফর্ম তৈরি করতে সহায়ক।

Grav এর ফর্ম প্লাগইনটি খুবই নমনীয় এবং এর মাধ্যমে আপনি বিভিন্ন ধরনের ফর্ম কাস্টমাইজ করতে পারেন, যেমন ফর্ম ভ্যালিডেশন, ইমেইল নোটিফিকেশন, এবং ফর্ম ডেটা সংরক্ষণ করা।


Grav এর ফর্ম প্লাগইন ইনস্টল এবং কনফিগারেশন

Grav এর ফর্ম প্লাগইন ইনস্টল করা এবং কনফিগারেশন করা খুবই সহজ। আপনি কয়েকটি ধাপে ফর্ম প্লাগইন ব্যবহার করতে পারবেন।

১. ফর্ম প্লাগইন ইনস্টল করা

Grav সাইটে ফর্ম প্লাগইন ইনস্টল করার জন্য আপনাকে প্রথমে এটি ইনস্টল করতে হবে। এটি দুটি পদ্ধতিতে ইনস্টল করা যায়:

১.১. Admin Panel ব্যবহার করে ইনস্টলেশন
  1. Grav Admin Panel এ লগইন করুন।
  2. "Plugins" মেনুতে যান।
  3. "Add Plugin" ক্লিক করুন এবং "Form" প্লাগইন খুঁজে ইনস্টল করুন।
  4. ইনস্টলেশন শেষে প্লাগইনটি সক্রিয় করুন।
১.২. Composer ব্যবহার করে ইনস্টলেশন

আপনি Composer ব্যবহার করে ফর্ম প্লাগইন ইনস্টল করতে পারেন:

composer require getgrav/plugin-form

এটি প্লাগইন ইনস্টল করে আপনার সাইটে যুক্ত করবে।


Grav এর ফর্ম প্লাগইন কনফিগারেশন

ফর্ম প্লাগইন ইনস্টল করার পর, আপনি এটি কনফিগার করতে পারবেন যাতে এটি আপনার সাইটের প্রয়োজন অনুযায়ী কাজ করে। ফর্ম কনফিগারেশন YAML ফাইলের মাধ্যমে করা হয় এবং এটি সাধারণত user/config/plugins/form.yaml ফোল্ডারে পাওয়া যাবে।

ফর্ম কনফিগারেশন ফাইলের উদাহরণ:

enabled: true
type: 'email'
from: 'no-reply@example.com'
to: 'admin@example.com'
subject: 'New Form Submission'
template: 'forms/default'
file-upload-limit: 5M

এখানে:

  • enabled: true ফর্ম প্লাগইন সক্রিয় করা হয়েছে।
  • type: 'email' ফর্ম সাবমিট হলে ইমেইল প্রেরণ করা হবে।
  • from, to, এবং subject ফিল্ডে ইমেইল কনফিগারেশন।
  • template: 'forms/default' ফর্মের জন্য ডিফল্ট টেমপ্লেট।
  • file-upload-limit: 5M ফর্মের মাধ্যমে আপলোড করা ফাইলের সাইজ সীমা।

Grav ফর্ম প্লাগইন দিয়ে কাস্টম ফর্ম তৈরি

Grav ফর্ম প্লাগইন দিয়ে খুব সহজেই কাস্টম ফর্ম তৈরি করা যায়। নিচে একটি সাদাসিধে যোগাযোগ ফর্মের উদাহরণ দেওয়া হলো:

২. ফর্ম তৈরি করা

আপনি একটি নতুন ফর্ম তৈরি করতে পারেন, যেমন একটি যোগাযোগ ফর্ম। এই ফর্মটি সাধারণত একটি .md (Markdown) ফাইল হিসেবে সাইটের পেজ ফোল্ডারে সংরক্ষিত থাকে।

উদাহরণ: contact.md ফাইল:

---
title: "যোগাযোগ করুন"
form:
  name: contact-form
  fields:
    - name: name
      label: "আপনার নাম"
      placeholder: "আপনার নাম লিখুন"
      autofocus: true
      required: true
    - name: email
      label: "ইমেইল ঠিকানা"
      placeholder: "আপনার ইমেইল ঠিকানা লিখুন"
      type: email
      required: true
    - name: message
      label: "বার্তা"
      placeholder: "আপনার বার্তা লিখুন"
      type: textarea
      required: true
  buttons:
    - type: submit
      value: "প্রেরণ করুন"
  process:
    - email:
        from: "{{ form.value.email }}"
        to: "admin@example.com"
        subject: "নতুন যোগাযোগ ফর্ম"
    - save:
        fileprefix: "contact"
        dateformat: "Y-m-d"
    - message: "ধন্যবাদ! আপনার বার্তা সফলভাবে প্রেরিত হয়েছে।"
---

এখানে:

  • fields: ফর্মের ইনপুট ফিল্ডগুলির তালিকা। প্রতিটি ফিল্ডের জন্য name, label, type, required এবং অন্যান্য বৈশিষ্ট্য নির্ধারণ করা হয়েছে।
  • buttons: ফর্মে একটি সাবমিট বাটন যুক্ত করা হয়েছে।
  • process: ফর্মটি প্রক্রিয়া করার জন্য কনফিগারেশন। এটি ইমেইল পাঠানোর জন্য email অপশন ব্যবহার করছে এবং ফর্ম ডেটা সংরক্ষণ (save) করছে।

Grav ফর্ম প্লাগইন এর প্রক্রিয়া (Process)

Grav ফর্ম প্লাগইনটি বিভিন্ন প্রক্রিয়া পরিচালনা করতে সক্ষম, যেমন ফর্ম ডেটা প্রক্রিয়াকরণ, ইমেইল পাঠানো এবং ফাইল সংরক্ষণ। ফর্ম প্রক্রিয়া কনফিগারেশন YAML ফাইলের মাধ্যমে করা হয়।

ফর্ম প্রক্রিয়া উদাহরণ:

process:
  - email:
      from: "{{ form.value.email }}"
      to: "admin@example.com"
      subject: "নতুন ফর্ম সাবমিশন"
  - save:
      fileprefix: "submission"
      dateformat: "Y-m-d"
  - message: "ধন্যবাদ! আপনার ফর্ম সফলভাবে প্রেরিত হয়েছে।"

এখানে:

  • email: ফর্ম সাবমিট হলে ইমেইল প্রেরণ করা হবে।
  • save: ফর্মের ডেটা সংরক্ষণ করা হবে।
  • message: সফল সাবমিশনের পর ব্যবহারকারীকে একটি ধন্যবাদ বার্তা প্রদর্শন করা হবে।

Grav ফর্ম প্লাগইন এর অন্যান্য বৈশিষ্ট্য

  • ফাইল আপলোড: Grav ফর্ম প্লাগইন ফাইল আপলোড সাপোর্ট করে, যার মাধ্যমে ব্যবহারকারীরা ফর্মের মাধ্যমে ফাইলও আপলোড করতে পারেন।
  • এজেক্স (AJAX) ফর্ম: Grav ফর্ম প্লাগইন AJAX সমর্থন করে, যা ফর্ম সাবমিট করার পর পেজ রিফ্রেশ না করেই দ্রুত রেসপন্স প্রদান করে।
  • ফর্ম ভ্যালিডেশন: Grav ফর্ম প্লাগইন স্বয়ংক্রিয়ভাবে ফর্ম ভ্যালিডেশন পরিচালনা করে, যেমন একটি ফিল্ড পূর্ণ না হলে সেটি প্রম্পট করে।

সারাংশ

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

Content added By

Grav CMS এ একটি সিম্পল কন্ট্যাক্ট ফর্ম তৈরি করা অত্যন্ত সহজ এবং দ্রুত। Grav এর মাধ্যমে আপনি একটি কাস্টম কন্ট্যাক্ট ফর্ম তৈরি করতে পারেন, যেখানে আপনি ব্যবহারকারীর ইনপুট সংগ্রহ করতে পারবেন। এই ফর্মটি ইনপুট তথ্য যেমন নাম, ইমেইল, বার্তা ইত্যাদি গ্রহণ করবে এবং একটি নির্দিষ্ট ইমেইল ঠিকানায় পাঠাবে।

এখানে একটি সিম্পল কন্ট্যাক্ট ফর্ম তৈরি করার জন্য প্রয়োজনীয় ধাপগুলো দেওয়া হলো।


১. Contact Form প্লাগইন ইনস্টল করা

প্রথমে, Grav CMS এর মাধ্যমে একটি কন্ট্যাক্ট ফর্ম তৈরি করতে Form প্লাগইন ইন্সটল করতে হবে। এই প্লাগইন Grav এর সাথে ইনবিল্ট থাকে, তবে যদি এটি ইনস্টল না থাকে, তাহলে আপনি কমান্ড লাইনের মাধ্যমে এটি ইনস্টল করতে পারেন:

composer require getgrav/grav-plugin-form

এরপর, এই প্লাগইনটি আপনার সাইটের কনফিগারেশন ফাইলে অ্যাক্টিভ করতে হবে। যদি এটি ইতোমধ্যে ইন্সটল হয়ে থাকে, তবে আপনি পরবর্তী ধাপে যেতে পারেন।


২. কন্ট্যাক্ট ফর্ম পেজ তৈরি করা

এখন, আপনাকে Grav সাইটে একটি নতুন পেজ তৈরি করতে হবে যেখানে কন্ট্যাক্ট ফর্মটি থাকবে। আপনার user/pages/ ফোল্ডারে একটি নতুন ফোল্ডার তৈরি করুন, যেমন contact/

/user/pages/contact/

এবং সেখানে একটি .md ফাইল তৈরি করুন, যেমন default.md

title: "Contact Us"
template: contact

এটি Grav কে বলে দেয় যে পেজের জন্য contact.html.twig টেমপ্লেট ব্যবহার হবে।


৩. ফর্ম তৈরি করা

user/pages/contact/ ফোল্ডারের মধ্যে একটি ফাইল তৈরি করুন, যেমন form.md এবং এতে কন্ট্যাক্ট ফর্মের ফিল্ডগুলি কনফিগার করুন। নিচে একটি উদাহরণ দেয়া হলো:

form:
    name: contact-form
    fields:
        - name: name
          label: Name
          placeholder: Enter your full name
          autofocus: true
          validate:
            required: true
        - name: email
          label: Email
          placeholder: Enter your email address
          validate:
            required: true
            format: email
        - name: message
          label: Message
          placeholder: Enter your message
          validate:
            required: true
    buttons:
        - type: submit
          value: Send Message
    process:
        - email:
            to: your-email@example.com
            from: '{{ form.value.email }}'
            subject: 'New Contact Message'
        - message: 'Thank you for your message! We will get back to you shortly.'
        - reset: true

এখানে:

  • form.name: ফর্মের নাম।
  • form.fields: ফর্মের ইনপুট ফিল্ডগুলি (নাম, ইমেইল, বার্তা)।
  • form.buttons: ফর্মের সাবমিট বাটন।
  • form.process: ফর্ম সাবমিট হলে যে প্রক্রিয়া হবে (ইমেইল পাঠানো এবং কনফার্মেশন মেসেজ পাঠানো)।

এই ফর্মটি ব্যবহারকারীর নাম, ইমেইল এবং বার্তা নিয়ে একটি ইমেইল পাঠাবে যা your-email@example.com এই ইমেইল ঠিকানায় যাবে। আপনি to ফিল্ডে আপনার ইমেইল ঠিকানা যোগ করতে হবে।


৪. টেমপ্লেট তৈরি করা

এখন, আপনাকে user/themes/your-theme/templates ফোল্ডারে contact.html.twig নামক একটি টেমপ্লেট ফাইল তৈরি করতে হবে যা ফর্মের UI দেখাবে। নিচে একটি উদাহরণ দেয়া হলো:

{% extends 'partials/base.html.twig' %}

{% block content %}
    <h1>{{ page.title }}</h1>
    
    <form method="post" action="{{ url }}" enctype="multipart/form-data">
        {{ form.csrf_token }}
        
        <div>
            <label for="name">{{ form.fields[0].label }}</label>
            <input type="text" id="name" name="name" placeholder="{{ form.fields[0].placeholder }}" required>
        </div>
        
        <div>
            <label for="email">{{ form.fields[1].label }}</label>
            <input type="email" id="email" name="email" placeholder="{{ form.fields[1].placeholder }}" required>
        </div>
        
        <div>
            <label for="message">{{ form.fields[2].label }}</label>
            <textarea id="message" name="message" placeholder="{{ form.fields[2].placeholder }}" required></textarea>
        </div>
        
        <div>
            <button type="submit">{{ form.buttons[0].value }}</button>
        </div>
    </form>
{% endblock %}

এখানে:

  • ফর্মের প্রতিটি ইনপুট ফিল্ড form.fields এর মাধ্যমে ডাইনামিক্যালি রেন্ডার করা হচ্ছে।
  • form.csrf_token CSRF সুরক্ষা টোকেন যোগ করবে, যা ফর্মের নিরাপত্তা নিশ্চিত করে।

৫. ফর্ম কনফিগারেশন এবং টেমপ্লেট ব্যবহার

এখন, আপনি যখন contact পেজে যান, Grav আপনাকে কন্ট্যাক্ট ফর্মটি দেখাবে। ফর্মটি সাবমিট করার পর, এটি ইমেইল পাঠাবে এবং ব্যবহারকারীর কাছে একটি কনফার্মেশন মেসেজ প্রদর্শন করবে।


৬. ফর্মের প্রক্রিয়া পরীক্ষা করা

ফর্মটি ইনস্টল এবং কনফিগার করার পর, এটি টেস্ট করতে আপনার সাইটের কন্ট্যাক্ট পেজে গিয়ে ফর্ম পূরণ করুন এবং সাবমিট করুন। যদি সবকিছু সঠিকভাবে কনফিগার করা থাকে, তবে ফর্মটি সফলভাবে সাবমিট হবে এবং নির্দিষ্ট ইমেইল ঠিকানায় একটি ইমেইল পাঠানো হবে।


সারাংশ

Grav-এ একটি সিম্পল কন্ট্যাক্ট ফর্ম তৈরি করা সহজ এবং দ্রুত। Grav এর Form প্লাগইন ব্যবহার করে আপনি কাস্টম কন্ট্যাক্ট ফর্ম তৈরি করতে পারেন, যেখানে ব্যবহারকারীর তথ্য সংগ্রহ করা যায় এবং সেই তথ্য ইমেইলের মাধ্যমে পাঠানো যায়। Grav এর টেমপ্লেট সিস্টেমের মাধ্যমে আপনি ফর্মের ডিজাইন কাস্টমাইজ করতে পারবেন এবং প্রক্রিয়াটির সমস্ত ফিচার সহজে কনফিগার করা যায়।

Content added By

Grav CMS এর ফর্ম সিস্টেমটি শক্তিশালী এবং কাস্টমাইজযোগ্য, যা ফর্মের ডেটা সংগ্রহ ও প্রক্রিয়াকরণের জন্য বিভিন্ন ধরনের বৈশিষ্ট্য প্রদান করে। ফর্ম সাবমিশন করার সময় কাস্টম ভ্যালিডেশন (Custom Validation) এবং ত্রুটি হ্যান্ডলিং (Error Handling) ব্যবহার করা খুবই গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি ব্যবহারকারীর ইনপুট যাচাই করতে চান এবং ফর্মের ত্রুটিগুলি সঠিকভাবে হ্যান্ডল করতে চান।

Grav এ কাস্টম ফর্ম ভ্যালিডেশন এবং এরর হ্যান্ডলিং সেটআপ করার মাধ্যমে আপনি ফর্মের কার্যকারিতা উন্নত করতে পারবেন। এখানে Grav ফর্ম সিস্টেমে কাস্টম ভ্যালিডেশন এবং এরর হ্যান্ডলিং কিভাবে কাজ করে, তা বিস্তারিতভাবে আলোচনা করা হলো।


Grav ফর্ম সিস্টেমের জন্য কাস্টম ভ্যালিডেশন

Grav ফর্ম সিস্টেমে ডিফল্টভাবে বিভিন্ন ধরনের ফর্ম ফিল্ড ভ্যালিডেশন সাপোর্ট করা হয় (যেমন ইমেইল, টেক্সট, নাম্বার ইত্যাদি)। তবে আপনি চাইলে কাস্টম ভ্যালিডেশনও তৈরি করতে পারেন, যা আপনার ফর্মের ইনপুট ডেটার জন্য নির্দিষ্ট চেকিং প্রক্রিয়া যুক্ত করবে।

কাস্টম ভ্যালিডেশন কিভাবে তৈরি করবেন?

Grav ফর্ম সিস্টেমে কাস্টম ভ্যালিডেশন তৈরি করতে, আপনাকে একটি কাস্টম ফর্ম ফিল্ড এবং তার সাথে সম্পর্কিত ভ্যালিডেশন রুল সংজ্ঞায়িত করতে হবে। সাধারণভাবে, আপনি YAML কনফিগারেশন এবং PHP স্ক্রিপ্ট ব্যবহার করে এই কাস্টম ভ্যালিডেশন তৈরি করতে পারেন।

উদাহরণ:

ধরা যাক, আপনি একটি ফর্ম তৈরি করেছেন যেখানে ব্যবহারকারীরা একটি ইমেইল ঠিকানা এবং একটি কাস্টম "বয়স" ফিল্ড জমা দিবে। আপনি চাইলে কাস্টম ভ্যালিডেশন তৈরি করতে পারেন, যেমন যদি বয়স ১৮ বছরের কম হয়, তাহলে সাবমিট করা যাবে না।

form:
  name: example_form
  fields:
    - name: email
      label: "Your Email"
      type: email
      validate:
        required: true
        email: true

    - name: age
      label: "Your Age"
      type: number
      validate:
        required: true
        min: 18

এখানে:

  • email ফিল্ডে ইমেইল ভ্যালিডেশন প্রয়োগ করা হয়েছে।
  • age ফিল্ডে min: 18 কাস্টম ভ্যালিডেশন ব্যবহার করা হয়েছে, যাতে বয়স ১৮ বছরের কম হলে সাবমিট করা যাবে না।

কাস্টম PHP ভ্যালিডেশন ফাংশন

আপনি যদি আরও জটিল কাস্টম ভ্যালিডেশন চান, তাহলে PHP স্ক্রিপ্ট ব্যবহার করে এটি করতে পারেন। এজন্য আপনাকে user/plugins/form/form.php অথবা user/forms/ ফোল্ডারে ফর্ম ভ্যালিডেশন ফাংশন তৈরি করতে হবে।

public function customAgeValidation($value, $field, $form)
{
    if ($value < 18) {
        return 'You must be at least 18 years old.';
    }
    return true;
}

এই ফাংশনটি ফর্মের ক্ষেত্রে age ফিল্ডে কাস্টম ভ্যালিডেশন হিসেবে প্রয়োগ করা যাবে।


Grav ফর্ম সিস্টেমে এরর হ্যান্ডলিং

ফর্মের ইনপুট যখন সঠিকভাবে যাচাই করা হয় না, তখন ব্যবহারকারীকে ত্রুটি বার্তা দেখানোর জন্য Error Handling অত্যন্ত গুরুত্বপূর্ণ। Grav ফর্ম সিস্টেমে এরর হ্যান্ডলিং বেশ সহজ এবং কাস্টমাইজেবল। Grav ফর্ম স্বয়ংক্রিয়ভাবে ত্রুটি বার্তা তৈরি করে এবং সেগুলো ফর্মের সাথে যুক্ত করে প্রদর্শন করে।

এরর বার্তা কাস্টমাইজেশন

Grav ফর্মের ত্রুটি বার্তাগুলি স্বয়ংক্রিয়ভাবে ফর্ম ফিল্ডের নিচে প্রদর্শিত হয়। আপনি চাইলে ত্রুটি বার্তা কাস্টমাইজ করতে পারেন এবং নির্দিষ্ট ফিল্ডের জন্য নির্দিষ্ট বার্তা প্রদান করতে পারেন।

উদাহরণ:

আপনি যদি একটি কাস্টম বার্তা দিতে চান যখন কোনো ফিল্ড ইনপুট সঠিক না হয়, তাহলে এটি YAML ফাইলে সংজ্ঞায়িত করা যেতে পারে:

form:
  name: example_form
  fields:
    - name: email
      label: "Your Email"
      type: email
      validate:
        required: true
        email: true
        message: "Please enter a valid email address."

    - name: age
      label: "Your Age"
      type: number
      validate:
        required: true
        min: 18
        message: "You must be at least 18 years old to submit this form."

এখানে, আপনি message অপশনটি ব্যবহার করে কাস্টম এরর বার্তা প্রদান করতে পারেন।

কাস্টম এরর বার্তা পিপি স্ক্রিপ্টে

আপনি যদি PHP স্ক্রিপ্ট ব্যবহার করেন, তাহলে আপনি ফর্ম সাবমিট করার সময় এরর হ্যান্ডলিং করতে পারেন:

if ($form->isValid()) {
    // Process the form
} else {
    $form->setMessage('There were some errors with your submission.');
}

এখানে, setMessage ফাংশন ব্যবহার করে আপনি কাস্টম এরর বার্তা সেট করতে পারেন, যা ফর্মের ত্রুটির সাথে যুক্ত হবে।


Grav ফর্মে কাস্টম ভ্যালিডেশন এবং এরর হ্যান্ডলিং এর সুবিধাসমূহ

  1. উন্নত কাস্টম ভ্যালিডেশন: Grav ফর্ম সিস্টেমের মাধ্যমে আপনি কাস্টম ভ্যালিডেশন তৈরি করতে পারবেন, যা আপনাকে ব্যবহারকারীর ইনপুট যাচাই করতে সাহায্য করবে।
  2. ব্যবহারকারী বান্ধব ত্রুটি বার্তা: Grav ফর্ম সিস্টেমে ত্রুটি বার্তা স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়, যা ব্যবহারকারীদের ফর্ম সাবমিশনের সময় ত্রুটির কারণ বুঝতে সাহায্য করে।
  3. নমনীয় কাস্টমাইজেশন: আপনি চাইলে কাস্টম PHP ফাংশন ব্যবহার করে আরও জটিল ভ্যালিডেশন এবং ত্রুটি বার্তা কাস্টমাইজ করতে পারবেন।
  4. পারফরম্যান্স উন্নতি: Grav এর ফর্ম সিস্টেম দ্রুত এবং কার্যকরী, এবং ফর্ম ভ্যালিডেশন ও এরর হ্যান্ডলিং একেবারে সরল এবং নির্ভরযোগ্য।

সারাংশ

Grav CMS এর ফর্ম সিস্টেমে কাস্টম ভ্যালিডেশন এবং এরর হ্যান্ডলিং অত্যন্ত শক্তিশালী এবং কাস্টমাইজেবল। আপনি YAML এবং PHP ব্যবহার করে কাস্টম ভ্যালিডেশন ফিল্ড, এরর বার্তা এবং অন্যান্য বৈশিষ্ট্য কাস্টমাইজ করতে পারেন। Grav এর ফর্ম সিস্টেম ব্যবহার করে আপনি সহজেই ফর্ম ইনপুট যাচাই করতে পারেন এবং ত্রুটি হ্যান্ডলিংয়ের মাধ্যমে ব্যবহারকারীদের সঠিক ফর্ম সাবমিশন অভিজ্ঞতা প্রদান করতে পারেন।

Content added By

Grav CMS প্লাগইন এবং কাস্টম ফিচারগুলির মাধ্যমে খুব সহজে ফর্ম ডেটা সাবমিট এবং ইমেইল নোটিফিকেশন সেটআপ করতে পারে। Grav-এর Form প্লাগইন ব্যবহার করে আপনি ব্লগ, কন্ট্যাক্ট পেজ বা অন্যান্য পেজে ফর্ম তৈরি করতে পারবেন এবং সাবমিট করা ডেটা ইমেইলের মাধ্যমে নোটিফিকেশন পাঠাতে পারবেন।

এখানে Grav-এর মাধ্যমে ফর্ম ডেটা সাবমিশন এবং ইমেইল নোটিফিকেশন সেটআপ করার বিস্তারিত গাইড দেওয়া হলো।


১. Grav Form প্লাগইন ইনস্টল করা

ফর্ম ডেটা সাবমিশন এবং ইমেইল নোটিফিকেশন ব্যবস্থার জন্য Form প্লাগইন ইনস্টল করতে হবে। এটি Grav এর মূল প্লাগইন প্যাকেজের অংশ, তবে যদি এটি ইনস্টল না থাকে, তাহলে কমান্ড লাইনের মাধ্যমে এটি ইনস্টল করা যেতে পারে।

composer require getgrav/grav-plugin-form

এটি আপনার সাইটে ফর্ম প্লাগইন ইনস্টল করবে।


২. ফর্ম তৈরি করা

Grav-এ ফর্ম তৈরি করতে, আপনাকে একটি .md ফাইল তৈরি করতে হবে, যেখানে ফর্মের HTML এবং কনফিগারেশন থাকবে। উদাহরণস্বরূপ, একটি সাধারণ কন্ট্যাক্ট ফর্ম তৈরি করা যাক:

২.১. ফর্ম কনফিগারেশন

user/pages/contact/ ফোল্ডারে contact.md ফাইল তৈরি করুন:

title: Contact Us
template: contact
form:
  name: contact-form
  fields:
    - name: name
      label: Name
      type: text
      placeholder: Enter your name
      validate:
        required: true
    - name: email
      label: Email
      type: email
      placeholder: Enter your email address
      validate:
        required: true
    - name: message
      label: Message
      type: textarea
      placeholder: Write your message
      validate:
        required: true
  buttons:
    - type: submit
      value: Submit
  process:
    - email:
        to: 'your-email@example.com'
        subject: 'New message from your Grav contact form'
        body: '{% include "forms/data.html.twig" %}'
    - message: 'Thank you for contacting us! We will get back to you shortly.'

এখানে:

  • fields: ফর্মের বিভিন্ন ইনপুট ফিল্ড। প্রতিটি ফিল্ডের জন্য নাম, লেবেল, টাইপ, প্লেসহোল্ডার এবং ভ্যালিডেশন দেওয়া হয়েছে।
  • buttons: ফর্ম সাবমিট করার জন্য একটি বাটন।
  • process: ফর্ম ডেটা প্রোসেস করার ধাপ। এখানে email কনফিগারেশনটি ফর্ম সাবমিট হওয়ার পর ইমেইল পাঠাবে এবং message দ্বারা ব্যবহারকারীকে একটি কনফার্মেশন মেসেজ দেখানো হবে।

২.২. ফর্মের টেমপ্লেট তৈরি করা

এখন, user/themes/your-theme/templates/ ফোল্ডারে একটি নতুন টেমপ্লেট ফাইল তৈরি করুন, যেমন contact.html.twig:

{% extends 'partials/base.html.twig' %}

{% block content %}
  <h1>{{ page.title }}</h1>

  <form action="{{ url }}" method="post" enctype="multipart/form-data">
    {{ form.csrf_token }}
    
    <div>
      <label for="name">{{ form.fields[0].label }}</label>
      <input type="text" name="name" id="name" placeholder="{{ form.fields[0].placeholder }}" required />
    </div>
    
    <div>
      <label for="email">{{ form.fields[1].label }}</label>
      <input type="email" name="email" id="email" placeholder="{{ form.fields[1].placeholder }}" required />
    </div>

    <div>
      <label for="message">{{ form.fields[2].label }}</label>
      <textarea name="message" id="message" placeholder="{{ form.fields[2].placeholder }}" required></textarea>
    </div>

    <button type="submit">{{ form.buttons[0].value }}</button>
  </form>
{% endblock %}

এটি ফর্মের HTML এর টেমপ্লেট তৈরি করবে, যা ব্লগ পেজে ফর্ম প্রদর্শন করবে। Grav ফর্মের সমস্ত ফিল্ড এবং বাটনকে টেমপ্লেটে ঢোকাবে।


৩. ফর্ম সাবমিশন প্রোসেস এবং ইমেইল কনফিগারেশন

ফর্ম সাবমিট করার পরে, Grav ইমেইল পাঠাবে যা আপনি process কনফিগারেশন ফাইলে উল্লেখ করেছেন। ইমেইল কনফিগারেশনে:

  • to: প্রাপকের ইমেইল অ্যাড্রেস (আপনার ইমেইল অ্যাড্রেস দিন)।
  • subject: ইমেইলের বিষয়বস্তু।
  • body: ফর্ম ডেটার উপস্থাপন (এখানে আমরা forms/data.html.twig ব্যবহার করেছি, যা ফর্ম ডেটা ফরম্যাট করে পাঠাবে)।

Grav এর ফর্ম প্রোসেস ইমেইল পাঠানোর জন্য SwiftMailer ব্যবহার করে। আপনাকে প্রথমে আপনার সাইটের user/config/system.yaml ফাইলে ইমেইল কনফিগারেশন করতে হবে:

email:
  from: 'your-email@example.com'
  to: 'your-email@example.com'
  transport: 'smtp'
  smtp:
    server: 'smtp.your-email-provider.com'
    port: 587
    encryption: 'tls'
    user: 'your-email@example.com'
    password: 'your-email-password'

এখানে:

  • transport: ইমেইল পাঠানোর মাধ্যম (SMTP বা Sendmail)।
  • smtp: SMTP সার্ভারের কনফিগারেশন।

এটি ইমেইল পাঠানোর জন্য প্রয়োজনীয় SMTP সার্ভারের সেটিংস প্রদান করবে।


৪. ফর্ম সাবমিশন এবং কনফার্মেশন

ফর্ম সাবমিট করার পরে, ব্যবহারকারীকে কনফার্মেশন মেসেজ দেখানো হবে। Grav এর message অংশে আপনি কাস্টম কনফার্মেশন মেসেজ যোগ করতে পারেন, যেমন:

process:
  - email:
      to: 'your-email@example.com'
      subject: 'New message from your Grav contact form'
      body: '{% include "forms/data.html.twig" %}'
  - message: 'Thank you for contacting us! We will get back to you shortly.'

এটি ব্যবহারকারীকে একটি কনফার্মেশন বার্তা দেখাবে যে তাদের ফর্ম সাবমিট সফলভাবে হয়েছে।


৫. ফর্ম ডেটা প্রোসেসিং

Grav-এ ফর্ম ডেটা প্রোসেসিং একটি সহজ প্রক্রিয়া। আপনি ফর্ম ডেটা প্রোসেস করার জন্য প্লাগইন বা কাস্টম স্ক্রিপ্ট ব্যবহার করতে পারেন, তবে সাধারণত ফর্মের ডেটা সাবমিট হওয়ার পর process কনফিগারেশন স্বয়ংক্রিয়ভাবে ইমেইল পাঠায় এবং একটি কনফার্মেশন মেসেজ প্রদর্শন করে।


সারাংশ

Grav CMS-এ ফর্ম ডেটা সাবমিশন এবং ইমেইল নোটিফিকেশন সেটআপ করা অত্যন্ত সহজ। Grav এর Form প্লাগইন ব্যবহার করে আপনি সহজেই ফর্ম তৈরি করতে পারেন, এবং সাবমিশনের পর ইমেইল নোটিফিকেশন পাঠাতে পারেন। Grav এর কনফিগারেশন এবং টেমপ্লেট সিস্টেমের মাধ্যমে ফর্মের কার্যকারিতা এবং প্রদর্শন সম্পূর্ণ কাস্টমাইজ করা যায়। এটি আপনার সাইটের ইন্টারঅ্যাক্টিভ এবং ডায়নামিক ফিচারগুলো বাড়াতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...