ایجاد متغیر در ماژول نویسی: تفاوت بین نسخه‌ها   

از دانشنامه جوملا فارسی - مامبو فارسی
پرش به: ناوبری، جستجو
(صفحه‌ای جدید حاوی «=مقدمه= در این مقاله آموزشی چگونگی ایجاد متغیرها را در ساختار ماژول نویسی [h...» ایجاد کرد)
(بدون تفاوت)

نسخهٔ ‏۷ سپتامبر ۲۰۱۳، ساعت ۱۹:۴۲

مقدمه

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