RSS Feed Creator für 4.6.15 gesucht / Problem Modul von x28
Verfasst: Do 8. Mär 2007, 13:32
Hallo Community!
Ich habe derzeit den RSS Feed Creator von X28, der eigentlich auch fast perfekt funktioniert. Nur leider wird die Description nicht ausgegeben, bzw. <description></description> ist leer. Bei mir läuft Contenido 4.6.14 mit ModRewrite.
Hier einmal der Modul-Source:
Input:
Output:
Danke und schöne Grüße,
Tim
Ich habe derzeit den RSS Feed Creator von X28, der eigentlich auch fast perfekt funktioniert. Nur leider wird die Description nicht ausgegeben, bzw. <description></description> ist leer. Bei mir läuft Contenido 4.6.14 mit ModRewrite.
Hier einmal der Modul-Source:
Input:
Code: Alles auswählen
/**
* RSS-Ausgabe als XML
*
* INPUT
*
* Author Frank Hoffmann
* Copyright www.x28.de
*/
// selected category
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\" class=\"text_medium\">
<tr valign=\"top\">
<td>Kategorie:</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>";
}
// hole Online Kategorien
$query = "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($query);
// loop result and build the options
while ($db->next_record()) {
// indent spacer
$spaces = "|";
// how many levels
$levels = $db->f("level");
for ($i = 0; $i < $levels; $i ++) {
// add 2 spaces for every level
$spaces = $spaces . "--";
} // end for
$spaces .= ">";
if ($selected == $db->f("idcat")) {
// selected category
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
// category
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} // end if
} // end while
echo " </select>";
echo " </td>
</tr>
<tr>
<td>Titel RSS Feed:</td>
<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
</tr>
<tr>
<td>Homepage RSS Feed (mit / abschliessen):</td>
<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\"></td>
</tr>
<tr>
<td>Beschreibung RSS Feed:</td>
<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>
</tr>
<tr>
<td>Copyright RSS Feed:</td>
<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"></td>
</tr>
<tr>
<td>URL Bild RSS Feed:</td>
<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\"></td>
</tr>
<tr>
<td>Titel Bild RSS Feed:</td>
<td><input type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\"></td>
</tr>
<tr>
<td>Link Bild RSS Feed:</td>
<td><input type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\"></td>
</tr>
</table>";
Code: Alles auswählen
<?php
/**
* RSS-Ausgabe als XML
*
* OUTPUT
*
* Author Frank Hoffmann
* Copyright www.x28.de
* Anyone can use it. It is OpenSource. Please report any good changes to info@x28.de
*/
// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){
$rss_titel = "CMS_VALUE[1]";
$rss_link = "CMS_VALUE[2]";
$rss_description = "CMS_VALUE[3]";
$rss_copyright = "CMS_VALUE[4]";
$rss_image_url = "CMS_VALUE[5]";
$rss_image_title = "CMS_VALUE[6]";
$rss_image_link = "CMS_VALUE[7]";
// Header ausgeben
header("Content-type: text/xml");
print '<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>'.$rss_titel.'</title>
<link>'.$rss_link.'</link>
<description>'.$rss_description.'</description>
<language>de-de</language>
<copyright>'.$rss_copyright.'</copyright>
<image>
<url>'.$rss_image_url.'</url>
<title>'.$rss_image_title.'</title>
<link>'.$rss_image_link.'</link>
</image>';
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY ARTLANG.artsort";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idartlang");
$linkID[] = $db->f("idart");
} // end while
// loop through subarticles
if (is_array($articleID)) {
foreach ($articleID as $key => $value) {
// select headline
$sql = "SELECT value FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
$db->query($sql);
$db->next_record();
$head = urldecode($db->f("value"));
// select subheadline
$sql = "SELECT value FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '2'";
$db->query($sql);
$db->next_record();
$description = urldecode($db->f("value"));
// link
$link = $rss_link."front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s";
print "<item>\n";
print "<title>\n".htmlspecialchars($head)."\n</title>\n";
print "<description>\n".htmlspecialchars($description)."\n</description>\n";
print "<link>\n".htmlspecialchars($link)."\n</link>\n";
print "</item>\n";
} // end foreach
unset($head);
unset($description);
} // end if (is_array)
print '</channel></rss>';
} // end if (if($selcat!="0" && $selcat!="")
?>
Tim