ich habe mir ein RSS-Modul selber geschrieben, was am Anfang auch wunderbar funktioniert hat.
Nun ist aber ein komischer Fehler aufgetreten: Wenn ich mir den Artikel im Adminbereich im "Editor" angucke, wird der auch als RSS-Datei dargestellt und zeigt die Artikel die er zeigen soll. Gebe ich nun die URL zu dem Artikel direkt im Browser ein um ihn aufzurufen, erscheint einfach nur eine weiße Seite.
Woran liegt das? Warum wird wenn ich es aufrufe nur eine weiße Seite angezeigt?
Das Template zu der Seite beinhaltet nur einen Container mehr nicht.
Input-Modul:
Code: Alles auswählen
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"><tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[0]\">";
if($selected!="0" && $selected!=""){
echo"<option value=\"0\">--- kein ---</option>";
} else {
echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
}
$sql = "
SELECT a.idcat, a.level, c.name
FROM {$cfg['tab']['cat_tree']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat_lang']} AS c
WHERE
a.idcat = b.idcat
AND b.idcat = c.idcat
AND c.idlang='$lang'
AND b.idclient='$client'
AND c.visible = 1
ORDER BY a.idtree
";
$db->query($sql);
while ($db->next_record()) {
$spaces = "|";
$levels = $db->f("level");
for ($i = 0; $i < $levels; $i ++) {
$spaces = $spaces . "--";
}
$spaces .= ">";
if ($selected == $db->f("idcat")) {
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
}
}
echo "</select></td></tr>";
echo "<tr><td>Anzahl Artikel je Seite:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" size=\"3\" /></td>";
echo "<tr><td>Startartikel anzeigen?</td>";
$startartikel = "CMS_VALUE[2]";
if ($startartikel != '') {
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\" checked=\"checked\"/></td>";
} else {
echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\"/></td>";
}
echo "<tr><td>Titel RSS Feed:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"25\" /></td>";
echo "<tr><td>Link RSS Feed:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"25\" /></td>";
echo "<tr><td>Beschreibung RSS Feed</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"30\" /></td>";
echo "<tr><td>Artikel anzeigen bis:</td>";
echo "<td><select name=\"CMS_VAR[6]\">";
$ebene = "CMS_VALUE[6]";
for ($i=0;$i>-3;$i--) {
if ($i == $ebene) {
echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>";
} else {
echo"<option value=\"$i\">Ebene $i</option>";
}
}
echo "</table>";
Code: Alles auswählen
<?php
$categorie = "CMS_VALUE[0]";
$angezeigte_anzahl = "CMS_VALUE[1]";
if ($angezeigte_anzahl == '') $angezeigte_anzahl = 4;
$startartikel = "CMS_VALUE[2]";
if ($startartikel == '') $startartikel = false;
$rss_titel = "CMS_VALUE[3]";
$rss_link = "CMS_VALUE[4]";
$rss_description = "CMS_VALUE[5]";
$ebene = "CMS_VALUE[6]";
$limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);
header ("Cache-Control: private, pre-check=0, post-check=0, max-age=0");
header ("Expires: " . gmdate('D, d M Y H:i:s', time()) . " GMT");
header ("Last-Modified: " . gmdate('D, d M Y H:i:s') . " GMT");
header ("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="ISO-8859-1" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/">
<channel>
<title>'.$rss_titel.'</title>
<link>'.$rss_link.'</link>
<description>'.$rss_description.'</description>
</channel>';
$db = new DB_Contenido;
$db2 = new DB_Contenido;
// wenn startartikel true ist, werden die startartikel dargestellt, sonst nicht
$nurstartartikel = ($startartikel)?(''):('AND d.is_start = 0');
// liest die anzahl betroffener artikel aus der datenbank
switch ($ebene) {
case -2:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.parentid = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
";
$sql_2 = "
SELECT f.name, e.title, e.artsort, c.idcat, d.idart, e.idartlang, e.created, e.summary, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON f.idcat = d.idcat
WHERE
(
(
c.parentid = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
ORDER BY e.created DESC
LIMIT $limit, $angezeigte_anzahl
";
break;
case -1:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
";
$sql_2 = "
SELECT f.name, e.title, e.artsort, c.idcat, d.idart, e.idartlang, e.created, e.summary, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON f.idcat = d.idcat
WHERE
(
(
c.idcat = b.idcat
AND b.parentid = a.idcat
)
OR
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
ORDER BY e.created DESC
LIMIT $limit, $angezeigte_anzahl
";
break;
case 0:
$sql_1 = "
SELECT count(*) AS anzahl
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
";
$sql_2 = "
SELECT f.name, e.title, e.artsort, c.idcat, d.idart, e.idartlang, e.created, e.summary, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM {$cfg['tab']['cat']} AS a,
{$cfg['tab']['cat']} AS b,
{$cfg['tab']['cat']} AS c
LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON f.idcat = d.idcat
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = $categorie
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = $lang
$nurstartartikel
ORDER BY e.created DESC
LIMIT $limit, $angezeigte_anzahl
";
break;
}
$db->query($sql_1);
$db->next_record();
$anzahl_artikel = $db->f("anzahl");
$db->query($sql_2);
while ($db->next_record()) {
$mycontent = array();
$sql = "
SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a
LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
WHERE
a.idartlang = ".$db->f("idartlang")."
AND (
b.type = 'CMS_HTMLHEAD'
OR b.type = 'CMS_HTML'
OR b.type = 'CMS_IMG'
)
ORDER BY b.type, a.typeid DESC
";
// print "$sql";
$db2->query($sql);
for ($i = 0; $db2->next_record(); $i++) {
$mycontent[$db2->f("type")][$db2->f("typeid")]["value"] = strip_tags(urldecode($db2->f("value")));
$mycontent[$db2->f("type")][$db2->f("typeid")]["dirname"] = strip_tags(urldecode($db2->f("dirname")));
$mycontent[$db2->f("type")][$db2->f("typeid")]["filename"] = strip_tags(urldecode($db2->f("filename")));
}
$url = $sess->url("http://www.hiphop-pott.de/index_".$db->f("idcat")."_".$db->f("idart").".html");
$headline = $db->f("title");
$bilddateiname = $db->f("artsort");
$datum = $db->f("erstellungsdatum");
$text = $db->f("summary");
$reviewart = $db->f("name");
$headline = str_replace("&","und",$headline);
$headline = str_replace("#","RAUTE",$headline);
$title = "$datum - $headline ($reviewart)";
$image = "http://www.hiphop-pott.de/images/magazin/reviews/cover/small/".$bilddateiname.".gif";
$kuerzen = 200;
$text = substr_replace($text,"",$kuerzen);
$text = str_replace("&","und",$text);
$text = str_replace("#","RAUTE",$text);
$rdf = "
<item>
<title>" . $title . "</title>
<link>" . $url . "</link>";
// <pubDate>" . $datum . "</pubDate>
$rdf .= "
<about>" . $image . "</about>
<description>" . $text . "</description>";
$rdf .= "
</item>
";
echo $rdf;
}
echo "</rdf:RDF>";
?>
Gruß
Christoph