Grav CMS একটি অত্যন্ত কাস্টমাইজযোগ্য এবং নমনীয় প্ল্যাটফর্ম, যেখানে আপনি আপনার প্রয়োজন অনুযায়ী কাস্টম প্লাগইন তৈরি করতে পারেন। কাস্টম প্লাগইন তৈরি করে আপনি Grav-এর ফিচারগুলো বাড়াতে পারেন এবং সাইটের কার্যকারিতা ও কাস্টমাইজেশন উন্নত করতে পারেন। এই টিউটোরিয়ালে আমরা ধাপে ধাপে Grav-এ কাস্টম প্লাগইন তৈরি করার প্রক্রিয়া নিয়ে আলোচনা করব।
কাস্টম প্লাগইন তৈরি করার জন্য প্রস্তুতি
১. Grav প্লাগইন কাঠামো বুঝে নেওয়া
Grav-এ প্লাগইন তৈরি করতে হলে আপনাকে একটি নির্দিষ্ট কাঠামো অনুসরণ করতে হবে। একটি প্লাগইন সাধারণত দুটি মূল অংশে বিভক্ত:
- Plugin Class: যা প্লাগইনটির মূল কার্যকারিতা নির্ধারণ করে।
- Configuration: যেখানে প্লাগইনের সেটিংস এবং কনফিগারেশন থাকে।
এছাড়া, আপনার প্লাগইনকে Grav সিস্টেমে রেজিস্টার করানোর জন্য কিছু মেটাডেটা যেমন নাম, সংস্করণ এবং বিবরণও রাখতে হবে।
২. Grav প্লাগইন ডিরেক্টরি তৈরি করা
প্রথমে আপনার প্লাগইনের জন্য একটি ডিরেক্টরি তৈরি করতে হবে। Grav প্লাগইনগুলো user/plugins/ ফোল্ডারে রাখা হয়। নিচে একটি উদাহরণ দেওয়া হলো:
user/
plugins/
myplugin/
myplugin.php
blueprints/
default.yaml
languages/
en.yaml
assets/
css/
style.css
js/
script.js
এখানে:
- myplugin.php: প্লাগইনের PHP ক্লাস ফাইল।
- blueprints/default.yaml: প্লাগইনের কনফিগারেশন ফাইল।
- languages/en.yaml: ভাষার জন্য কনফিগারেশন (যদি আপনার প্লাগইনটি একাধিক ভাষা সাপোর্ট করে)।
- assets: আপনার প্লাগইনের জন্য CSS, JavaScript বা অন্য মিডিয়া ফাইল।
কাস্টম প্লাগইন তৈরি করার ধাপ
১. প্লাগইন ক্লাস তৈরি করা
প্রথমে myplugin.php ফাইলটি তৈরি করুন এবং আপনার প্লাগইনের মূল কার্যকারিতা লিখুন। Grav প্লাগইন সাধারণত Plugin ক্লাস থেকে ইনহেরিট (inherit) করা হয়। উদাহরণস্বরূপ, একটি কাস্টম প্লাগইন যা Grav সাইটে একটি সেলাম (greeting) বার্তা যোগ করবে:
<?php
namespace Grav\Plugin;
use Grav\Common\Plugin;
use RocketTheme\Toolbox\Event\Event;
class MyPlugin extends Plugin
{
public static function getSubscribedEvents()
{
return [
'onPagesInitialized' => ['onPagesInitialized']
];
}
public function onPagesInitialized()
{
// এই ফাংশনটি Grav পেজের লোডের পরে চালানো হবে
echo "Hello from MyPlugin!";
}
}
এখানে:
onPagesInitializedএকটি ইভেন্ট হ্যান্ডলার যা Grav পেজ লোড হওয়ার পরে একটি বার্তা প্রদর্শন করবে।getSubscribedEvents()পদ্ধতিটি ইভেন্টগুলোর তালিকা রিটার্ন করবে, যা প্লাগইনটি গ্রাহ্য করবে।
২. কনফিগারেশন ফাইল তৈরি করা
blueprints/default.yaml ফাইলে প্লাগইনের কনফিগারেশন সেটিংস উল্লেখ করা হয়। উদাহরণস্বরূপ:
name: MyPlugin
version: 1.0.0
description: "A simple Grav plugin that shows a greeting message."
enabled: true
এখানে:
name: প্লাগইনের নাম।version: প্লাগইনের সংস্করণ।description: প্লাগইনের বিবরণ।enabled: প্লাগইন সক্রিয় করা হয়েছে কিনা।
৩. ইভেন্ট এবং হুক ব্যবহার
Grav প্লাগইনে ইভেন্ট এবং হুক ব্যবহারের মাধ্যমে আপনি সিস্টেমের বিভিন্ন অংশে প্রভাব ফেলতে পারেন। উপরের উদাহরণে, onPagesInitialized ইভেন্ট ব্যবহার করা হয়েছে। তবে আপনি আরো অনেক ইভেন্ট ব্যবহার করতে পারেন, যেমন:
onTwigTemplatePathsonAfterPageContentonFormProcessed
৪. ইউজার ইন্টারফেস (UI) তৈরি করা
আপনার প্লাগইনে যদি কনফিগারেশন পরিবর্তন করার প্রয়োজন হয়, তবে আপনাকে একটি UI তৈরি করতে হবে। Grav এর এডমিন প্লাগইন ব্যবহার করে আপনি প্লাগইনের জন্য একটি কনফিগারেশন পেজ তৈরি করতে পারেন।
blueprints/default.yaml ফাইলের মধ্যে আপনাকে কনফিগারেশন ফর্মের জন্য ফিল্ডগুলো নির্ধারণ করতে হবে, যেমন:
form:
fields:
tabs:
type: tabs
active: 1
fields:
general:
type: tab
title: General Settings
fields:
greeting_message:
type: text
label: Greeting Message
default: "Hello, welcome to my Grav site!"
এখানে:
form.fieldsহল UI ফর্মের ক্ষেত্রগুলি যেখানে ইউজার কনফিগারেশন পরিবর্তন করতে পারে।
৫. প্লাগইন সক্রিয় করা
প্লাগইন ইনস্টল হওয়ার পর, আপনাকে এটি সক্রিয় করতে হবে। Grav এ প্লাগইন সক্রিয় করতে, আপনাকে user/config/plugins/ ফোল্ডারে myplugin.yaml ফাইল তৈরি করে সেটিংস কনফিগার করতে হবে:
enabled: true
এটি প্লাগইনকে সক্রিয় করবে এবং Grav সিস্টেমে এটি স্বয়ংক্রিয়ভাবে রেজিস্টার হবে।
Grav প্লাগইন উন্নয়ন এবং ডিবাগিং
Grav-এ কাস্টম প্লাগইন তৈরি করার পর, আপনি নিম্নলিখিত টুলস এবং কৌশল ব্যবহার করে ডিবাগিং করতে পারেন:
Grav লগিং (Logging): Grav-এ ডিবাগিং করতে আপনি প্লাগইনে লগিং যুক্ত করতে পারেন:
$this->grav['log']->info('MyPlugin is working!');- Grav এর ডেভেলপার টুলস: Grav ডেভেলপার টুলস ব্যবহার করে আপনি প্লাগইনের কার্যকারিতা পরীক্ষা করতে পারেন এবং লোগ ফাইলগুলো পর্যবেক্ষণ করতে পারেন।
সারাংশ
Grav-এ কাস্টম প্লাগইন তৈরি করা সহজ এবং নমনীয়। আপনি Grav এর ইভেন্ট এবং হুক ব্যবহার করে সাইটের কার্যকারিতা বাড়াতে পারেন, এবং একটি কাস্টম কনফিগারেশন পৃষ্ঠা তৈরি করতে পারেন। প্লাগইন তৈরি করে আপনি আপনার সাইটে নতুন ফিচার যোগ করতে পারেন, যেমন ইউজার ইন্টারফেস কনফিগারেশন, মেনু ইন্টিগ্রেশন, এবং আরও অনেক কিছু।
Read more