ایجاد متغیر در ماژول نویسی   

از دانشنامه جوملا فارسی - مامبو فارسی
پرش به: ناوبری، جستجو

مقدمه

در این مقاله آموزشی چگونگی ایجاد متغیرها را در ساختار ماژول نویسی جوملا بررسی خواهیم نمود. اضافه کردن متغیر به یک ماژول بسیار ساده است و این کار از طریق فایل 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 بالا می‌تواند از قسمت مدیریت افزونه‌ها در مدیریت جوملا نصب شود.


Mod varreq.jpg


اگر این ماژول را در حالت منتشر شده در یک موقعیت مناسب در قالب سایت تان قرار دهید خروجی کار به شکل زیر خواهد بود.


Result mod varreq.jpg



جمع آوری شده توسط :شهاب مطاع پور

Indent support.png
هر گونه سوال و یا مشکلی در این رابطه دارید، می‌توانید در انجمن تخصصی تیم جوملا فارسی جستجو کرده و در صورت عدم دریافت نتیجه مورد نظر، سوال جدیدی را مطرح کنید.
8.pngاستفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.