PDA

Zobacz pełną wersję : Plugin w komponencie



noras
30-09-2014, 09:15
Witam,

Mam zainstalowany komponent do K2 który wyświetla mi artykuły w formie dynamicznego Grida. Dodatkowo zainstalowałem drobny Plugin Egolt Like (Lubi - Nie Lubię) zasada działania jak na YT.

Plugin wyświetla się w pozycji beforeDisplayContent w treści artykułu albo na stronie kategorii. I działa świetnie.

Problem polega na tym że nie mogę wyciągnąć Pluginu do zewnętrznego komponentu, który wyświetla artykuły.

W Controllerze komponentu dopisałem sobie funkcję roboczą aby sprawdzić czy to zadziała tak jak chcę, problem polega na tym że plugin jest wyświetlany, ale nie dostaje żadnych akcji. Ajaxem nie są wysyłane informację aby zaktualizować Like/Dislike dla danego artykułu.


public function getItemBefor($item) {
$view = 'item';
$limitstart = JRequest::getInt('limitstart');
$params = K2HelperUtilities::getParams('com_k2');
$limitstart = JRequest::getInt('limitstart');
$params->set('vfolder', NULL);
$params->set('afolder', NULL);
$params->set('vwidth', NULL);
$params->set('vheight', NULL);
$params->set('autoplay', NULL);
$params->set('galleries_rootfolder', NULL);
$params->set('enabledownload', NULL);
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('content');
$item->event = new stdClass;
$item->event->BeforeDisplay = '';
$results = $dispatcher->trigger('onContentBeforeDisplay', array('com_k2.'.$view, &$item, &$params, $limitstart ));
$item->event->BeforeDisplayContent = trim(implode("\n", $results));
return $item->event->BeforeDisplayContent;
}



Coś źle robię? Czy jest może na to jakiś prostszy sposób?

Edit: Czeski błąd :) ( Plugin zamiast Komponent).

mjmartino
30-09-2014, 09:22
Dobra przeczytałem jeszcze raz i
Problem polega na tym że nie mogę wyciągnąć Pluginu do zewnętrznego komponentu, który wyświetla artykuły.
I nie rozumiem tej części czyli o jaki widok CI chodzi ?

noras
30-09-2014, 09:24
Tak, plugin wyświetla się w K2 w standardowych kategoriach, w artykułach itd. Nie wiem czemu nie przenosi mi funkcjonalności "klikania" do zewnętrznego komponentu. Czyli jak na Gridzie klikam łapę w górę albo w dół to nic się nie dzieję ;/

mjmartino
30-09-2014, 09:28
Rzuć linkiem do strony ... najprościej.

noras
30-09-2014, 11:00
PM poszedł link i info.

noras
02-10-2014, 11:49
Dzięki pomocy @mjmartino poradziłem sobie.

Trzeba było rozbudować funkcję o rejestrację plików JS i CSS komponentu. I teraz wszystko ładnie śmiga.



JHtml::script(Juri::base() . 'media/egoltlike/js/ajax.js');
JHtml::stylesheet(Juri::base() . 'media/egoltlike/css/bootstrap.eg.css');
JHtml::stylesheet(Juri::base() . 'media/egoltlike/css/egoltlike.css');