Hier mal eine kleine Klasse für die RSS selber macher.
<?php
class Rss {
private $_items;
private $_image;
private $_title;
private $_link;
private $_desc;
private $_lang;
private $_copy;
private $_date;
public function __construct($title,$link,$desc,$lang,$copy,$date){
$this->_items=(array)null;
$this->_image=(object)null;
$this->_title=$title;
$this->_link=$link;
$this->_desc=$desc;
$this->_lang=$lang;
$this->_copy=$copy;
$this->_date=$date;
}
public function setImage($url,$title,$link){
$this->_image->url=$url;
$this->_image->title=$title;
$this->_image->link=$link;
}
public function addItem($title,$desc,$link,$author,$guid,$date){
$tmp=(object)null;
$tmp->title=$title;
$tmp->desc=$desc;
$tmp->link=$link;
$tmp->author=$author;
$tmp->guid=$guid;
$tmp->date=$date;
$this->_items[]=$tmp;
}
public function get(){
$xml =\'<?xml version="1.0" encoding="utf-8"?\'.\'>\';
$xml.=\'<rss version="2.0">\';
$xml.=\'<channel>\';
// Header
if(!empty($this->_title))$xml.=\'<title>\'.$this->_title.\'</title>\';
if(!empty($this->_link))$xml.=\'<link>\'.$this->_link.\'\';
if(!empty($this->_desc))$xml.=\'<description>\'.$this->_desc.\'</description>\';
if(!empty($this->_lang))$xml.=\'<language>\'.$this->_lang.\'</language>\';
if(!empty($this->_copy))$xml.=\'<copyright>\'.$this->_copy.\'</copyright>\';
if(!empty($this->_date))$xml.=\'<pubDate>\'.$this->_date.\'</pubDate>\';
// Image
if(isset($this->_image->url)&&!empty($this->_image->url)){
$xml.=\'<image>\';
$xml.=\'<url>\'.$this->_image->url.\'</url>\';
if(!empty($this->_image->title))$xml.=\'<title>\'.$this->_image->title.\'</title>\';
if(!empty($this->_image->link))$xml.=\'<link>\'.$this->_image->link.\'\';
$xml.=\'</image>\';
}
// Items
foreach($this->_items as $item){
$xml.=\'<item>\';
if(!empty($item->title))$xml.=\'<title>\'.$item->title.\'</title>\';
if(!empty($item->desc))$xml.=\'<description>\'.$item->desc.\'</description>\';
if(!empty($item->link))$xml.=\'<link>\'.$item->link.\'\';
if(!empty($item->author))$xml.=\'<author>\'.$item->author.\'</author>\';
if(!empty($item->guid))$xml.=\'<guid>\'.$item->guid.\'</guid>\';
if(!empty($item->date))$xml.=\'<pubDate>\'.$item->date.\'</pubDate>\';
$xml.=\'</item>\';
}
$xml.=\'</channel>\';
$xml.=\'</rss>\';
return $xml;
}
}
?>
Und so gehts, zuerst mal das Objekt erzeugen:
<?php
$myRss = new Rss(\'Title des Feeds\',\'http://example.com/rss.xml\',\'Feed Beschreibung\',\'de-DE\',\'Copyright by FooBar\',\'Erstellungsdatum\');
?>
Dann die einzelnen News einfügen:
<?php
$myRss->addItem(\'Titel\',\'Beschreibung\',\'Link zur Seite\',\'Author\',\'globale ID\',\'Erstellungsdatum der Seite\');
?>
Optional noch ein Bild für den Channel festlegen:
<?php
$myRss->setImage(\'http://example.de/bild.jpg\',\'Name des Feeds\',\'Link zum Feed\');
?>
Und zum Schluß das ganze ausgeben:
<?php
echo $myRss->get();
?>
Das ist nur ein Beispiel wie man so einen Rss Feed mit OOP realisieren kann. Die Klasse kann man natürlich noch ausbauen und optimieren. Zum Beispiel könnte man die Eingaben validieren bevor sie hinzugefügt werden.
Schöne Grüße
Thomas
Beitrag erstellen
EinloggenKostenlos registrieren