ایجاد ماژول در جوملا 2.5   

از دانشنامه جوملا فارسی - مامبو فارسی
نسخهٔ تاریخ ‏۲۰ اوت ۲۰۱۳، ساعت ۰۳:۵۵ توسط Hamidy (بحث | مشارکت‌ها)

(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به: ناوبری، جستجو

مقدمه

ماژول‌ها افزونه‌های سبک و انعطاف پذیری هستند که در جوملا به هنگام render شدن صفحه مورد استفاده قرار می‌گیرند. ماژول‌ها به طور معمول عناصر موجود در صفحات جوملا را ایجاد می‌کنند.

به عنوان مثال ماژول‌ها می‌توانند: فرم ورود اعضا، جستجو در سایت، منو، نمایش اسلاید یا ... باشند. در این مقاله نحوه ایجاد یک ماژول ساده جوملا را خواهیم آموخت.

فایل‌های مورد نیاز

  • mod_firstmodule.php : این فایل نقطه شروع خواندن ماژول ما توسط جوملا است. این فایل باید اجرا شود تا مقدار دهی‌های اولیه انجام شود و روند اجرای ماژول از فایل helper ادامه یابد.
  • helper.php : این فایل شامل کلاس helper است و این کلاس شامل کلکسیونی از داده‌های مورد نیاز برای استفاده در ماژول است.
  • mod_firstmodule.xml : این فایل شامل اطلاعاتی درباره ماژول است. این اطلاعات برای نصب ماژول در جوملا مورد استفاده قرار می‌گیرند.
  • tmpl/default.php : این فایل برای نحوه نمایش ماژول مورد استفاده قرار می‌گیرد.

ایجاد فایل mod_firstmodule.php

این فایل وظایف (task) زیر را اجرا می‌کند.

Include کردن فایل helper.php :


<source lang="php"> require_once( dirname(__FILE__).DS.'helper.php' ); </source>


فراخوانی متد موجود در فایل helper.php برای بازیابی داده‌ها:

Helper.php در این مثال تنها شامل یک متد است به نام ()getFirst است که عبارت " این اولین ماژول من است " را بالای یک فرم ورود اعضا برمی‌گرداند. فرم ورود اعضا کارایی خاصی در این مثال ندارد اما در آموزش‌های بعدی از آن فرم استفاده خواهیم نمود.


<source lang="php"> $firstp = modFirstmoduleHelper::getFirst( $params ); </source>


اضافه نمودن template برای نمایش خروجی ماژول :


<source lang="php"> require( JModuleHelper::getLayoutPath( 'mod_firstmodule' )); </source>


کد کامل شده فایل mod_firstmodule.php به صورت زیر است:


<source lang="php"> <?php // جلوگیریازاجراباتایپ مستقیم آدرس defined( '_JEXEC' ) or die( 'Restricted access' ); // اضافهکردنتوابعموردنیاز require_once( dirname(__FILE__).DS.'helper.php' ); $firstp = modFirstmoduleHelper::getFirst( $params ); require( JModuleHelper::getLayoutPath( 'mod_firstmodule' ) ); ?> </source>


ایجاد فایل helper.php

این فایل شامل کلاس تعریف شده در mod_firstmodule.php است. در این مثال نام این کلاس modFirstmoduleHelper است و شامل تابع getFirst() می‌باشد.

کد کامل فایل helper.php به شرح زیر است.


<source lang="php"> <?php // جلوگیریازاجراباتایپمستقیمآدرس defined( '_JEXEC' ) or die( 'Restricted access' ); class modFirstmoduleHelper { static function getFirst($params) { return 'این اولین ماژول من است '; } } ?> </source>


ایجاد فایل نصبی mod_firstmodule.xml

این فایل شامل اطلاعاتی برای نصب ماژول در جوملا است. فایل کامل آن به شرح زیر است:


<source lang="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> </source>


ایجاد فایل tmpl/default.php

این فایل شامل خروجی ای است که باید توسط ماژول نمایش داده شود. این فایل دارای scope مشابه mod_firstmodule.php است بنابراین تمام متغیرهای تعریف شده در mod_firstmodule.php در این فایل هم به صورت مستفیم قابل دسترسی است. دراین مثال ما از متغیر firstp$ استفاده می‌کنیم.


<source lang="php"> <?php // no direct access defined( '_JEXEC' ) or die( 'Restricted access' ); ?> <html> <body> <?php echo $firstp; ?>
<label for="modlgn-username">نام کاربری</label> <input id="modlgn-username" type="text" name="username" class="inputbox" size="18" />
<label for="modlgn-password">رمزعبور</label> <input id="modlgn-password" type="text" name="username" class="inputbox" size="18" /> </body> </html> </source>

ایجاد فایل index.html

باعث نمایش یک صفحه خالی خواهد شد. کد مربوط به این فایل <source lang="php"> <html><body bgcolor="#FFFFFF"></body></html> </source>


است.

اینک باید یک فایل zip از فولد mod_firstmodule ایجاد نمایید که محتویات آن شامل کدهای بالا و فایل‌های زیر باشد :

  1. mod_firstmodule.php
  2. index.html
  3. mod_firstmodule.xml
  4. helper.php
  5. tmpl\default.php
  6. tmpl\index.html

فایل zip ایجاد شده در این مرحله قابلیت نصب شدن از قسمت مدیریت افزونه‌های جوملا را دارد. بعد از نصب ماژول، ماژول First Module در مدیریت ماژول‌ها قابل رویت خواهد بود. فقط کافیست این ماژول را در حالت منتشر شده در یک موقعیت در سایت تان قرار دهید تا خروجی ماژولی که نوشتید را مشاهده کنید.


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

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