CK-RSS Probleme mit Umlauten
Weiterhin besteht leider das Problem mit Umlauten in Verbindung mit meinem Redaxomodul CK-RSS.
Wahrscheinlich werde ich das Modul komplett neu erstellen müssen, um von Grund auf mit dem Zeichensätzen zurecht zu kommen.
Stay tuned ...
Kommentare
ich hab das mal in Ordnung gebracht ;)
Hi, ich weiß nicht, ob Du das so gedacht hast, aber ich habe mich mal um die Umlaute gekümmert. Vielleicht magst Du ja Dein Modul bei redaxo.de in der erweiterten Form online stellen.
Grüße
Jakob
<?php
header('Content-Type: text/xml; charset=utf-8');
/*
CK-RSS v1.1
RSS Modul für Redaxo
by Clausi
www.cklausi.de
Modulpreview: redaxo.cklausi.de
Redaxo-ID: 480
*/
// Backend
if ($REX['REDAXO']) {
echo '';
echo 'CK-RSS';
echo 'Feed-Name: REX_VALUE[5]';
echo 'Feed-Beschreibung: REX_VALUE[6]';
echo 'Website-Link: REX_VALUE[7]';
echo 'Kategorien: REX_VALUE[1]';
echo 'Sortierverhalten bei mehreren Kategorien: REX_VALUE[8]';
echo 'Sortiert nach: REX_VALUE[2]';
echo 'Sortierrichtung: REX_VALUE[3]';
echo 'Artikellänge: REX_VALUE[4]';
echo '';
//echo '';
}
// Frontend
else {
// Kategorien
$m480_CatId = 'REX_VALUE[1]';
// Sortierung
$m480_SortMerge = 'REX_VALUE[8]';
$m480_Sort = 'REX_VALUE[2]';
$m480_SortDir = 'REX_VALUE[3]';
$m480_SortSql = $m480_Sort.' '.$m480_SortDir;
// Artikelausschnitt
$m480_ArticleLen = 'REX_VALUE[4]';
// RSS
$m480_RSS['name'] = 'REX_VALUE[5]';
$m480_RSS['desc'] = 'REX_VALUE[6]';
$m480_RSS['link'] = 'REX_VALUE[7]';
// Artikel einlesen
$m480_Cats = explode(';', $m480_CatId);
$i = 0;
$m480_Items = array();
$m480_sql = new sql();
foreach($m480_Cats as $Cat) {
if(is_numeric($Cat)) {
$m480_qry = "SELECT
id, name, createdate, updatedate, prior
FROM
" . $REX['TABLE_PREFIX'] . "article
WHERE
" . $REX['TABLE_PREFIX'] . "article.re_id = '" . $Cat . "'
AND
clang='" . $this->clang . "'
AND
status='1'
AND
startpage='0'
ORDER BY
" . $m480_SortSql . "";
$m480_sql->setQuery( $m480_qry );
$m480_Articles = $m480_sql->get_array();
$m480_CountArt = count($m480_Articles);
if($m480_CountArt > 0) {
foreach($m480_Articles as $m480_row) {
$m480_slice = new article;
$m480_slice->setArticleID($m480_row['id']);
$m480_Items[$i]['id'] = $m480_row['id'];
$m480_Items[$i]['title'] = /*htmlentities(*/ $m480_row['name'] /*) */;
$m480_Items[$i]['prior'] = $m480_row['prior'];
$m480_Items[$i]['createdate'] = $m480_row['createdate'];
$m480_Items[$i]['updatedate'] = $m480_row['updatedate'];
$m480_Items[$i]['article'] = trim(strip_tags($m480_slice->getArticle()));
//$m480_Items[$i]['article'] = preg_replace("/\r|\n/s", " ", $m480_Items[$i]['article']);
// Workaround für &
//$m480_Items[$i]['article'] = preg_replace("/&/","&", $m480_Items[$i]['article']);
//$m480_Items[$i]['article'] = htmlentities($m480_Items[$i]['article']);
$m480_Items[$i]['article'] = substr($m480_Items[$i]['article'], 0, $m480_ArticleLen).' …';
$m480_Items[$i]['article'] = nl2br(htmlspecialchars($m480_Items[$i]['article']));
$i++;
}
}
}
}
// Sortieren bei mehreren Kategorien
if($m480_SortMerge == 'merge') {
$m480_sortArray = array();
foreach($m480_Items as $key => $array) {
$m480_sortArray[$key] = $array[$m480_Sort];
}
if($m480_SortDir == 'ASC') array_multisort($m480_sortArray, SORT_ASC, SORT_NUMERIC, $m480_Items);
else array_multisort($m480_sortArray, SORT_DESC, SORT_NUMERIC, $m480_Items);
}
// XML erstellen
$m480_xml = new DOMDocument('1.0', 'UTF-8');
$m480_xml->formatOutput = true;
// Root
$m480_root = $m480_xml->createElement('rss');
$m480_root->setAttribute('version', '2.0');
$m480_root->setAttribute('xmlns:atom', 'http://www.w3.org/2005/Atom');
$m480_xml->appendChild($m480_root);
// Channel
$m480_channel = $m480_xml->createElement('channel');
$m480_root->appendChild($m480_channel);
// Head
$m480_head = $m480_xml->createElement('title', $m480_RSS['name']);
$m480_channel->appendChild($m480_head);
$m480_head = $m480_xml->createElement('description', $m480_RSS['desc']);
$m480_channel->appendChild($m480_head);
$m480_head = $m480_xml->createElement('language', 'de-de');
$m480_channel->appendChild($m480_head);
$m480_head = $m480_xml->createElement('link', $m480_RSS['link']);
$m480_channel->appendChild($m480_head);
$m480_head = $m480_xml->createElement('lastBuildDate', date("D, j M Y H:i:s ", time()) . 'GMT+1');
$m480_channel->appendChild($m480_head);
$m480_head = $m480_xml->createElement('atom:link');
$m480_attrib = $m480_xml->createAttribute('href');
$m480_text = $m480_xml->createTextNode('http://dzoi.de/index.php?article_id=79&clang=0');
$m480_attrib->appendChild($m480_text);
$m480_head->appendChild($m480_attrib);
$m480_attrib = $m480_xml->createAttribute('rel');
$m480_text = $m480_xml->createTextNode('self');
$m480_attrib->appendChild($m480_text);
$m480_head->appendChild($m480_attrib);
$m480_attrib = $m480_xml->createAttribute('type');
$m480_text = $m480_xml->createTextNode('application/rss+xml');
$m480_attrib->appendChild($m480_text);
$m480_head->appendChild($m480_attrib);
$m480_channel->appendChild($m480_head);
// Items
foreach($m480_Items as $items) {
$m480_item = $m480_xml->createElement('item');
$m480_channel->appendChild($m480_item);
$m480_data = $m480_xml->createElement('title', $items['title']);
$m480_item->appendChild($m480_data);
$m480_data = $m480_xml->createElement('description', $items['article'] );
$m480_item->appendChild($m480_data);
$m480_data = $m480_xml->createElement('link', htmlentities($m480_RSS['link'].rex_getUrl($items['id'])));
$m480_item->appendChild($m480_data);
if($m480_Sort == 'createdate') {
$m480_SortDate = $items['createdate'];
}
else if($m480_Sort == 'updatedate') {
$m480_SortDate = $items['updatedate'];
}
else {
$m480_SortDate = $items['createdate'];
}
$m480_data = $m480_xml->createElement('pubDate', date("D, j M Y H:i:s ", $m480_SortDate).'GMT');
$m480_item->appendChild($m480_data);
$m480_data = $m480_xml->createElement('guid', htmlentities($m480_RSS['link'].rex_getUrl($items['id'])));
$m480_item->appendChild($m480_data);
}
// Feedausgabe
$durchgenommen = $m480_xml->saveXML();
$durchgenommen = str_replace("", "", "]]>", $durchgenommen);
$durchgenommen = str_replace("", "", "]]>", $durchgenommen);
echo $durchgenommen;
}
?>
Ich komm einfach nicht dazu
Ich komm einfach nicht dazu :-/
Deine Änderung habe ich getestet, leider aber ergibt sich dabei ein Fehler: http://redaxo.cklausi.de/rss/rss.html
Hab mich aber mal wieder rangesetzt und die Tage kommt dann sicher eine neue Version, mit einigen tollen Features und natürlich mit gelösten Umlautproblem, versprochen :)
Eine Preview kann man hier http://redaxo.cklausi.de/rss12/rss12.html schonmal anschauen.
Redaxo CK-RSS1.21
Guten Abend,
nach Einbindung des Moduls CK-RSS1.21 mit Hilfe der Anleitung bekomme ich die gewünschten Resultate nicht hin.
a) In der Sparte "Feed" wird beim Feed-Autor wird immer "REX_Value[13] angezeigt.
b) In der Sparte "Kategorien" werden nicht alle Kategorien nach ID Eingabe angezeigt.
c) In der Sparte "Feed-Aussehen" steht bei "max. Artikel: REX_VALUE[12]
d) Und das Problem mit den Umlauten, die nicht richtig angeteigt werden.
Welche Version von Redaxo
Welche Version von Redaxo läuft denn?
Redaxo CK-RSS1.21
Hallo,
ich hab da mal nachgeschaut. Es handelt sich um die Redaxo Version 3.2, die im Moment läuft.
Grüße.
Ja da ist das Problem, meine
Ja da ist das Problem, meine Module laufen erst ab Redaxo 4.1, nachzulesen auf der Modulseite oder auf redaxo.de