ড্রুপাল (Drupal) একটি ওপেন সোর্স কনটেন্ট ম্যানেজমেন্ট সিস্টেম (CMS), যা অত্যন্ত কাস্টমাইজযোগ্য এবং মডুলার। এর মডিউল সিস্টেমের মাধ্যমে আপনি ড্রুপালের কার্যকারিতা এবং বৈশিষ্ট্যগুলি কাস্টমাইজ বা বাড়াতে পারেন। আপনি যদি ড্রুপালে নিজস্ব কাস্টম ফিচার তৈরি করতে চান, তাহলে কাস্টম মডিউল ডেভেলপমেন্ট একটি গুরুত্বপূর্ণ প্রক্রিয়া।
এই টিউটোরিয়ালে, আমরা ড্রুপাল কাস্টম মডিউল ডেভেলপমেন্ট এর বেসিক ধারণা, প্রয়োজনীয় ফাইল এবং কনফিগারেশন সম্পর্কে আলোচনা করব।
১. কাস্টম মডিউল কী?
কাস্টম মডিউল ড্রুপালের একটি বিশেষ ধরনের মডিউল, যা ড্রুপালের পূর্বনির্ধারিত মডিউল বা থিমের বাইরে ব্যবহারকারীর চাহিদা অনুযায়ী নতুন কার্যকারিতা যোগ করতে ব্যবহৃত হয়। কাস্টম মডিউল তৈরি করার মাধ্যমে আপনি ড্রুপালে নতুন ফিচার, কাস্টম ফাংশন বা ইন্টিগ্রেশন যুক্ত করতে পারেন।
২. কাস্টম মডিউল ডেভেলপমেন্টের ধাপসমূহ
২.১ মডিউল ফোল্ডার তৈরি করা
প্রথমে, আপনাকে আপনার কাস্টম মডিউলের জন্য একটি ফোল্ডার তৈরি করতে হবে। মডিউলটি ড্রুপাল সাইটের /modules/custom/ ডিরেক্টরিতে থাকবে। উদাহরণস্বরূপ, একটি কাস্টম মডিউল my_custom_module তৈরি করার জন্য ফোল্ডার তৈরি করুন:
/sites/all/modules/custom/my_custom_module
২.২ .info.yml ফাইল তৈরি করা
ড্রুপালে প্রতিটি মডিউল একটি .info.yml ফাইলের মাধ্যমে সিস্টেমের কাছে পরিচিত হয়। এই ফাইলটি মডিউলের বেসিক তথ্য এবং ডিপেন্ডেন্সি কনফিগার করে।
ফাইলের নাম: my_custom_module.info.yml
name: 'My Custom Module'
type: module
description: 'A custom module for extending Drupal functionality.'
core_version_requirement: ^8 || ^9
package: Custom
dependencies:
- drupal:node
এখানে:
- name: মডিউলের নাম।
- description: মডিউলের সংক্ষিপ্ত বর্ণনা।
- core_version_requirement: কোন ড্রুপাল ভার্সনে এটি কাজ করবে।
- package: এটি কোন ক্যাটাগরিতে পড়বে (এটি কাস্টম মডিউল)
- dependencies: যে মডিউলগুলির ওপর নির্ভরশীল, যেমন এখানে
nodeমডিউল।
২.৩ .module ফাইল তৈরি করা
কাস্টম মডিউলে আপনার ফাংশনালিটি লিখতে .module ফাইল তৈরি করতে হবে। এই ফাইলটিতে আপনি মডিউলের কাস্টম ফাংশন, হুক, বা অন্যান্য কার্যকলাপ যুক্ত করবেন।
ফাইলের নাম: my_custom_module.module
<?php
/**
* Implements hook_help().
*/
function my_custom_module_help($route_name) {
switch ($route_name) {
case 'help.page.my_custom_module':
return '<p>' . t('This is a custom module.') . '</p>';
}
}
/**
* Implements hook_menu().
*/
function my_custom_module_menu() {
$items = array();
// Define a route for a custom page.
$items['my_custom_module/welcome'] = array(
'title' => 'Welcome Page',
'page callback' => 'my_custom_module_welcome_page',
'page arguments' => array(),
'access callback' => 'TRUE',
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Callback function for the custom page.
*/
function my_custom_module_welcome_page() {
return 'Welcome to my custom module!';
}
এখানে:
- hook_help(): ড্রুপাল সাহায্য পৃষ্ঠার জন্য তথ্য প্রদান করে।
- hook_menu(): নতুন মেনু আইটেম বা রাউট তৈরি করে, এখানে একটি কাস্টম পৃষ্ঠা তৈরি করা হয়েছে।
- callback function: কাস্টম পৃষ্ঠা প্রদর্শন করার জন্য কাস্টম ফাংশন।
২.৪ কাস্টম মেনু আইটেম এবং রাউট তৈরি করা
ড্রুপালে hook_menu() ব্যবহার করে আপনি কাস্টম রাউট তৈরি করতে পারেন, যা ইউজারদের সাইটে নির্দিষ্ট পৃষ্ঠাগুলিতে নিয়ে যাবে। উপরোক্ত .module ফাইলে কাস্টম মেনু আইটেম এবং রাউট তৈরি করা হয়েছে যা /my_custom_module/welcome URL এ একটি পৃষ্ঠা প্রদর্শন করবে।
২.৫ কাস্টম ব্লক তৈরি করা
আপনি যদি ব্লক তৈরি করতে চান, তবে ড্রুপালে কাস্টম ব্লক তৈরি করতে Block Plugin ব্যবহার করতে পারেন।
ফাইল: MyCustomModuleBlock.php (এই ফাইলটি src/Plugin/Block ডিরেক্টরিতে রাখুন)
namespace Drupal\my_custom_module\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a 'My Custom Block' block.
*
* @Block(
* id = "my_custom_block",
* admin_label = @Translation("My Custom Block"),
* category = @Translation("Custom")
* )
*/
class MyCustomModuleBlock extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
return [
'#markup' => $this->t('Hello, this is my custom block!'),
];
}
}
এখানে, আমরা MyCustomModuleBlock নামক একটি কাস্টম ব্লক তৈরি করেছি যা একটি সিম্পল বার্তা প্রদর্শন করবে।
৩. কাস্টম মডিউল ডেভেলপমেন্টে কিছু গুরুত্বপূর্ণ হুক
ড্রুপাল কাস্টম মডিউল ডেভেলপমেন্টের জন্য কিছু গুরুত্বপূর্ণ হুক রয়েছে যা ড্রুপাল সিস্টেমের সাথে ইন্টিগ্রেশন করতে সাহায্য করে:
- hook_menu(): নতুন মেনু আইটেম এবং রাউট তৈরি করতে।
- hook_block_info(): ব্লক তৈরি এবং কাস্টমাইজ করার জন্য।
- hook_form_FORM_ID_alter(): ফর্ম কাস্টমাইজ করার জন্য।
- hook_theme(): কাস্টম টেমপ্লেট তৈরি করার জন্য।
- hook_node_insert(): নোড ইনসার্ট করার সময় কাস্টম ফাংশন কার্যকর করতে।
- hook_preprocess_HOOK(): থিম কাস্টমাইজেশনের জন্য।
৪. মডিউলটি সাইটে সক্রিয় করা
- আপনার কাস্টম মডিউল ফোল্ডারটি
sites/all/modules/custom/বাsites/default/modules/custom/ডিরেক্টরিতে আপলোড করুন। - ড্রুপাল অ্যাডমিন প্যানেলে গিয়ে:
- Admin Menu → Extend এ যান।
- আপনার কাস্টম মডিউল নির্বাচন করুন এবং Enable বাটনে ক্লিক করুন।
উপসংহার
ড্রুপাল কাস্টম মডিউল ডেভেলপমেন্ট একটি শক্তিশালী প্রক্রিয়া যা আপনার সাইটে নতুন ফিচার, কার্যকারিতা এবং কাস্টম সলিউশন তৈরি করতে সহায়ক। .info.yml ফাইল, .module ফাইল এবং Plugin API এর মাধ্যমে আপনি ড্রুপালে কাস্টম মডিউল তৈরি করতে পারবেন। এর মাধ্যমে আপনি আপনার সাইটের কার্যকারিতা বাড়াতে, কাস্টম ফিচার তৈরি করতে এবং থিম এবং কনটেন্টের সাথে ইন্টিগ্রেট করতে পারেন।
Read more