Как да създадем нов plugin event за K2?

Богомил
 | 20 Януари 2014
Прочетена 1829 пъти  | Последно променена в 26 Януари 2014
(0 гласа)

K2 е много мощен компонент, но при по-сложни проекти все пак се достигат и неговите границите. Това е един такъв случай.

K2 разполага с няколко plugin events в item view:

  • onK2PrepareContent
  • onK2AfterDisplay
  • onK2BeforeDisplay
  • onK2AfterDisplayTitle
  • onK2BeforeDisplayContent
  • onK2AfterDisplayContent

Това ни позволява да поставим плъгина, който искаме да се зареди почти навсякъде.

За разлика от item view, category view разполага само с един event(onK2CategoryDisplay). Ако искаме да зарадим 2 плъгина в преглед на категория, един преди съдържанието и един след него, това няма как да стане. За това трябва да направим следното:

1. Отваряме category.php и там където искаме да създадем нов event добавяме:

<?php
$db
= & JFactory::getDBO();
$query = "SELECT plugins FROM #__k2_categories WHERE id=".(int)$item->catid;
$db->setQuery($query, 0, 1);
$category = $db->loadObject(plugins);
$dispatcher = &JDispatcher::getInstance();
JPluginHelper::importPlugin ('content');
JPluginHelper::importPlugin ( 'k2' );
$results = $dispatcher->trigger('onK2CategoryDisplay2', array ( & $category, &$params, $limitstart));

echo $results [0];
?>

2. Трябва да променим и плъгина, който искаме да се зарежда при новия event. За целта отваряме php файла на плъгина и заместваме същесвуващия event на onK2CategoryDisplay2

Допълнителна информация

  • Версия: Joomla! 1.5, Joomla! 2.5, Joomla! 3.x
  • Категория: Компоненти

Реклама

Онлайн във форума

Имаме 3 гости и 0 потребители на линия

    Реклама