معرفی پلاگین ها و رویدادها
محتویات
مقدمه
پلاگینهای جوملا امکان اجرای یک قطعه کد را زمانیکه رویداد (event) خاصی اتفاق بیوفتد فراهم میکنند. همچنین پلاگینها امکان تقابل و فعل و انفعال با کامپوننتها و ماژولهای جوملا را دارند یعنی بدون اینکه در داخل کدهای کامپوننتها و ماژولها تغییری ایجاد شود. با استفاده از پلاگینها امکان ایجاد تغییرات در عملکرد این افزونهها امکان پذیر است.
در داخل هسته جوملا مجموعه معین از پیش تعریف شدهای از رویدادهای پلاگینها از پیش تعریف شده است. بطوریکه یک رویداد اتفاق میافتد تمام توابع مربوط به رویداد یا رویدادها به ترتیب میشوند. از این رو برای توسعه جوملا شناسایی رویدادهای مربوط به پلاگینها و موقعیتی آنها در فایلها قرار دارند اهمیت دارد.
با توجه به سیستم نام گذاری استاندارد جوملا عملکرد کلیه رویدادها با توجه به نام آنها مشخص است. ما در این مقاله انواع پلاگینها و رویدادهایی که از قبل تعریق شده است را صرفا معرفی خواهیم کرد.
انواع پلاگینها
- پلاگینهای سیستمی (System Plugin)
- پلاگینهای محتوا (Content Plugin)
- پلاگینهای کاربری (User Plugin)
- پلاگینهای اعتبارسنجی (Authentication Plugin)
- پلاگینهای ویرایشگر (Editors Plugin)
- پلاگینهای جستجو (Search Plugin)
- پلاگینهای تماس (Contact Plugin)
رویدادهای وابسته به پلاگینهای سیستم
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>
جمع آوری شده توسط :شهاب مطاع پور
استفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.
|