Also die Feeds sollen aus verschieden Kategorien zusammengestellt werden.
Ist das überhaubt mit dem Modul möglich? Wann ja kann mir da jemand helfen?
Code: Alles auswählen
?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : RSS Feed generator
* Author(s) : Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
************************************************/
#Selected category
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
"." <tr valign=\"top\">
"." <td>".mi18n("Kategorie wählen").":</td>
"." <td>
"." <select name=\"CMS_VAR[0]\" style=\"width:300px;\">
"." <option value=''>---".mi18n("Kein")."---</option>
";
#Fetch all categories
$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";
#Execute query
$db->query($query);
#Loop result and build the options
while ($db->next_record()) {
#Indent spacer
$spaces = "";
#How many levels
$levels = $db->f("level");
$spaces = '';
for ($i = 0; $i <= $levels; $i ++) {
$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>
";
}
}
echo "</select></td></tr>";
#Set default values
if ("CMS_VALUE[1]" == '') {
$rss_sortby = 'created';
} else {
$rss_sortby = "CMS_VALUE[1]";
}
if ("CMS_VALUE[2]" == '') {
$rss_sortorder = 'desc';
} else {
$rss_sortorder = "CMS_VALUE[2]";
}
if ("CMS_VALUE[3]" == '') {
$rss_include_start_article = '';
} else {
$rss_include_start_article = ' checked';
}
$rss_title = "CMS_VALUE[4]";
if ("CMS_VALUE[5]" == '') {
$rss_link = $cfgClient[$client]['path']['htmlpath'];
} else {
$rss_link = "CMS_VALUE[5]";
}
$rss_description = "CMS_VALUE[6]";
if ("CMS_VALUE[7]" == '') {
$rss_language = 'de';
} else {
$rss_language = "CMS_VALUE[7]";
}
$rss_copyright = "CMS_VALUE[8]";
$rss_image_title = "CMS_VALUE[9]";
$rss_image_url = "CMS_VALUE[10]";
$rss_image_link = "CMS_VALUE[11]";
$rss_managingEditor = "CMS_VALUE[12]";
$rss_webMaster = "CMS_VALUE[13]";
$rss_maxCount = "CMS_VALUE[14]";
$rss_ttl = "CMS_VALUE[15]";
$rss_description_length = "CMS_VALUE[16]";
$arrSortBy['created'] = mi18n("Erstellungsdatum");
$arrSortBy['published'] = mi18n("Publizierungsungsdatum");
$arrSortBy['artsort'] = mi18n("Sortier-Reihenfolge");
$arrSortBy['lastmodified'] = mi18n("Änderungsdatum");
$arrSortBy['name'] = mi18n("Alphabetisch");
#Sort by
echo " <tr valign=\"top\">
"." <td>".mi18n("Sortieren nach").":</td>
"." <td><select name=\"CMS_VAR[1]\" style=\"width:300px;\">
";
foreach ($arrSortBy as $key => $value) {
if ($key == $rss_sortby) {
echo "<option value=\"$key\" selected=\"selected\">$value
";
} else {
echo "<option value=\"$key\">$value
";
}
}
echo " </select></td></tr>
";
#Sort order
$arrSortOrder['asc'] = mi18n("aufsteigend");
$arrSortOrder['desc'] = mi18n("absteigend");
echo " <tr valign=\"top\">
"." <td>".mi18n("Sortier-Reihenfolge").":</td>
"." <td><select name=\"CMS_VAR[2]\" style=\"width:300px;\">
";
foreach ($arrSortOrder as $key => $value) {
if ($key == $rss_sortorder) {
echo "<option value=\"$key\" selected=\"selected\">$value
";
} else {
echo "<option value=\"$key\">$value
";
}
}
echo " </select></td></tr>
";
#Include start article?
echo " <tr valign=\"top\">
"." <td>".mi18n("Startartikel einbeziehen").":</td>
"." <td><input type=\"checkbox\" name=\"CMS_VAR[3]\" value=\"yes\"$rss_include_start_article></td></tr>
";
#Title
echo " <tr valign=\"top\">
"." <td>".mi18n("Titel").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[4]\" value=\"".$rss_title."\">
"." </td>
"." </tr>
";
#Link
echo " <tr valign=\"top\">
"." <td>".mi18n("Link").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[5]\" value=\"".$rss_link."\">
"." </td>
"." </tr>
";
#Description
echo " <tr valign=\"top\">
"." <td>".mi18n("Beschreibung").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[6]\" value=\"".$rss_description."\">
"." </td>
"." </tr>
";
#Language
$arrLanguages['de'] = mi18n("deutsch");
$arrLanguages['en'] = mi18n("englisch");
$arrLanguages['fr'] = mi18n("französisch");
$arrLanguages['it'] = mi18n("italienisch");
$arrLanguages['es'] = mi18n("spanisch");
$arrLanguages['nl'] = mi18n("niederländisch");
$arrLanguages['el'] = mi18n("griechisch");
$arrLanguages['pt'] = mi18n("portugiesisch");
echo " <tr valign=\"top\">
"." <td>".mi18n("Sprache").":</td>
"." <td><select name=\"CMS_VAR[7]\" style=\"width:300px;\">
";
foreach ($arrLanguages as $key => $value) {
if ($key == $rss_language) {
echo "<option value=\"$key\" selected=\"selected\">$value
";
} else {
echo "<option value=\"$key\">$value
";
}
}
echo " </select></td></tr>
";
#Copyright
echo " <tr valign=\"top\">
"." <td>".mi18n("Copyright").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[8]\" value=\"".$rss_copyright."\">
"." </td>
"." </tr>
";
#Image title
echo " <tr valign=\"top\">
"." <td>".mi18n("Bildtitel").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[9]\" value=\"".$rss_image_title."\">
"." </td>
"." </tr>
";
#Image
$sql = "SELECT * FROM ".$cfg['tab']['upl']." WHERE (filetype='jpg') OR (filetype='jpeg') OR (filetype='gif') OR (filetype='png') ORDER BY dirname,filename";
$db->query($sql);
echo '<tr><td>'.mi18n("Bild").':</td><td><select name="CMS_VAR[10]" size="1" style="width:300px;">';
$selected = false;
$img_display = '';
while ($db->next_record()) {
$path = $db->f("dirname").$db->f("filename");
if ($db->f("idupl") == $rss_image_url) {
echo '<option selected="selected" value="'.$db->f("idupl").'">'.$path.'</option>';
$img_display = $path;
$selected = true;
} else {
echo '<option value="'.$db->f("idupl").'">'.$path.'</option>';
}
}
if ($selected) {
echo '<option value="">'.mi18n("Nichts ausgewählt.").'</option>';
} else {
echo '<option selected="selected" value="">'.mi18n("Nichts ausgewählt.").'</option>';
}
echo "</select></td></tr>
";
#Image link
echo " <tr valign=\"top\">
"." <td>".mi18n("Link (bei Klick auf das Bild)").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[11]\" value=\"".$rss_image_link."\">
"." </td>
"." </tr>
";
#Editor
echo " <tr valign=\"top\">
"." <td>".mi18n("EMail-Adresse Herausgeber").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[12]\" value=\"".$rss_managingEditor."\">
"." </td>
"." </tr>
";
#EMail Webmaster
echo " <tr valign=\"top\">
"." <td>".mi18n("EMail-Adresse Webmaster").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[13]\" value=\"".$rss_webMaster."\">
"." </td>
"." </tr>
";
#Max. number of articles
echo " <tr valign=\"top\">
"." <td>".mi18n("maximale Anzahl Artikel").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[14]\" value=\"".$rss_maxCount."\">
"." </td>
"." </tr>
";
#TTL
echo " <tr valign=\"top\">
"." <td>".mi18n("TTL (Minuten)").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[15]\" value=\"".$rss_ttl."\">
"." </td>
"." </tr>
";
#Description length
echo " <tr valign=\"top\">
"." <td>".mi18n("max. Länge der Beschreibung").":</td>
"." <td><input type=\"text\" maxlength=\"200\" style=\"width:300px;\" name=\"CMS_VAR[16]\" value=\"".$rss_description_length."\">
"." </td>
"." </tr>
";
echo "</table>
";
?><?php
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUPUT
*
* Modulname : RSS Feed generator
* Author(s) : Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
************************************************/
#Includes
cInclude('classes', 'class.article.php');
#Get settings
$rss_cat = "CMS_VALUE[0]";
$rss_sortby = "CMS_VALUE[1]";
$rss_sortorder = "CMS_VALUE[2]";
$rss_include_start_article = "CMS_VALUE[3]";
$rss_title = "CMS_VALUE[4]";
$rss_link = "CMS_VALUE[5]";
$rss_description = "CMS_VALUE[6]";
$rss_language = "CMS_VALUE[7]";
$rss_copyright = "CMS_VALUE[8]";
$rss_image_title = "CMS_VALUE[9]";
$rss_image_url = "CMS_VALUE[10]";
$rss_image_link = "CMS_VALUE[11]";
$rss_managingEditor = "CMS_VALUE[12]";
$rss_webMaster = "CMS_VALUE[13]";
$rss_maxCount = "CMS_VALUE[14]";
$rss_ttl = "CMS_VALUE[15]";
$rss_description_length = "CMS_VALUE[16]";
#Check settings
if ($rss_maxCount == '') {
$rss_maxCount = 999;
}
if ($rss_description_length=='') {
$rss_description_length = 200;
}
#Get feed image
if ($rss_image_link != '') {
if (substr(strtolower($rss_image_link), 0, 7) != 'http://') {
$rss_image_link = 'http://'.$rss_image_link;
}
}
if ($rss_image_url != '') {
$sql = "SELECT * FROM ".$cfg['tab']['upl']." WHERE idupl = ".$rss_image_url;
$db->query($sql);
if ($db->next_record()) {
$rss_image_url = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upl']['frontendpath'].$db->f("dirname").$db->f("filename");
$rss_image_fs = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upl']['frontendpath'].$db->f("dirname").$db->f("filename");
}
}
#Output feed header
header("Content-type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
";
echo "<rss version=\"2.0\">
";
echo "<channel>
";
echo "<title>".prepareStringForOutput($rss_title)."</title>
";
echo "<copyright>".prepareStringForOutput($rss_copyright)."</copyright>
";
echo "<link>".prepareStringForOutput($rss_link)."</link>
";
echo "<description>".prepareStringForOutput($rss_description)."</description>
";
echo "<language>".prepareStringForOutput($rss_language)."</language>
";
echo "<lastBuildDate>".date('D, d M Y H:i:s T')."</lastBuildDate>
";
echo "<pubDate>".date('D, d M Y H:i:s T')."</pubDate>
";
echo "<generator>Contenido CMS</generator>
";
echo "<managingEditor>".$rss_managingEditor."</managingEditor>
";
echo "<webMaster>".$rss_webMaster."</webMaster>
";
echo "<ttl>".$rss_ttl."</ttl>
";
echo "<image>
";
echo "<title>".prepareStringForOutput($rss_image_title)."</title>
";
list ($width, $height, $type, $attr) = getimagesize($rss_image_fs);
echo "<width>".$width."</width>
";
echo "<height>".$height."</height>
";
echo "<url>".prepareStringForOutput($rss_image_url)."</url>
";
echo "<link>".prepareStringForOutput($rss_image_link)."</link>
";
echo "</image>
";
#Output articles
if ($rss_cat != '') {
if ($rss_include_start_article != '') {
$b_include_start_article = true;
} else {
$b_include_start_article = false;
}
$options = array ('idcat' => $rss_cat, "start" => $b_include_start_article, "order" => $rss_sortby, "direction" => $rss_sortorder);
$list = new ArticleCollection($options);
$count = $list->count;
if ($count > 0) {
$aArticleList = array ();
$aArticleList = $list->articles;
$aTmpArticleList = array ();
$index = 1;
foreach ($aArticleList as $value) {
if ($index <= $rss_maxCount) {
$tmp_article = new Article($value, $client, $lang);
$headline = '';
$i = 1;
while (($i<20) && (is_empty($headline))) {
$headline = strip_tags($tmp_article->getContent('CMS_HTMLHEAD', $i));
$i++;
}
$i = 1;
while (($i<20) && (is_empty($headline))) {
$headline = strip_tags($tmp_article->getContent('CMS_TEXT', $i));
$i++;
}
$description = '';
$i = 1;
while (($i<20) && (is_empty($description))) {
$description = strip_tags($tmp_article->getContent('CMS_HTML', $i));
$i++;
}
$description = capiStrTrimAfterWord($description, $rss_description_length);
$pub_date = $tmp_article->getField("created");
$pub_date = strtotime($pub_date);
$pub_date = date('r', $pub_date);
if ($headline != '') {
$headline = prepareStringForOutput($headline);
$link = str_replace('&','&',$cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=$rss_cat&idart=$value&client=$client&lang=$lang");
echo "<item>
";
echo "<title>".prepareStringForOutput($headline)."</title>
";
echo "<description>".prepareStringForOutput($description)."</description>
";
echo "<link>".$link."</link>
";
echo "<pubDate>".$pub_date."</pubDate>
";
$t1 = $cfg["tab"]["art_lang"];
$t2 = $cfg["tab"]["phplib_auth_user_md5"];
$sql = "SELECT ".$t2.".realname FROM ".$t1." INNER JOIN ".$t2." ON ".$t1.".author = ".$t2.".username WHERE (".$t1.".idart=$value) AND (".$t1.".idlang=$lang)";
$db->query($sql);
if ($db->next_record()) {
$author = prepareStringForOutput($db->f("realname"));
} else {
$author = '';
}
echo "<author>".$author."</author>
";
echo "</item>
";
}
}
$index ++;
}
}
}
echo "</channel>
";
echo "</rss>
";
function is_empty($in_str) {
$tmp = trim($in_str);
$tmp = strip_tags($tmp);
$tmp = str_replace(chr(13).chr(10), '', $tmp);
$tmp = str_replace(' ', '', $tmp);
if ($tmp == '') {
return true;
} else {
return false;
}
}
function prepareStringForOutput($sIn) {
$sIn = str_replace(' ',' ',$sIn);
$sIn = str_replace(' ',' ',$sIn);
$sIn = str_replace(chr(13).chr(10),' ',$sIn);
return htmlspecialchars($sIn, ENT_QUOTES);
return htmlnumericalentities(html_entity_decode($sIn));
return str_replace('&','&',htmlnumericalentities($sIn));
$sIn = html_entity_decode($sIn);
}
function htmlnumericalentities($str) {
return preg_replace('/[^!-%\x27-;=?-~ ]/e', '"&#".ord("$0").chr(59)', $str);
}
?>