Domů arrow Domů arrow PHP-tvoříme rss

PHP-tvoříme rss

PDF Tisk E-mail
Zhlédnutí: 1836
Hodnocení čtenářů: / 0
SlabéVynikající 
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:

  • RSS0.91
  • RSS1.0
  • RSS2.0
  • OPML
  • ATOM0.3
  • mbox

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++)>
Komentářů
Přidat Nový Hledat RSS
Přidat komentář
Jméno:
Email:
 
Website:
Název:
UBBKód:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.22 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
< Předch.   Další >

Zapomenuté heslo
Nemáte účet? Vytvořte jej!
ICQ: 226785996
Skype: My status bartfil
Jabber: filbar@jabber.cz
TOPlist

Dostupnost podle Monitoring-serverů.cz

Doporučujeme

tiberiumleu_4_.jpg
Příběhy psů z útulků