|
STRIX
PluginiRSS: Revision 1
rss/*Ova infrastruktura namijenjena je da omogući željenim modulima generiranje RSS feeda. Feedove generira skripta rss/rssfeeder.php kojoj je potrebno predati tri GET parametra:
U skripti rss/rssfeeder.php nalaze se konstante koje omogućavanju njezino konfiguriranje:
Za generiranje RSS-a skripta rss/rssfeeder.php koristi biblioteku inc/ContentFeeder.class.php. Svaki modul koji želi koristiti ovu infrastrukturu (tj. generirati RSS feed) mora imati zasebnu datoteku u direktoriju inc/plugins/rss/. Ime datoteke mora biti isto kao i dogovoreni ID tipa sadržaja (parametar rss_ct), a pretpostavljena ekstenzija datoteke je .php. Unutar datoteke plugina mora se nalaziti funkcija čije je ime kombinacija PLUGIN_FUNCTION_PREFIX-a i ID tipa sadžaja. Dotična funkcija vraća rezultat odgovarajućeg upita iz baze pomoću metode getAllTable. Iz vraćenog rezultata skripta rss/rssfeeder.php izgenerirat će RSS feed. PrimjerZa modul Vijesti (mod_news) dogovoreni identifikacijski parametar news. Zato se datoteka u inc/plugins/rss zove news.php, a funkcija koja će biti pozvana zove se rssfeed_news:
<?php
$rssfeed_channel = "News";
$rssfeed_description = "News";
$rssfeed_ttl = "300";
function rssfeed_news ($uid, $kid) {
$q = new SQLquery("SELECT *
FROM news, news_kategorija, kategorija
WHERE news.id = news_kategorija.news_id
AND kategorija.id = news_kategorija.kategorija_id
AND news_kategorija.kategorija_id = " . $kid . "
AND news.visible = TRUE
AND news_kategorija.approved = TRUE
AND news_kategorija.archived = FALSE
AND userCanDoOnObject (" . $uid . ", 1, 'news', news.id)
AND (news_kategorija.time_to > NOW() OR news_kategorija.time_to IS NULL)
AND (news_kategorija.time_from < NOW() OR news_kategorija.time_from IS NULL)
ORDER BY news_kategorija.pos DESC, news.date DESC");
$data = $q->getAllTable();
return $data;
}
?>
Na početku plugina nalaze se tri konfiguracijske varijable:
Za funkciju je dovoljno da sadžava samo odgovarajući SQL query te da vrati "sirove" rezultate. |