ایجاد متغیر در ماژول نویسی
محتویات
مقدمه
در این مقاله آموزشی چگونگی ایجاد متغیرها را در ساختار ماژول نویسی جوملا بررسی خواهیم نمود. اضافه کردن متغیر به یک ماژول بسیار ساده است و این کار از طریق فایل xml نصبی ماژول انجام میگردد به این منظور ما باید یک سری کد در فایل xml نصبی ماژول قرار دهیم.
ایجاد متغیر
در فایل نصبی xml تگ config را همانند کدهای زیر اضافه میکنیم.
<source lang="xml">
<config>
<fields name="params">
<fieldset name="basic">
<field
name="width"
type="text"
default="185"
label="Image Width"
description="Image Width in px" />
<field
name="height"
type="text"
default="300"
label="Image Height"
description="Image Height in px" />
</fieldset>
</fields>
</config>
</source>
تگ <fields> شامل نام و ویژگیهایی که در فایل php برای دسترسی به متغیر(ها) مورد استفاده قرار میگیرد است.
تگ <fieldset> شامل گروهی از متغیرها با نام و ویژگیهای آنها میباشد.
تگ <field> شامل متغیرها به علاوه جزئیاتی مانند مقادیر و ویژگیهای گوناگون آنها نظیر نام متغیر, نوع متغیر, مقدار پیش فرض متغیر, برچسب توضیحات ماژول و ... میباشد. در این مثال ما دو متغیر با نامهای width و height ایجاد کردیم.
نحوه دسترسی به متغیرها
متغیرهایی که در بالا ایجاد کردیم میبایست در یک فایل php مورد دسترسی و پردازش قرار گیرند و این کار توسط تابع ()get امکان پذیر میباشد.
<source lang="php">
$width = $params->get('width');
$height = $params->get('height');
</source>
توجه داشته باشید این praram$ را در فایل xml در تگ fields تعریف کردیم.
فایلهای مورد نیاز
mod_varreq.php : این فایل ورودی ماژول است همچین این فایل وظیفه اجرا و فراخوانی دادههای مورد نیاز در Helper و همچنین include کردن قالب برای نمایش در خروجی ماژول را برعهده دارد.
helper.php : این فایل شامل کلاس helper که خود شامل کلکسیونی از دادههای مورد نیاز است میباشد. دادههای این فایل در ماژول از پایگاه دادهها یا هر منبع دیگری میتوانند استفاده کنند.
mod_varreq.xml : این فایل شامل اطلاعاتی راجب ماژول است و همچنین از این فایل جهت نصب ماژول در جوملا استفاده میشود.
ایجاد فایل mod_varreq.php
کد کامل فایل mod_varreq.php به صورت زیر است
<source lang="php">
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
// Include the syndicate functions only once
require_once( dirname(__FILE__).DS.'helper.php' );
$hello = modVarreqHelper::getHello( $params );
$width = $params->get('width');
$height = $params->get('height');
require( JModuleHelper::getLayoutPath( 'mod_varreq' ) );
?>
</source>
ایجاد فایل helper.php
این فایل شامل کلاس تعریف شده در فایل mod_ varreq.php میباشد, در این مثال شامل کلاس modVarreqHelper و تابع ()getHello میباشد. کد کامل فایل helper به صورت زیر است
<source lang="php">
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
class modVarreqHelper
{
static function getHello($params)
{
return 'Helper Hello World';
}
}
?>
</source>
ایجاد فایل نصبی
این فایل شامل اطلاعاتی در مورد ماژول است. کد کامل فایل mod_varreq.xml به صورت زیر است
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5" client="site" method="upgrade">
<name>VAriable Request</name>
<author>Joomla Farsi Team</author>
<version>1.7</version>
<description>جوملا فارسی مترجم برگزیده جوملا در ایران</description>
<files>
<filename>mod_varreq.xml</filename>
<filename module="mod_varreq">mod_varreq.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field
name="width"
type="text"
default="185"
label="Image Width"
description="Image Width in px" />
<field
name="height"
type="text"
default="300"
label="Image Height"
description="Image Height in px" />
</fieldset>
</fields>
</config>
</extension>
</source>
ایجاد فایل tmpl/default.php
این فایل شامل خروجی است که ماژول نمایش میدهد. این فایل شامل scope مشابه فایل mod_varreq.php است لذا متغیرهای تعریف شده در فایل mod_varreq.php به صورت مستقیم از این فایل قابل دسترسی هستند. بنابراین متغیر hello$ که در فایل default.php تعریف شده است در فایل mod_varreq.php مستقیما قابل دسترسی است. کدهای فایل tmpl/default.php به صورت زیر است.
<source lang="php">
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<html>
<body>
<?php echo $hello; ?>
width = <?php echo $width; ?>
height = <?php echo $height; ?>
</body>
</html>
</source>
ایجاد فایل index.html
وظیفه این فایل نمایش یک صفحه خالی جهت جلوگیری از دسترسی مستقیم به فایلها است.
<source lang="php">
<html><body bgcolor="#FFFFFF"></body></html>
</source>
در این مرحله باید یک فایل zip با نام mod_varreq ایجاد کنیم و این فایل باید شامل فایلها و فولدرهای زیر باشد.
- mod_varreq.php
- index.html
- mod_varreq.xml
- helper.php
- tmpl\default.php
- tmpl\index.html
فایل zip بالا میتواند از قسمت مدیریت افزونهها در مدیریت جوملا نصب شود.
اگر این ماژول را در حالت منتشر شده در یک موقعیت مناسب در قالب سایت تان قرار دهید خروجی کار به شکل زیر خواهد بود.
جمع آوری شده توسط :شهاب مطاع پور
![]() |