سلام کاربران عزیز امروز میخوام درمورد ماژول ها صحبت کنیم .با ما همراه باشید.ماژولها افزونههای سبک و انعطاف پذیری هستند که در جوملا به هنگام render شدن صفحه مورد استفاده قرار میگیرند. ماژولها به طور معمول عناصر موجود در صفحات جوملا را ایجاد میکنند.
به عنوان مثال ماژولها میتوانند: فرم ورود اعضا، جستجو در سایت، منو، نمایش اسلاید یا … باشند. در این مقاله نحوه ایجاد یک ماژول ساده جوملا را خواهیم آموخت.
فایلهای مورد نیاز
mod_firstmodule.php : این فایل نقطه شروع خواندن ماژول ما توسط جوملا است. این فایل باید اجرا شود تا مقدار دهیهای اولیه انجام شود و روند اجرای ماژول از فایل helper ادامه یابد.
helper.php : این فایل شامل کلاس helper است و این کلاس شامل کلکسیونی از دادههای مورد نیاز برای استفاده در ماژول است.
mod_firstmodule.xml : این فایل شامل اطلاعاتی درباره ماژول است. این اطلاعات برای نصب ماژول در جوملا مورد استفاده قرار میگیرند.
tmpl/default.php : این فایل برای نحوه نمایش ماژول مورد استفاده قرار میگیرد.
ایجاد فایل mod_firstmodule.php
این فایل وظایف (task) زیر را اجرا میکند.
Include کردن فایل helper.php :
require_once( dirname(__FILE__).DS.’helper.php’ );
فراخوانی متد موجود در فایل helper.php برای بازیابی دادهها:
Helper.php در این مثال تنها شامل یک متد است به نام ()getFirst است که عبارت ” این اولین ماژول من است ” را بالای یک فرم ورود اعضا برمیگرداند. فرم ورود اعضا کارایی خاصی در این مثال ندارد اما در آموزشهای بعدی از آن فرم استفاده خواهیم نمود.
$firstp = modFirstmoduleHelper::getFirst( $params );
اضافه نمودن template برای نمایش خروجی ماژول :
require( JModuleHelper::getLayoutPath( ‘mod_firstmodule’ ));
کد کامل شده فایل mod_firstmodule.php به صورت زیر است:
<?php
// جلوگیریازاجراباتایپ مستقیم آدرس
defined( ‘_JEXEC’ ) or die( ‘Restricted access’ );
// اضافهکردنتوابعموردنیاز
require_once( dirname(__FILE__).DS.’helper.php’ );
$firstp = modFirstmoduleHelper::getFirst( $params );
require( JModuleHelper::getLayoutPath( ‘mod_firstmodule’ ) );
?>
ایجاد فایل helper.php
این فایل شامل کلاس تعریف شده در mod_firstmodule.php است. در این مثال نام این کلاس modFirstmoduleHelper است و شامل تابع getFirst() میباشد.
کد کامل فایل helper.php به شرح زیر است.
<?php
// جلوگیریازاجراباتایپمستقیمآدرس
defined( ‘_JEXEC’ ) or die( ‘Restricted access’ );
class modFirstmoduleHelper
{
static function getFirst($params)
{
return ‘این اولین ماژول من است ‘;
}
}
?>
ایجاد فایل نصبی mod_firstmodule.xml
این فایل شامل اطلاعاتی برای نصب ماژول در جوملا است. فایل کامل آن به شرح زیر است:
<?xml version=”1.0″ encoding=”utf-8″?>
<extension type=”module” version=”2.5″ client=”site” method=”upgrade”>
<name>First Module</name>
<author>Joomla Farsi</author>
<version>2.5</version>
<description>جوملا فارسی مترجم برگزیده جوملا در ایران</description>
<files>
<filename>mod_firstmodule.xml</filename>
<filename module=”mod_firstmodule”>mod_firstmodule.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
<config>
</config>
</extension>
ایجاد فایل tmpl/default.php
این فایل شامل خروجی ای است که باید توسط ماژول نمایش داده شود. این فایل دارای scope مشابه mod_firstmodule.php است بنابراین تمام متغیرهای تعریف شده در mod_firstmodule.php در این فایل هم به صورت مستفیم قابل دسترسی است. دراین مثال ما از متغیر firstp$ استفاده میکنیم.
<?php
// no direct access
defined( ‘_JEXEC’ ) or die( ‘Restricted access’ );
?>
<html>
<body>
<?php echo $firstp; ?>
<br>
<label for=”modlgn-username”>نام کاربری</label>
<input id=”modlgn-username” type=”text” name=”username” class=”inputbox” size=”18″ />
<br>
<label for=”modlgn-password”>رمزعبور</label>
<input id=”modlgn-password” type=”text” name=”username” class=”inputbox” size=”18″ />
</body>
</html>
ایجاد فایل index.html
باعث نمایش یک صفحه خالی خواهد شد. کد مربوط به این فایل
<html><body bgcolor=”#FFFFFF”></body></html>
است.
اینک باید یک فایل zip از فولد mod_firstmodule ایجاد نمایید که محتویات آن شامل کدهای بالا و فایلهای زیر باشد :
mod_firstmodule.php
index.html
mod_firstmodule.xml
helper.php
tmpl\default.php
tmpl\index.html
فایل zip ایجاد شده در این مرحله قابلیت نصب شدن از قسمت مدیریت افزونههای جوملا را دارد. بعد از نصب ماژول، ماژول First Module در مدیریت ماژولها قابل رویت خواهد بود. فقط کافیست این ماژول را در حالت منتشر شده در یک موقعیت در سایت تان قرار دهید تا خروجی ماژولی که نوشتید را مشاهده کنید.