$tagName>";
else
return "<$tagName>$content$tagName>";
}
}
class RssChannel
{
private $title;
private $link;
private $description;
//
private $items;
public function __construct($title, $link, $description)
{
$this->items = array();
$this->SetTitle($title);
$this->SetLink($link);
$this->SetDescription($description);
}
public function SetTitle($value)
{ $this->title = $value; }
public function GetTitle()
{ return $this->title; }
public function SetLink($value)
{ $this->link = $value; }
public function GetLink()
{ return $this->link; }
public function SetDescription($value)
{ $this->description = $value; }
public function GetDescription()
{ return $this->description; }
public function GetItems()
{
return $this->items;
}
public function AddItem(RssItem $rssItem)
{
$this->items[] = $rssItem;
}
private function GenerateItemRss(RssItem $rssItem)
{
$result = '';
AddStr($result, '- ');
AddStr($result, RssUtils::CreateTag('title', StringUtils::EscapeXmlString($rssItem->GetTitle())));
AddStr($result, RssUtils::CreateTag('link', StringUtils::EscapeXmlString($rssItem->GetLink())));
AddStr($result, RssUtils::CreateTag('description', $rssItem->GetDescription(), true));
if ($rssItem->GetPublicationDate() != null)
AddStr($result,
RssUtils::CreateTag(
'pubDate',
StringUtils::EscapeXmlString($rssItem->GetPublicationDate()->ToRfc822String())
)
);
AddStr($result, '
');
return $result;
}
public function GenerateRss()
{
$result = '';
AddStr($result, '');
AddStr($result, '');
AddStr($result, RssUtils::CreateTag('title', StringUtils::EscapeXmlString($this->GetTitle())));
AddStr($result, RssUtils::CreateTag('link', StringUtils::EscapeXmlString($this->GetLink())));
AddStr($result, RssUtils::CreateTag('description', $this->GetDescription()));
foreach($this->GetItems() as $item)
AddStr($result, $this->GenerateItemRss($item));
AddStr($result, '');
AddStr($result, '');
return $result;
}
}
class RssItem
{
private $title;
private $link;
private $description;
public function __construct($title, $link, $description)
{
$this->SetTitle($title);
$this->SetLink($link);
$this->SetDescription($description);
$this->SetPublicationDate(null);
}
public function SetTitle($value)
{ $this->title = $value; }
public function GetTitle()
{ return $this->title; }
public function SetLink($value)
{ $this->link = $value; }
public function GetLink()
{ return $this->link; }
public function SetDescription($value)
{ $this->description = $value; }
public function GetDescription()
{ return $this->description; }
public function SetPublicationDate(SMDateTime $value = null)
{ $this->publicationDate = $value; }
public function GetPublicationDate()
{ return $this->publicationDate; }
}
?>