ایجاد یک ماژول ساده در جوملا
ایجاد یک ماژول ساده در جوملا
این مقاله یکی از سری مقاله هایی است که به آموزش ایجاد یک ماژول برای جوملا می پردازد. لازم به ذکر است که این ماژول مخصوص جوملا ورژن 3 به بالا می باشد.
یک ماژول درواقع یک افزونه ی سبک و قابل انعطاف است.
در جوملا شما می توانید تعداد زیادی ماژول استاندارد را بیابید، از قبیل ماژول منوها، ماژول آخرین اخبار ، ماژول لاگین و غیره.
در این مقاله قصد داریم، به شما نشان دهیم که چطور یک ماژول ساده ی Hello World را ایجاد کنیم. در این آموزش شما با ساختار یک ماژول آشنایی پیدا خواهید کرد.
ساختار فایل
در طراحی یک ماژول استاندارد، 4 فایل پایه وجود دارند:
- mod_helloworld.php : این فایل یک فایل اصلی برای یک ماژول می باشد. در این فایل مقدار دهی های اولیه برای به دست آوردن داده های ضروری انجام می شوند بعنوان مثال فایل های helper برای به دست آوردن داده های ضروری در این فایل صدا زده می شوند. و همچنین قالبی که ماژول را دربر خواهد داشت در این فایل خواهد بود.
- mod_helloworld.xml : این فایل دربردارنده ی اطلاعاتی درباره ی ماژول است. این فایل درواقع فایل هایی را که نیاز داریم تا در جوملا نصب شوند را تعریف می کند. همچنین این فایل، پارامترهای مورد استفاده در ماژول را تعریف می کند.
- helper.php : این فایل دربر دارنده ی کلاس helper می باشد. از این کلاس برای بازیابی اطلاعاتی که قرار است در ماژول نمایش یابند استفاده می شود. (اطلاعاتی که معمولا از دیتابیس و دیگر منابع دریافت می شوند).
- tmpl/default.php : این فایل همان قالب ماژول می باشد. این فایل، داده های جمع آوری شده توسط mod_helloworld.php را دریافت می کند و کدهای html که قرار است در صفحه نمایش داده شوند را تولید می کند.
ایجاد فایل mod_helloworld.php
فایل mod_helloworld.php سه وظیفه را انجام می دهد:
- include کردن فایل helper.php که دربردارنده ی کلاسی است که از آن برای جمع آوری داده های ضروری استفاده می شود.
- فراخوانی مناسب متد کلاس helper برای بازیابی داده ها.
- include کردن قالب برای نمایش دادن خروجی.
کلاس helper در فایل helper.php تعریف شده است. این فایل شامل یک عبارت require_once می باشد:
مثال (ایجاد یک ماژول ساده در جوملا)
require_once dirname(__FILE__) . '/helper.php';
فایل کامل شده یmod_helloworld.php
فایل کامل شده ی mod_helloworld.php از این قرار است:
مثال (ایجاد یک ماژول ساده در جوملا)
// جلوگیری از دسترسی مستقیم defined('_JEXEC') or die; // Include the syndicate functions only once require_once dirname(__FILE__) . '/helper.php'; $hello = modHelloWorldHelper::getHello($params); require JModuleHelper::getLayoutPath('mod_helloworld');
از دستور خط دوم برای جلوگیری از دسترسی مستقیم به این فایل استفاده می شود.
ایجاد helper.php
فایل helper.php دربردارنده ی یک کلاس است که از آن برای به دست آوردن داده هایی که قرار است در خروجی نمایش داده شوند استفاده می شود. همان طور که بعدا توضیح خواهیم داد کلاس helper دارای یک متد به نام ()getHello خواهد بود. این متد قرار است که پیغام "Hello world" را چاپ کند.
در زیر کد مربوط به helper.php آورده شده است:
کد
class ModHelloWorldHelper { public static function getHello($params) { return 'Hello, World!'; } }
قاعده ی خاصی برای نام گذاری کلاس مورد نظر وجود ندارد، اما بهتر است از یک نام مرتبط استفاده کنیم. به خاطر داشته باشید که اگر می خواهید از پلاگین com_ajax استفاده کنید، باید این فرمت را رعایت کنید.
ماژول های پیشرفته ممکن است در داخل متد کلاس helper از ارتباط با دیتابیس و یا قابلیت های دیگری برخوردار باشند.
ایجاد tmpl/default.php
فایل default.php درواقع قالبی است که خروجی ماژول ما را نشان می دهد.
کد مورد نظر برای فایل default.php به صورت زیر است:
کد
<?php // جلوگیری از دسترسی مستقیم defined('_JEXEC') or die; ?> <?php echo $hello; ?>
یک نکته ی مهم که باید به آن توجه داشته باشیم این است که، فایل قالب و فایل mod_helloworld.php دارای میدان دید یکسانی هستند. این بدین معنی است که متغیر hello$ می تواند در فایل mod_helloworld.php هم تعریف شود و سپس در قالب استفاده شود بدون اینکه تابعی را فراخوانی کنیم یا کار خاصی انجام دهیم.
ایجاد mod_helloworld.xml
از فایل mod_helloworld.xml برای مشخص کردن فایل های مورد نیاز نصب کننده ی جوملا، استفاده می شود. همچنین از این فایل برای مشخص کردن پارامترهای بکار رفته برای پیکربندی ماژول استفاده می شود. اطلاعات اضافی درباره ی ماژول نیز در این فایل قرار می گیرد.
کدهای فایل mod_helloworld از این قرار هستند:
کد
<?xml version="1.0" encoding="utf-8"?> <extension type="module" version="3.1.0" client="site" method="upgrade"> <name>Hello, World!</name> <author>John Doe</author> <version>1.0.0</version> <description>A simple Hello, World! module.</description> <files> <filename>mod_helloworld.xml</filename> <filename module="mod_helloworld">mod_helloworld.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> </files> <config> </config> </extension>
برای اطلاعات بیشتر در مورد کدهای بالا می توانید مقاله ی تشریح templateDetails.xml را مطالعه نمایید.
هنوز دو فایل دیگر هم وجود دارند که شما باید با آنها آشنایی داشته باشید: index.html و tmpl/index.html . این فایل ها به این خاطر اضافه شده اند تا به کاربر نشان دهند که نمی تواند به فایل ی ما دسترسی مستقیم داشته باشد. اگر که یک کاربر سعی کند که به فایل ها و فولدر های ما دسترسی مسقیم داشته باشد، فایل index.html به او نمایش داده می شود. این دو فایل می توانند خالی باشند و یا اینکه چند خط کد در داخل آنها باشد که به کاربر نمایش داده شود:
کد
<html><body bgcolor="#FFFFFF"></body></html>
چون که ماژول ما از فرم فیلدها، استفاده نمی کند، در فایل xml مورد نظر، بخش config را خالی قرار داده ایم.
در ادامه قصد داریم نحوه ی ارتباط با پایگاه داده را توضیح دهیم.
{nice1}
- نوشته شده توسط احسان عباسی
- بازدید: 14368