RSS Reader Problem

Gesperrt
Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

RSS Reader Problem

Beitrag von Martin S. »

Mein CMS läuft auf UTF-8, jetzt lade ich einen RSS ein und die Umlaute sind nicht sauber dargestellt. Die Headline mit Link habe ich schon hinbekommen, aber die DESCRIPTION ist mit ä statt ä, was kann ich machen, wo muss ich dran drehen.
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

Hiho,

Schau mal bitte in deinen Html-Code. Ich vermute, dass dort was von ä steht. Deswegen erhälst Du als Ausgabe das Literal "ä". Würde dort die Entität ä stehen, müsste eigentlich ein ä in deinem Browser erscheinen.

Poste doch einfach mal den Quellcode deines RSS-Moduls.

Gruss,
Christian
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. »

Danke für die schnelle Antwort, du hast recht.
Das hier steht hinter dem Wort für: für

Hier der Orginalcode vom RSS Reader Version 4.6.4

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Insert RSS feed
* Authors:	  :	    Timo Hummel, Andreas Lindner
* Copyright   :     Contenido - four for business
* Created     :     30.09.2005
************************************************/

cInclude("pear", "XML/Parser.php");
cInclude("pear", "XML/RSS.php");

if ("CMS_VALUE[0]" == "")
{
  $sFeed = "http://www.contenido.org/rss/de/news";
} else {
  $sFeed = "CMS_VALUE[0]";
}

if ("CMS_VALUE[2]" == "")
{
  $FeedMaxItems = 999;
} else {
	$FeedMaxItems = intval("CMS_VALUE[2]");
}

/* Preparse feed for an encoding due to the poorly designed
   PHP XML parser */

$sFeedContent = substr(@file_get_contents($sFeed),0,1024);

$regExp = "/<\?xml.*encoding=[\"\'](.*)[\"\']\?>/i"; 
      
preg_match($regExp,trim($sFeedContent),$matches); 

if ($matches[1]) 
{ 
  $rss =& new XML_RSS($sFeed, $matches[1]); 
} else { 
  $rss =& new XML_RSS($sFeed); 
}

$rss->parse();

$tpl = new Template;

$i = 0;
foreach ($rss->getItems() as $item)
{
	if ($i < $FeedMaxItems) {
	    $tpl->set("d", "TITLE", htmlentities($item['title'],ENT_QUOTES));
    	$tpl->set("d", "LINK", htmlentities($item['link'],ENT_QUOTES));
    	$tpl->set("d", "DESCRIPTION", htmlentities($item['description'],ENT_QUOTES));
    	$tpl->set("d", "READ_ON", mi18n("weiterlesen"));
	    $tpl->next();
	}
	$i++;
}

$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/"."CMS_VALUE[1]");
?>
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

Probiere doch einfach mal:

Code: Alles auswählen

$tpl->set("d", "DESCRIPTION", $item['description']);
statt

Code: Alles auswählen

$tpl->set("d", "DESCRIPTION", htmlentities($item['description'],ENT_QUOTES));
Gruss,
Christian

Nachtrag: Sicherlich bekommst Du deinen Feed schon mit Html-konformen Umlauten, sprich Entitäten. Werden diese Entitäten (z.b. &aauml;) durch die Funktion htmlentities erneut codiert, kommt natürlich Murx als Ergebnis raus.
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. »

Super, danke genauso geht es.
Wenn du mir jetzt noch sagen kannst, wie ich die Länge der DESCRIPTION verkürzen kann, dann bin ich erstmal wunschlos glücklich.
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

Einfach

Code: Alles auswählen

if(strlen($item['description']) > 200) $item['description'] = substr($item['description'], 0, 200)."...";
vor die Zeile

Code: Alles auswählen

$tpl->set("d", "DESCRIPTION", $item['description']); 
setzen!

Aber Achtung: Ist ungetestet!
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Martin S.
Beiträge: 183
Registriert: Fr 14. Jan 2005, 10:46
Kontaktdaten:

Beitrag von Martin S. »

Du machst mir Angst, ich bin begeistert, es geht. Das Forum hier ist echt der Hammer.
Danke
Gesperrt