معرفی پلاگین ها و رویدادها   

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

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

مقدمه

پلاگین‌های جوملا امکان اجرای یک قطعه کد را زمانیکه رویداد (event) خاصی اتفاق بیوفتد فراهم می‌کنند. همچنین پلاگین‌ها امکان تقابل و فعل و انفعال با کامپوننت‌ها و ماژول‌های جوملا را دارند یعنی بدون اینکه در داخل کدهای کامپوننت‌ها و ماژول‌ها تغییری ایجاد شود. با استفاده از پلاگین‌ها امکان ایجاد تغییرات در عملکرد این افزونه‌ها امکان پذیر است.

در داخل هسته جوملا مجموعه معین از پیش تعریف شده‌ای از رویداد‌های پلاگین‌ها از پیش تعریف شده است. بطوریکه یک رویداد اتفاق می‌افتد تمام توابع مربوط به رویداد یا رویداد‌ها به ترتیب می‌شوند. از این رو برای توسعه جوملا شناسایی رویداد‌های مربوط به پلاگین‌ها و موقعیتی آنها در فایل‌ها قرار دارند اهمیت دارد.

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

انواع پلاگین‌ها

رویداد‌های وابسته به پلاگین‌های سیستم

1) onBeforeRender()
2) onAfterRender()
3) onAfterRoute()
4) onAfterDispatch()

این رویدادها در کلاس JAdministrator در فایل application.php قرار دارند در مسیر

Joomla_Root\administrator\includes

در دسترس می‌باشند.

5) onAfterInitialise()

این رویداد در کلاس JAdministrator در فایل application.php قرار دارند در مسیر

Joomla_Root\libraries\joomla\application

در دسترس می‌باشند.

رویدادهای وابسته به پلاگین محتوا

1) onContentPrepare($context, &$item, &$params, $offset)
2) onContentAfterTitle($context, &$item, &$params, $offset)
3) onContentBeforeDisplay($context, &$item, &$params, $offset)
4) onContentAfterDisplay($context, &$item, &$params, $offset)

این رویدادها در کلاس ContentViewArticle در فایل view.html.php قرار دارند در مسیر

Joomla_Root\components\com_content\views\article

در دسترس می‌باشند.

item$ = این یک اشاره گر به مطلبی است که در View ساخته می‌شود.

params$ = این یک اشاره گر به آرایه‌ای است که با پارامترهای مشخص شده توسط View در ارتباط است.

offset$ = یک عدد از نوع integer است که مشخص کننده صفحه‌ای از مطلب تولید شده است.

context$ = یک متن مشخص است.

5) onContentPrepareForm($form, $data)
6) onContentPrepareData($context, $data)

این رویدادها در کلاس ContactModelContactدر فایل contact.php قرار دارند در مسیر

Joomla_Root\components\com_contact\models

در دسترس می‌باشند.

form$ = یک شی JForm است که نمایش داده می‌شود.

data$ = یک شی شامل داده‌هایی برای فرم است.

context$ = یک متن مشخص است.

پلاگین‌های کاربری

1) onUserLogin($response, $options)
2) onUserLoginFailure($response)
3) onUserLogout($parameters, $options)
4) onUserLogoutFailure($parameters)

این رویدادها در کلاس JApplication در فایل application.php قرار دارند در مسیر

Joomla_Root\libraries\joomla\application

در دسترس می‌باشند.

5) onUserBeforeSave($getproperties, $isNew, $properties)
6) onUserAfterSave($getproperties, $isNew, $result, $error)
7) onUserBeforeDelete($getproperties)
8) onUserAfterDelete($getproperties,$result, $error)

این رویدادها در کلاس JUser در فایل user.php قرار دارند در مسیر

Joomla_Root\libraries\joomla\user

در دسترس می‌باشد.

پلاگین‌های اعتبارسنجی

1) onUserAuthorisation($response, $options)

این رویداد در کلاس JAuthentication در فایل authentication.php قرار دارد در مسیر

JoomlaRoot\libraries\joomla\user

در دسترس می‌‌باشد.

response$ = شامل اطلاعات نام کاربری user ایکه اعتبار سنجی شده.

options$ = شامل لیستی از option‌ها.

2) onUserAuthorisationFailure($authorisation)

این رویداد در کلاس JApplication در فایل application.php قرار دارد در مسیر

JoomlaRoot\libraries\joomla\application

در دسترس می‌باشد.

پلاگین ویرایشگر

1) onInit()
2) onSave($id)
3) onSetContent($id)
4) onCustomEditorButton (editors-xtd)
5) onDisplay($name, $content, $width, $height, $col, $row, $buttons = true, $id = null, $asset = null, $author = null, $params = array())
6) onGetContent($id)
7) onGetInsertMethod($name)

پلاگین جستجو

1) onContentSearch($keyword,$match,$ordering,$areas)
2) onContentSearchAreas()

این رویدادها در کلاس SearchModelSearch در فایل search.php قرار دارد در مسیر

JoomlaRoot\components\com_search\models

در دسترس می‌باشند.

پلاگین تماس

این رویدادها هنگامیکه با فرم تماس (کامپوننت تماس) کار می‌کنید اجرا می‌شوند . این رویداد‌ها در کلاس ContactControllerContact و در فایل contact.php قرار دارد و از مسیر زیر در دسترس می‌باشند.

1) onSubmitContact(&$contact, &$data)

زمانیکه فرم اعتبار سنجی شد اجرا می‌شود.

2)onValidateContact(&$contact, &$data)

جهت اعتبار سنجی مورد استفاده قرار می‌گیرد به عبارت دیگر رویدادهای بالا می‌توانند برای اعتبار سنجی و captcha هم مورد استفاده قرار گیرند.

contact$ = شامل یک اشاره گر به کاربری که اطلاعاتی را در فرم تماس ارسال کرده است.

data$ = شامل اشاره گر به متغیری که توسط متد POST دریافت می‌شود و به شکل زیر مورد استفاده قرار می‌گیرد.


<source lang="php"> $data=JRequest::getVar('jform, array(), 'post','array'); </source>


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

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