PHP-tvoříme rss |
|
|
|
| Zhlédnutí: 1836 | ||||||||
| Napsal filbar | ||||||||
| Úterý, 09 říjen 2007 | ||||||||
| Aktualizováno ( Neděle, 07 říjen 2007 ) | ||||||||
|
V dalším pokračování seriálu u zajímavých PHP třídách si ukážeme jak jednoduše vytvořit RSS našich stránek ve všech obvyklých formátech. Třídu příhodně pojmenovanou FeedCreator nalezneme na stránkách http://www.bitfolge.de/rsscreator-en.html. Po rozbalení zip archivu získáme soubor s licencí a samotnou třídu, kterou budeme pro tvorbu RSS potřebovat. Tuto třídu stačí zaincludovat do požadovaného skriptu PHP a můžeme s ní začít pracovat. Objekt třídy si vytvoříme následujícím způsobem: $rssw = new UniversalFeedCreator(); Následně určíme, jestli se má při každém požadavku tvořit nový soubor RSS, nebo použít existující. Jestliže chceme používat uložený feed zadáme metodu useCached() se třemi nepovinnými parametry. První z nich určuje, kterého typu feedu se cachování týká. FeedCreator rozeznává následující typy RSS:
Jednu z těchto hodnot lze dosadit do prvního parametru metody. Druhý parametr obsahuje jméno souboru cachované RSS a ve třetím nastavíme dobu jak dlouho má cache platit. Následuje vytvoření kódování RSS parametrem encoding. V dnešní době je nejlepší použít kódování UTF-8. V dalších parametrech uvedeme název feedu(title), jeho popis(description), a odkaz(link), případně adresu feedu(syndicationURL), který bude nejspíše shodná s odkazem. Feedu můžeme přiřadit i obrázek. Ten však vytváří třída FeedImage, takže je nutné vytvořit nový objekt, který jej bude reprezentovat. Obrázku je možné opět přiřadit název(title), odkaz(link) a popis(description). Mimo to samozřejmé musíme určit URL obrázku-parametr url. Obrázku lze i změnit rozměry pomocí parametrů width a height. Na závěr jej ještě přiřadíme k feedu do parametru image: $rssw->image=$image; Samotné položky feedu zastupuje třída FeedItem, takže opět vytvoříme její objekt. Tento objekt je nutné vytvářet znovu pro každou položku feedu. Položky musí obsahovat název(title), popis(description) a odkaz(link). Mezi volitelné části patří datum(date), autor(author), autorův e-mail(authorEmail), generátor(creator), kategorie(category), komentáře(comments), zdroj(source) a guid(guid). Obrázek položce přířadíme stejným způsobem jako u celého feedu, tj vytvoříme si objekt obrázku, přiřadíme mu jeho parametry a nakonec jej uložíme do parametru image položky feedu. Položky feedu přiřadíme metodou addItem() feedu. Jako poslední zadáme povel k vytvoření a uložení celého feedu metodou saveFeed() se třemi nepovinnými parametry. První parametr určuje typ feedu a jako implicitní je vytvořen RSS0.91. Typy RSS jsou shodné s metodou useCached(). Druhý parametr je rovněž shodný-jedná se o jméno souborů. Ve třetí však určíme jestli se má prohlížeč na stránku s feedem přesměrovat(ve výchozím stavu povoleno). Na závěr si ukážeme kompletní příklad: include_once 'feedcreator.class.php'; $rssw = new UniversalFeedCreator(); $rssw->useCached(); $rssw->cssStyleSheet = ""; $rssw->encoding = "utf-8"; $rssw->title = "RSS Feed k článku"; $rssw->description="Popis feedu"; $rssw->link="http://www.linpro.cz"; $rssw->syndicationURL="http://www.linpro.cz"; $rssimage=new FeedImage(); $rssimage->url="http://www.linpro.cz/logo"; $rssimage->title="LinPro logo"; $rssimage->link="http://www.linpro.cz"; $rssimage->description="Logo Linuxového profíka"; $rssw->image=$rssimage; for ($i=0;$i<count($items);$i++) $rssitem="new">title=$items[$i]["title"]; $rssitem->link=$items[$i]["link"]; $rssitem->description[$i]["desc"]; $rssitem->date[$i]["date"]; $rssitem->author[$i]["author"]; $rimage=new FeedImage(); $rimage->url=$items[$i]["image"]; $rimage->title=$items[$i]["imgtitle"]; $rimage->link=$items[$i]["imglink"]; $rimage->description=$items[$i]["imgdesc"]; $rimage->width="20"; $rimage->heihgt="25"; $rssitem->image=$rimage; $rssw->addItem($rssitem); } $rssw->saveFeed("RSS2.0", "cache/rss20.xml");</count($items);$i++)>
Powered by !JoomlaComment 3.22
3.22 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |
||||||||
| < Předch. | Další > |
|---|