VgtFeedGenerator

Klasa ma na celu pomoc w generowaniu kanałów Atom i Rss. Dokumentacja zawiera komplet informacji na temat klasy, poniżej kilka przykładów jej użycia:

Jak zacząć

Na początek należy utworzyć obiekt klasy VgtFeedGenerator, jako parametr podając unikalny identyfikator, którym będzie oznaczony kanał, oraz zdefiniować tytuł, opis i autora kanału.

<?php
$oFeed 
= new VgtFeedGenerator('http://php.vgtworld.pl/atom/newsy/');
$oFeed->kanalTytul('VGT Newsy');
$oFeed->kanalAutor('VGT''tomek@vgtworld.pl''http://www.vgtworld.pl');
$oFeed->kanalOpis('Newsy od VGT');
?>

Tworzenie kolejnych wpisów

Następnie należy rozpocząć pętle, która bedzię tworzyć w obiekcie kolejne wpisy. Każdy nowy wpis należy rozpocząć metodą nowyWpis() w parametrze przekazujac unikalny identyfikator danego wpisu. Identyfikator ten nie może się zmieniać, gdyż na jego podstawie agregatory interpretują, które wpisy są nowe.

<?php
foreach ($aNewsy as $iIdNews => $aNews)
    {
    
$oFeed->nowyWpis($iIdNews);
    [...]
?>

Treść kolejnych wpisów

Kontunuując działania w pętli dla każdego wpisu można zdefiniować: tytuł (wpisTytul()), datę (wpisData()), krótkie streszczenie (wpisStreszczenie()), pełną treść (wpisTresc), autora (wpisAutor()), a także adres URL, do którego dany wpis prowadzi na stronie (wpisUrl()).

<?php
$oFeed
->wpisTytul($aNews['tytul']);
$oFeed->wpisData($aNews['data']);
$oFeed->wpisStreszczenie($aNews['streszczenie'], 'xhtml');
$oFeed->wpisTresc($aNews['tresc'], 'xhtml');
$oFeed->wpisAutor('VGT''tomek@vgtworld.pl''http://www.vgtworld.pl');
$oFeed->wpisUrl('http://php.vgtworld.pl/html/news/'.$iIdNews);
?>

Generowanie XML'a

Po zakończeniu pętli tworzącej wpisy, należy wygenerować końcowy plik XML zawierający utworzony kanał RSS. Aby utworzyć kanał zgodny ze standardem Atom w tym samym pliku php, w którym był on tworzony, należy skorzystać z metody: atomGeneruj():

<?php
header
('Content-Type: application/atom+xml; charset=UTF-8');
$oFeed->atomGeneruj();
?>

Można także zapisać go do innego pliku i generować w ten sposób okresowo, aby nie było konieczne odczytywanie danych z bazy przy każdym jego wywołaniu. Wystarczy w parametrze metody atomGeneruj() przekazać, aby zwracała wygenerowany xml, zamiast przesyłać go na standardowe wyjście. Wtedy należy jednak dodatkowo skorzystać z metody kanalUrl(), aby określić, pod jakim adresem internetowym będzie on dostępny (adres taki musi się znaleźć w xml'u kanału aby był on zgodny ze specyfikacją).

<?php
$oFeed
->kanalUrl('http://adres-strony/nazwa-pliku.xml');
if (
$rPlik fopen('./nazwa-pliku.xml''w'))
    {
    
fwrite($rPlik$oFeed->atomGeneruj(true));
    
fclose($rPlik);
    }
?>

Podobne kroki należy wykonać, jeśli tworzony kanał ma być zgodny ze standardem RSS 2.0. kanał wygenerowany bezpośrednio w pliku php:

<?php
header
('Content-Type: application/rss+xml; charset=UTF-8');
$oRss->rssGeneruj();
?>

oraz kanał zapisany do pliku:

<?php
if ($rPlik fopen('./nazwa-pliku.xml''w'))
    {
    
fwrite($rPlik$oRss->rssGeneruj(true));
    
fclose($rPlik);
    }
?>