RssControl
Komponenta pro usnadnění tvorby RSS kanálu.
| Verze | 0.1 |
| Download | rsscontrol.zip |
| Autor | Jan Marek |
| Licence | MIT |
Instalace
Zkopírujte obsah složky Rss do své aplikace.
Příklad použití
Presenter:
class RssPresenter extends BasePresenter
{
public function renderDefault() {
/* @var RssControl */
$rss = $this["rss"];
// properties
$rss->title = "Moje stránky";
$rss->description = "Novinky na mých stránkách";
$rss->link = $this->link("//Homepage:");
$rss->setChannelProperty("lastBuildDate", time());
// je možno použít odpovídající metody setTitle, setDescription, setLink
// pro úpravu vlastností kanálu lze využít událost $onPrepareProperties
// items
$items = $this->db
->select("id, name as title, date as pubDate")
->from("articles")
->orderBy("date desc, id desc")
->limit("0, 10")
->fetchAll();
// toto je samozřejmě lepší mít v modelu
// úprava, lze také využít události $onPrepareItem
foreach ($items as &$item) {
$item["link"] = $this->link("//Article:", $item["id"]);
unset($item["id"]);
}
$rss->items = $items;
}
protected function createComponentRss() {
return new RssControl;
}
}
Šablona:
{control rss}
Poznámky:
- veškerá data lze zadávat jako timestamp nebo ve formátu, který přečte
funkce
strtotime - pokud chybí položce
itemelementguid, zkopíruje se zlinka naopak
Historie
Připojené soubory
- rsscontrol.zip 2 kB
Komentáře 
maarlin | 31. 3. 2011, 13:40 | bug
Statická metoda prepareDate() by taky mohla počítat s tím, že z dibi přijde DateTime instance…
if ($date instanceof DibiDateTime) {
$date = $date->format(DateTime::RFC822); }
Endrju | 6. 4. 2011, 15:19 | bug
Mám dojem, že IE9 čtečku nedetekuje jako RSS feed, ale místo toho se ve spodní části prohlížeče zobrazí panel nabízející možnosti otevřít či uložit soubor nebo storno. Zkoumal jsem zda není něco špatně v hlavičce, ale na nic jsem nepřišel.
Nicméně je podezřelý 2. řádek s tím <?php ?>. Ale i když jsem to odstranil, problém přetrvává:
{contentType 'application/rss+xml', 'utf-8'}
<<?php ?>?xml version="1.0"?>
Endrju | 6. 4. 2011, 22:02 | comment
K mému předchozímu postu: změňte parametry contentType na:
{contentType application/rss+xml; charset=utf-8}
Ano, bez uvozovek! Řešení jsem našel v tomto vláknu na fóru
radas | 17. 4. 2011, 18:31 | comment
Ahoj, hodilo by se ještě komponentu upravit tak, aby umožňovala vytvořit element image, který obsahuje další elementy (url, width, height) a další nepovinné.

Matúš Matula | 3. 2. 2011, 2:36 | bug
V metodach prepareProperties a prepareItem si zabudol ‚&‘ pred argument. Takto tie metody nevykonaju ziadnu zmenu na predanom parametri.