RSS Feed Generator
Re: RSS Feed Generator
Hallo,
kann es sein, dass der Generator mit der 4.8.12 nicht läuft? Folgende Ausgabe bekomme ich über wget
<?xml version="1.0" encoding="iso-8859-1" ?>\n<rss version="2.0">\n <channel>\n <title>Testfeed</title>\n <copyright>? 2009 </copyright>\n <link>http://127.0.0.1/contenido/cms/test/fro ... 3</link>\n <description>test</description>\n <language>de</language>\n <lastBuildDate>Fri, 30 Oct 2009 23:28:21 CET</lastBuildDate>\n <pubDate>Fri, 30 Oct 2009 23:28:21 CET</pubDate>\n <generator>Contenido CMS</generator>\n <managingEditor></managingEditor>\n <webMaster></webMaster>\n <ttl></ttl>\n </channel>\n</rss>\n
Hier wird also was ausgegeben. Leider nicht der Inhalt der Kategorie News die ich im Generator konfiguriert habe. Wichtig ist auch noch zu erwähnen, dass ich das Ganze in einem zweiten Mandanten teste, also nicht im Haupt/Standardmandanten. Kann es vielleicht sein, dass die idcat im Modul nicht richtig gezogen wird?
kann es sein, dass der Generator mit der 4.8.12 nicht läuft? Folgende Ausgabe bekomme ich über wget
<?xml version="1.0" encoding="iso-8859-1" ?>\n<rss version="2.0">\n <channel>\n <title>Testfeed</title>\n <copyright>? 2009 </copyright>\n <link>http://127.0.0.1/contenido/cms/test/fro ... 3</link>\n <description>test</description>\n <language>de</language>\n <lastBuildDate>Fri, 30 Oct 2009 23:28:21 CET</lastBuildDate>\n <pubDate>Fri, 30 Oct 2009 23:28:21 CET</pubDate>\n <generator>Contenido CMS</generator>\n <managingEditor></managingEditor>\n <webMaster></webMaster>\n <ttl></ttl>\n </channel>\n</rss>\n
Hier wird also was ausgegeben. Leider nicht der Inhalt der Kategorie News die ich im Generator konfiguriert habe. Wichtig ist auch noch zu erwähnen, dass ich das Ganze in einem zweiten Mandanten teste, also nicht im Haupt/Standardmandanten. Kann es vielleicht sein, dass die idcat im Modul nicht richtig gezogen wird?
Re: RSS Feed Generator
Hallo Mario_m,
das Modul läuft in die 4.8.12 einwandfrei.
Es ist vieleicht eine überflüssige Frage, aber: hast du alle Angaben in der Konfiguration gemacht?
Ich sehe in der (schlecht dargestellten) Ausgabe von dir viele leere Felder (managingEditor, webMaster, ttl).
Gibt es eine Möglichkeit für mich mir das mal an zu sehen?
Gruß
René
das Modul läuft in die 4.8.12 einwandfrei.
Es ist vieleicht eine überflüssige Frage, aber: hast du alle Angaben in der Konfiguration gemacht?
Ich sehe in der (schlecht dargestellten) Ausgabe von dir viele leere Felder (managingEditor, webMaster, ttl).
Gibt es eine Möglichkeit für mich mir das mal an zu sehen?
Gruß
René
Re: RSS Feed Generator
Hallo,
die Felder in der Konfig habe ich gefüllt, leider keine Änderung.
Ansehen geht leider nicht, das Ganze läuft bei mir lokal und online stellen kann ich es derzeit nicht. Irgendwie scheint ja das Einlesen der Kategorie nicht zu funktionieren. Das ja garnichts angzeigt wird. Gibt es noch irgendeine Einstellung (Kategorie im Artikel, bestimmte Konfig des Artikels, etc,) die noch eine Rolle spielen könnte?
die Felder in der Konfig habe ich gefüllt, leider keine Änderung.
Code: Alles auswählen
<?xml version="1.0" encoding="iso-8859-1" ?>\n<rss version="2.0">\n
<channel>\n
<title>Testfeed</title>\n
<copyright>? 2009 teset</copyright>\n
<link>http://127.0.0.1/contenido/cms/test/front_content.php?idcat=51&idart=52&lang=3</link>\n
<description>test</description>\n
<language>de</language>\n
<lastBuildDate>Sat, 31 Oct 2009 17:53:11 CET</lastBuildDate>\n
<pubDate>Sat, 31 Oct 2009 17:53:11 CET</pubDate>\n
<generator>Contenido CMS</generator>\n
<managingEditor>max@moritz.de</managingEditor>\n
<webMaster>max@moritz.de</webMaster>\n
<ttl>1</ttl>\n
</channel>\n
</rss>\n
Zuletzt geändert von Oldperl am Di 3. Nov 2009, 10:26, insgesamt 1-mal geändert.
Grund: Moderation: Quelltext in code-Tags gesetzt.
Grund: Moderation: Quelltext in code-Tags gesetzt.
Re: RSS Feed Generator
Hi,
ich hatte in meinem Text folgendes Zeichen:
Ich konnte das nicht beheben. Generell validiert der Feed aber auch nciht: http://validator.w3.org/feed/check.cgi
Grüße
Jan
ich hatte in meinem Text folgendes Zeichen:
Dieses wurde ansch. in ein HTML Char konvertiert, was den RSS Feed invalid werden ließ.„
Ich konnte das nicht beheben. Generell validiert der Feed aber auch nciht: http://validator.w3.org/feed/check.cgi
Grüße
Jan
Re: RSS Feed Generator
Danke für den hinweis, ich schaue mir das nächste Woche mal an.
Gruß
René
Gruß
René
Re: RSS Feed Generator
Hi,
ist es möglich, dass das Modul auch Artikel aus Unterkategorien mit ausgibt?
Im Moment geht es nur für eine Kategorie, ich würde aber gerne den RSS Feed einer ganzen Domain abbilden.
Viele Grüße
Jan
ist es möglich, dass das Modul auch Artikel aus Unterkategorien mit ausgibt?
Im Moment geht es nur für eine Kategorie, ich würde aber gerne den RSS Feed einer ganzen Domain abbilden.
Viele Grüße
Jan
Re: RSS Feed Generator
Hmmm, die Ausgabe für eine gesamte Domain halte ich zwar für unsinnig, aber du wirst sicherlich deine Gründe haben.
Ich werde mal sehen was sich machen lässt, vieleicht mit einem Häkchen "Unterkategorien einbeziehen".
Gruß
René
Ich werde mal sehen was sich machen lässt, vieleicht mit einem Häkchen "Unterkategorien einbeziehen".
Gruß
René
Re: RSS Feed Generator
Das wäre toll!
Bei einem Weblog habe ich doch z.B. auch einen Feed über alle Kategorien. Eig doch bei jeder News-Site, z.B. Spiegel oder so. Es geht ja um die letzten 30 Artikel oder so ...
VG
Jan
Bei einem Weblog habe ich doch z.B. auch einen Feed über alle Kategorien. Eig doch bei jeder News-Site, z.B. Spiegel oder so. Es geht ja um die letzten 30 Artikel oder so ...
VG
Jan
Re: RSS Feed Generator
Die neue Version ist fertig!
Diese behebt ein Problem mit "ungültige" Zeichen in der Beschreibung (<description>) durch Verpacken des Inhalts in CDATA.
Zusätzlich wurde der von Jan geäußerte Wunsch nach einer Inkludierung von Unterkategorien umgesetzt.
Gruß
René
Diese behebt ein Problem mit "ungültige" Zeichen in der Beschreibung (<description>) durch Verpacken des Inhalts in CDATA.
Zusätzlich wurde der von Jan geäußerte Wunsch nach einer Inkludierung von Unterkategorien umgesetzt.
Gruß
René
Re: RSS Feed Generator
Sauber!
Ich habe noch 2 Fehler gefunden:
Da sollte "published" rein.
Wenn ein Titel das Zeichen "&" enthält, wird der Feed invalide. Ich habe das erstmal in der prepareString Funktion ersetzt, da müßte aber eine generelle Lösung für solche Zeiche her, denke ich.
Der Validator sagt:
Viele Grüße
Jan
Ich habe noch 2 Fehler gefunden:
Code: Alles auswählen
$pub_date = $tmp_article->getField("created");
Wenn ein Titel das Zeichen "&" enthält, wird der Feed invalide. Ich habe das erstmal in der prepareString Funktion ersetzt, da müßte aber eine generelle Lösung für solche Zeiche her, denke ich.
Der Validator sagt:
Code: Alles auswählen
XML parsing error: <unknown>:101:60: not well-formed (invalid token) [help]
<title>Gesundheitsreform: Versicherungspflicht & Einheitsbeitrag ...
Jan
Re: RSS Feed Generator
Die neue Version funktioniert bei mir utner 4.8.12. Mit einer Einschränkung.
Das Einbeziehen der Unterkategorien führt bei mir dazu, dass der Link auf die Artikel mit der idcat der konfigurierten Hauptkategorie verknüpft ist (ohne AMR). Kann das jemand bestätigen?
Das Einbeziehen der Unterkategorien führt bei mir dazu, dass der Link auf die Artikel mit der idcat der konfigurierten Hauptkategorie verknüpft ist (ohne AMR). Kann das jemand bestätigen?
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: RSS Feed Generator
@Marioa_m
Als Hinweis: mit AMR bei einer 4.8.12 funktioniert es.
Das mit dem & macht bei mir auch keine Probleme zumindest nicht in der Description. Im titel wird tatsächlich ein Fehler erzeugt (somit kann der IE7 das Feed nicht verarbeiten).
MfG
Als Hinweis: mit AMR bei einer 4.8.12 funktioniert es.
Das mit dem & macht bei mir auch keine Probleme zumindest nicht in der Description. Im titel wird tatsächlich ein Fehler erzeugt (somit kann der IE7 das Feed nicht verarbeiten).
MfG
Re: RSS Feed Generator
Danke an alle für das Feedback, die Fehler/Probleme wrden z.Z. korrigiert/behoben.
Gruß
René
Gruß
René
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: RSS Feed Generator
Hallo,
ich habe mich auch mal rangesetzt und das Modul überarbeitet. Der Validator meckert jetzt nicht mehr:
Was habe ich geändert:
Output
ich habe mich auch mal rangesetzt und das Modul überarbeitet. Der Validator meckert jetzt nicht mehr:
Was habe ich geändert:
- Im Titel der Items habe ich ein CDATA rumgemacht - somit klappt es auch im IE
- Ich habe mal Bildtitel und Link für Bild auskommentiert, weil der Validator sagt Link und Link auf das Bild, sowie Seitentitel und Titel vom Bild müssen identisch sein
- managingEditor und webMaster brauchen zur Email auch noch einen Namen, dass kann man im Input angeben
- Ich habe das PubDate und LastBuildDate geändert in das Format Tue, 12 Jan 2010 14:44:29 +0100
- Der Autor vom Item muss ebenfalls eine Email haben, dass kann man jetzt im Input angeben (eine Art Allgemeine Email für alle Redakteure, z.B. geht an die Redaktion. Man will ja nicht immer seine Email veröffentlichen und könnte somit auch ne pseude-Email angeben)
- Zusätzlich habe ich nch ein guid-Element in das item mit reingenommen (Beispiel: <guid isPermaLink="true">Link zum Artikel</guid)
- Ich habe auch noch den Head angepasst mit einigen Daten (also was im <rss version="2.0" etc. folgt
- und ich habe noch <atom:link href="DER LINK ZUM AKTUELLEN RSS" rel="self" type="application/rss+xml" /> reingenommen, weil es der Validitor sagte
Code: Alles auswählen
#Selected category
$selected = "CMS_VALUE[0]";
#Set default values
if ("CMS_VALUE[17]" == '') {
$rss_include_sub_categories = '';
} else {
$rss_include_sub_categories = ' checked="checked"';
}
if ("CMS_VALUE[1]" == '') {
$rss_sortby = 'lastmodified';
} 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="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_managingEditorName = "CMS_VALUE[121]";
$rss_webMaster = "CMS_VALUE[13]";
$rss_webMasterName = "CMS_VALUE[131]";
$rss_maxCount = "CMS_VALUE[14]";
$rss_ttl = "CMS_VALUE[15]";
$rss_description_length = "CMS_VALUE[16]";
$rss_authorRedaktionEmail = "CMS_VALUE[171]";
?>
<table cellspacing="0" cellpadding="10" border="0">
<tr valign="top">
<td>Kategorie wählen:</td>
<td>
<select name="<?="CMS_VAR[0]"?>" style="width: 300px;">
<option value="">---Keine---</option>
<option value="0"<?=(("CMS_VALUE[0]" == "0") ? 'selected="selected"' : '')?>>---Alle---</option>
<?php
$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);
while ($db->next_record()) {
#Indent spacer
#How many levels
$levels = $db->f("level");
$spaces = '';
for ($i = 0; $i <= $levels; $i ++) {
$spaces .= "|->";
}
if ($selected == $db->f("idcat")) {
#Selected category
?>
<option selected="selected" value="<?=$db->f("idcat")?>"><?=$spaces . $db->f("name")?></option>
<?php
} else {
#Category
?>
<option value="<?=$db->f("idcat")?>"><?=$spaces . $db->f("name")?></option>
<?php
}
}
?>
</select>
</td>
</tr>
<tr valign="top">
<td>Unterkategorien einbeziehen:</td>
<td><input type="checkbox" name="<?="CMS_VAR[17]"?>" value="1"<?=$rss_include_sub_categories?> /></td>
</tr>
<?php
$arrSortBy['created'] = "Erstellungsdatum";
$arrSortBy['published'] = "Publizierungsungsdatum";
$arrSortBy['artsort'] = "Sortier-Reihenfolge";
$arrSortBy['lastmodified'] = "Änderungsdatum";
$arrSortBy['name'] = "Alphabetisch";
?>
<tr valign="top">
<td>Sortieren nach:</td>
<td>
<select name="<?="CMS_VAR[1]"?>" style="width: 300px;">
<?php
foreach ($arrSortBy as $key => $value) {
if ($key == $rss_sortby) {
?>
<option value="<?=$key?>" selected="selected"><?=$value?></option>
<?php
} else {
?>
<option value="<?=$key?>"><?=$value?></option>
<?php
}
}
?>
</select>
</td>
</tr>
<?php
$arrSortOrder['asc'] = "aufsteigend";
$arrSortOrder['desc'] = "absteigend";
?>
<tr valign="top">
<td>Sortier-Reihenfolge:</td>
<td>
<select name="<?="CMS_VAR[2]"?>" style="width: 300px;">
<?php
foreach ($arrSortOrder as $key => $value) {
if ($key == $rss_sortorder) {
?>
<option value="<?=$key?>" selected="selected"><?=$value?></option>
<?php
} else {
?>
<option value="<?=$key?>"><?=$value?></option>
<?php
}
}
?>
</select>
</td>
</tr>
<tr valign="top">
<td>Startartikel einbeziehen:</td>
<td><input type="checkbox" name="<?="CMS_VAR[3]"?>" value="1"<?=$rss_include_start_article?> /></td>
</tr>
<tr valign="top">
<td>Titel:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[4]"?>" value="<?=$rss_title?>" /></td>
</tr>
<tr valign="top">
<td>Link:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[5]"?>" value="<?=$rss_link?>" /></td>
</tr>
<tr valign="top">
<td>Beschreibung:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[6]"?>" value="<?=$rss_description?>" /></td>
</tr>
<?php
$arrLanguages['de'] = "deutsch";
$arrLanguages['en'] = "englisch";
$arrLanguages['fr'] = "französisch";
$arrLanguages['it'] = "italienisch";
$arrLanguages['es'] = "spanisch";
$arrLanguages['nl'] = "niederländisch";
$arrLanguages['el'] = "griechisch";
$arrLanguages['pt'] = "portugiesisch";
?>
<tr valign="top">
<td>Sprache:</td>
<td>
<select name="<?="CMS_VAR[7]"?>" style="width: 300px;">
<?php
foreach ($arrLanguages as $key => $value) {
if ($key == $rss_language) {
?>
<option value="<?=$key?>" selected="selected"><?=$value?></option>
<?php
} else {
?>
<option value="<?=$key?>"><?=$value?></option>
<?php
}
}
?>
</select>
</td>
</tr>
<tr valign="top">
<td>Copyright:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[8]"?>" value="<?=$rss_copyright?>" /></td>
</tr>
<!-- <tr valign="top">
<td>Bildtitel:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[9]"?>" value="<?=$rss_image_title?>" /></td>
</tr> -->
<?php
$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);
?>
<tr>
<td>Bild:</td>
<td>
<select name="<?="CMS_VAR[10]"?>" size="1" style="width: 300px;">
<option value="">Nichts ausgewählt</option>
<?php
$selected = false;
$img_display = '';
while ($db->next_record()) {
$path = $db->f("dirname").$db->f("filename");
if ($db->f("idupl") == $rss_image_url) {
?>
<option selected="selected" value="<?=$db->f("idupl")?>"><?=$path?></option>
<?php
$img_display = $path;
$selected = true;
} else {
?>
<option value="<?=$db->f("idupl")?>"><?=$path?></option>
<?php
}
}
?>
</select>
</td>
</tr>
<!-- <tr valign="top">
<td>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> -->
<tr valign="top">
<td>Name des Herausgeber:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[121]"?>" value="<?=$rss_managingEditorName?>" /></td>
</tr>
<tr valign="top">
<td>EMail-Adresse Herausgeber:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[12]"?>" value="<?=$rss_managingEditor?>" /></td>
</tr>
<tr valign="top">
<td>EMail-Adresse Webmaster:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[13]"?>" value="<?=$rss_webMaster?>" /></td>
</tr>
<tr valign="top">
<td>Name des Webmaster:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[131]"?>" value="<?=$rss_webMasterName?>" /></td>
</tr>
<tr valign="top">
<td>EMail-Adresse der Redaktion:<br>(Allg. Email für alle Autoren)</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[171]"?>" value="<?=$rss_authorRedaktionEmail?>" /></td>
</tr>
<tr valign="top">
<td>maximale Anzahl Artikel:</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[14]"?>" value="<?=$rss_maxCount?>" /></td>
</tr>
<tr valign="top">
<td>TTL (Minuten):</td>
<td><input type="text" maxlength="200" style="width: 300px;" name="<?="CMS_VAR[15]"?>" value="<?=$rss_ttl?>" /></td>
</tr>
<tr valign="top">
<td>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>
</table>
<?php
Code: Alles auswählen
<?php
#Includes
cInclude('classes', 'class.article.php');
#cInclude('frontend', 'includes/class.articlerecursive.php');
#Get settings
$rss_cat = "CMS_VALUE[0]";
$rss_include_sub_dirs = ((strlen("CMS_VALUE[17]")) ? true : false);
$rss_sortby = "CMS_VALUE[1]";
$rss_sortorder = "CMS_VALUE[2]";
$rss_include_start_article = ((strlen("CMS_VALUE[3]")) ? true : false);
$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_managingEditorName = "CMS_VALUE[121]";
$rss_webMaster = "CMS_VALUE[13]";
$rss_webMasterName = "CMS_VALUE[131]";
$rss_maxCount = "CMS_VALUE[14]";
$rss_ttl = "CMS_VALUE[15]";
$rss_description_length = "CMS_VALUE[16]";
$rss_authorRedaktionEmail = "CMS_VALUE[171]";
#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");
#Get the selected encoding
$sql = 'SELECT l.encoding
FROM ' . $cfg['sql']['sqlprefix'] . '_clients_lang cl, ' . $cfg['sql']['sqlprefix'] . '_lang l
WHERE ((cl.idclient=' . $client . ') AND (cl.idlang=' . $lang . '));';
//echo $sql;
$db->query($sql);
$db->next_record();
$encoding = $db->f('encoding');
echo '<?xml version="1.0" encoding="' . $encoding . '" ?>
';
?>
<rss version="2.0"
xmlns:access="http://www.bloglines.com/about/specs/fac-1.0"
xmlns:admin="http://webns.net/mvcb/"
xmlns:ag="http://purl.org/rss/1.0/modules/aggregation/"
xmlns:annotate="http://purl.org/rss/1.0/modules/annotate/"
xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:audio="http://media.tangent.org/rss/1.0/"
xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
xmlns:cc="http://web.resource.org/cc/"
xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005"
xmlns:company="http://purl.org/rss/1.0/modules/company"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:conversationsNetwork="http://conversationsnetwork.org/rssNamespace-1.0/"
xmlns:cp="http://my.theinfo.org/changed/1.0/rss/"
xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:email="http://purl.org/rss/1.0/modules/email/"
xmlns:ev="http://purl.org/rss/1.0/modules/event/"
xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"
xmlns:fh="http://purl.org/syndication/history/1.0"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:georss="http://www.georss.org/georss"
xmlns:geourl="http://geourl.org/rss/module/"
xmlns:g="http://base.google.com/ns/1.0"
xmlns:gml="http://www.opengis.net/gml"
xmlns:icbm="http://postneo.com/icbm"
xmlns:image="http://purl.org/rss/1.0/modules/image/"
xmlns:indexing="urn:atom-extension:indexing"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:kml20="http://earth.google.com/kml/2.0"
xmlns:kml21="http://earth.google.com/kml/2.1"
xmlns:kml22="http://earth.google.com/kml/2.2"
xmlns:l="http://purl.org/rss/1.0/modules/link/"
xmlns:mathml="http://www.w3.org/1998/Math/MathML"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:openid="http://openid.net/xmlns/1.0"
xmlns:opensearch10="http://a9.com/-/spec/opensearchrss/1.0/"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
xmlns:opml="http://www.opml.org/spec2"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:ref="http://purl.org/rss/1.0/modules/reference/"
xmlns:reqv="http://purl.org/rss/1.0/modules/richequiv/"
xmlns:rss090="http://my.netscape.com/rdf/simple/0.9/"
xmlns:rss091="http://purl.org/rss/1.0/modules/rss091#"
xmlns:rss1="http://purl.org/rss/1.0/"
xmlns:rss11="http://purl.org/net/rss1.1#"
xmlns:search="http://purl.org/rss/1.0/modules/search/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:ss="http://purl.org/rss/1.0/modules/servicestatus/"
xmlns:str="http://hacks.benhammersley.com/rss/streaming/"
xmlns:sub="http://purl.org/rss/1.0/modules/subscription/"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:sx="http://feedsync.org/2007/feedsync"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
xmlns:thr="http://purl.org/rss/1.0/modules/threading/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:wiki="http://purl.org/rss/1.0/modules/wiki/"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xrd="xri://$xrd*($v*2.0)"
xmlns:xrds="xri://$xrds">
<channel>
<title><?=prepareStringForOutput($rss_title, $encoding)?></title>
<copyright>© <?=date('Y')?> <?=prepareStringForOutput($rss_copyright, $encoding)?></copyright>
<link><?=prepareStringForOutput($rss_link, $encoding)?></link>
<description><?=prepareStringForOutput($rss_description, $encoding)?></description>
<language><?=prepareStringForOutput($rss_language, $encoding)?></language>
<lastBuildDate><?=date('D, d M Y H:i:s O')?></lastBuildDate>
<pubDate><?=date('D, d M Y H:i:s O')?></pubDate>
<generator>WCMS Contenido</generator>
<managingEditor><?=$rss_managingEditor?> (<?=$rss_managingEditorName?>)</managingEditor>
<webMaster><?=$rss_webMaster?> (<?=$rss_webMasterName?>)</webMaster>
<ttl><?=$rss_ttl?></ttl>
<?php
if (strlen($rss_image_fs)) {
?>
<image>
<title><?=prepareStringForOutput($rss_title, $encoding)?></title>
<?php
list ($width, $height, $type, $attr) = getimagesize($rss_image_fs);
?>
<width><?=$width?></width>
<height><?=$height?></height>
<url><?=prepareStringForOutput($rss_image_url, $encoding)?></url>
<link><?=prepareStringForOutput($rss_link, $encoding)?></link>
</image>
<atom:link href="http://<?php echo $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>" rel="self" type="application/rss+xml" />
<?php
}
#Output articles
if ($rss_cat != '') {
$list = new getArticleCollection($rss_cat, $rss_include_sub_dirs, $rss_include_start_article, $rss_sortby, $rss_sortorder);
$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("published");
$pub_date = strtotime($pub_date);
$pub_date = date('r', $pub_date);
if ($headline != '') {
$aParams = array('idcat' => $rss_cat, 'idart' => $value, 'client' => $client, 'lang' => $lang);
$link = Contenido_Url::getInstance()->build($aParams, true);
?>
<item>
<title><![CDATA[<?=prepareStringForOutput($headline, $encoding)?>]]></title>
<link><?=$link?></link>
<description><![CDATA[<?=prepareStringForOutput($description, $encoding) . ']]> <a href="' . $link . '">' . mi18n("mehr") . '...</a>'?></description>
<pubDate><?=$pub_date?></pubDate>
<?php
$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"), $encoding);
} else {
$author = '';
}
?>
<author><?=$rss_authorRedaktionEmail?>(Email der Redaktion, Autor:<?=$author?>)</author>
<guid isPermaLink="true"><?=$link?></guid>
</item>
<?php
}
}
$index ++;
}
}
}
?>
</channel>
</rss>
<?php
function is_empty($in_str) {
return (strlen(trim(str_replace(' ', '', str_replace(chr(13) . chr(10), '', strip_tags($in_str))))) == 0);
}
function prepareStringForOutput($sIn, $sCode = 'ISO-8859-1') {
$sIn = str_replace(' ', ' ', $sIn);
$sIn = str_replace(' ', ' ', $sIn);
$sIn = str_replace('•', '-', $sIn);
$sIn = html_entity_decode($sIn, ENT_COMPAT, $sCode);
return $sIn;
}
class getArticleCollection {
var $count;
var $cnt = 0;
var $db;
var $articles;
function getArticleCollection($idcat_start, $inc_subdirs, $inc_startart, $order, $direction) {
global $cfg, $lang, $client;
$this->tab = $cfg['tab'];
$this->db = new DB_Contenido;
$sql = 'SELECT
A.idcat,
A.level,
C.name,
C.public
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';
$this->db->query($sql);
$level = -2;
if ($idcat_start == "0") {
$level = -1;
}
while ($this->db->next_record()) {
if ($this->db->f('idcat') == $idcat_start) {
$level = $this->db->f('level');
}
if ($this->db->f('public')) {
if (($this->db->f('idcat') == $idcat_start) || (($this->db->f('level') > $level) && ($level > -2) && ($inc_subdirs))) {
$options = array('idcat' => $this->db->f('idcat'), 'start' => $inc_startart, 'order' => $order, 'direction' => $direction);
$list = new ArticleCollection($options);
if ($list->count) {
$aArticleList = array ();
$aArticleList = $list->articles;
foreach ($aArticleList as $value) {
$tmp_article = new Article($value, $client, $lang);
$articles[]['idart'] = $tmp_article->getField('idart');
$articles[(count($articles) - 1)][$order] = $tmp_article->getField($order);
}
}
} elseif ($level > -2) {
break;
}
}
}
if (is_array($articles)) {
foreach ($articles as $key => $row) {
$sort[$key] = $row[$order];
}
if ($direction == 'asc') {
array_multisort($sort, SORT_ASC, $articles);
} else {
array_multisort($sort, SORT_DESC, $articles);
}
for ($i = 0; $i < count($articles); $i ++) {
$this->articles[] = $articles[$i]['idart'];
}
}
$this->count = count($this->articles);
}
}
?>
Zuletzt geändert von derSteffen am Do 14. Jan 2010, 15:23, insgesamt 1-mal geändert.
Re: RSS Feed Generator
Danke, schaue ich mir mal genauer an.
Gruß
René
Gruß
René