Kicsit programozós poszt következik.
Úgy alakult, hogy egy Joomla! + K2 alapú weboldalba egy fontos content plugint építettem. Kiválóan is működött, kivéve az, hogy a feed-ben nem került feldolgozásra, ami elég komoly probléma volt.
Természetesen megoldás itt is van, bár nem szép és K2 frissítéskor elveszítjük, újra meg kell csinálni.
A lényeg a következő: Az RSS feed egy elemlistát tesz közzé a szükséges XML formátumban. A vezérlést itt a megfelelő view-ban található view.feed.php végzi. Itt kell közbeavatkoznunk.
Az érintett fájl esetünkben a components/com_k2/views/itemlist/view.feed.php címen érhető el. Az én verziómban az elemek feed-be töltése a 137. sor környékén található a következő megjegyzéssel:
//Prepare feed items
Keressük meg a következő kódot:
$feedItem = new JFeedItem();
Ez elé szúrjuk be a következőket:
$dispatcher = &JDispatcher::getInstance();
JPluginHelper::importPlugin('content');
$item->text = $item->description;
$dispatcher->trigger('onPrepareContent', array ( & $item, &$params, $limitstart));
$item->description = $item->text;
Összefoglalva soronként:
- betöltjük a megfelelő dispatchert
- betöltjük a megfelelő content plugineket
- mivel az $item objektumot referenciaként adjuk át és a pluginek a text-re harapnak, a description-t értékül adjuk a textnek
- lefuttatjuk a pluginek onPrepareContent metódusát
- a már módosított text-et visszaadjuk a description-nek, mivel a feedhez az kell
Ennyi, a feed-ünk a content pluginnel súlyosbított elemeket fogja mutatni
Utolsó kommentek