Ich habe das Modul RSS-Reader auf simplexml umgestellt. Nun läuft der RSS Reader auch mit abgeschaltetem apache allow_url_open.
Die Funktion get_document liest das xml per Get-Request ein.
Als RSS-Feed habe ich Heise.de verwendet. Ihr solltet also Eure Items anpassen.
Sonderzeichen etc werden utf8_decoded
OUTPUT
Code: Alles auswählen
<?php
cInclude("pear", "XML/Parser.php");
cInclude("pear", "XML/RSS.php");
function get_document($url) {
$content = '';
$is_header = TRUE;
$base_url = parse_url($url);
if ($fp = @fsockopen($base_url['host'], 80, $errno, $errstr, 5)) {
if (!empty($base_url['query'])) {
$query = '?'.$base_url['query'];
} else {
$query = '';
}
$data = 'GET '.$base_url['path'].$query." HTTP/1.0\r\n".
'Host: '.$base_url['host']."\r\n".
"Connection: Close\r\n\r\n";
stream_set_timeout($fp, 5);
fputs($fp, $data);
while(!feof($fp)) {
$line = fgets($fp, 4096);
if (!$is_header) {
$content .= $line;
} else {
if (strlen(trim($line)) == 0) {
$is_header = FALSE;
}
}
}
fclose($fp);
return $content;
} else {
return FALSE;
}
}
if ("CMS_VALUE[0]" == "")
{
$sFeed = "http://www.contenido.org/rss/de/news";
} else {
$sFeed = "CMS_VALUE[0]";
}
if ("CMS_VALUE[2]" == "")
{
$FeedMaxItems = 999;
} else {
$FeedMaxItems = intval("CMS_VALUE[2]");
}
$sFeedContent = get_document($sFeed);
$rss_feed = simplexml_load_string($sFeedContent);
$tpl = new Template;
$i = 0;
foreach ($rss_feed->entry as $item)
{
if ($i < $FeedMaxItems) {
$tpl->set("d", "TITLE", htmlentities(utf8_decode($item->title),ENT_QUOTES));
$tpl->set("d", "LINK", htmlentities(utf8_decode($item->id),ENT_QUOTES));
$tpl->set("d", "UPDATED", htmlentities(utf8_decode($item->updated),ENT_QUOTES));
$tpl->set("d", "DESCRIPTION", htmlentities(utf8_decode($item->sumaray),ENT_QUOTES));
$tpl->set("d", "READ_ON", mi18n("weiterlesen"));
$tpl->next();
}
$i++;
}
$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/"."CMS_VALUE[1]");
?>