PROBLEM IST GELÖST! (Siehe unten)
Hallo Forum!
Ich habe seit mehreren Wochen ein Problem, welches ich mittels Google und anderen Typo3lern einfach nicht lösen kann. Typo3 läuft an sich alles, auch realurl läuft wie gewollt, nur seit der Installation von realurl geht der RSS-Feed von tt_news nicht mehr, welcher davor aber funktioniert hat. Die komplette Fehlermeldung lautet:
Code:
XML-Verarbeitungsfehler: XML- oder Text-Deklaration nicht am Beginn der Entität
Adresse: http://www.example.com/?type=100
Zeile Nr. 2, Spalte 1:<?xml version="1.0" encoding="utf-8"?>
^
Der Fehler sagt mir, dass vor der XML-Datei für den RSS-Feed eine Leerzeile entsteht ("Zeile Nr. 2"), was nicht sein darf, da alle Feed-Reader eine valide XML-Datei brauchen und in der ersten Zeile die XML-Deklaration stehen MUSS. Irgendwoher kommt also eine Leerzeile. Die Frage ist: WOHER?
Lese ich die URL für den RSS-Feed mit der PHP-Funktion file_get_contents('http://www.example.com/?type=100'); ein, so finde ich dort auch die korrekten News, die ich haben will, da die Funktion die Leerzeile ignoriert.
Eine FE-Compression ist nicht aktiviert (wie in der Mailing-List in einem Post als Lösung beschrieben)
Hier die Versionen:
Typo3: 4.2.8
tt_news: 2.5.2
realurl: 1.1.0
PHP: 5.2.9
MySQL: 5.0.67
TypoScript für tt_news - RSS - Feed:
Constants:
Code:
###RSS CONSTANTS fuer tt_news
# Seite, die die News List enthält
#xmlnewsfeed_id = 181
plugin.tt_news {
# SYS-Folder mit News
pid_list = 174
# Seite mit Singleanzeige
singlePid = 182
displayXML {
rss2_tmplFile = fileadmin/templates/template_ttnews_rss.tmpl
# mögliche: rss091 / rss2 / rdf / atom03
xmlFormat = rss2
xmlTitle = www.example.com: Beispiel
xmlLink = www.example.com/
# Anzahl News in Reader
xmlLimit = 10
xmlDesc = Beschreibung
# Sprache
xmlLang = de
xmlIcon = fileadmin/templates/mein_rss.gif
title_stdWrap.htmlSpecialChars = 1
title_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.stripHtml = 1
subheader_stdWrap.htmlSpecialChars = 1
subheader_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.crop = 300 | ... | 1
subheader_stdWrap.ifEmpty.field = bodytext
xmlLastBuildDate = 1
#xmlCaching = 1
}
} TS-Konfiguration:
Code:
###RSS NEWSFEED
xmlnews = PAGE
xmlnews {
typeNum = 100
#10 >
#10 < plugin.tt_news
10.pid_list >
10.pid_list = {$plugin.tt_news.pid_list}
10.singlePid = {$plugin.tt_news.singlePid}
10.defaultCode = XML
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
} Die auskommentierten Teile bringen auch keinen Unterschied :sad:.
Das Einbinden des RSS-Feeds im Meta-Kontext ist nicht gewünscht und daher auch auskommentiert, der Feed soll nur eingeloggten Benutzern zur Verfügung stehen, dennoch mal die Config dazu:
Code:
#page.headerData.500 = TEXT
#page.headerData.500.value = <link rel=alternate type=application/rss+xml title=RSS-Feed href=http://www.example.com/index.php?id={$xmlnewsfeed_id}&type=100 />
#page.headerData.500.value = <link rel=alternate type=application/rss+xml title=RSS-Feed href=http://www.example.com/index.php?type=100 /> Binde ich das TS ein, so erscheint auf jeder Seite im Firefox auch ein RSS-Icon oben in der Eingabeleiste.
Die Deaktivierung und Deinstallation von Realurl bringt auch nichts, ebenso das Auskommentieren des TS für Realurl und auch das Auskommentieren des Realurl-Teils in der localconf.php ändert nichts daran, dass der RSS-Feed nicht mehr geht :sad:.
In der localconf.php stand einst:
Code:
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
'fileName' => array(
'index' => array(
'?type=100' => array('keyValues' => array('type' => 100)),
'rss091.xml' => array('keyValues' => array('type' => 101)),
'atom03.xml' => array('keyValues' => array('type' => 102)),
'atom.xml' => array('keyValues' => array('type' => 103)),
'rdf.xml' => array('keyValues' => array('type' => 104)),
),
),
); ist nun aber auskommentiert und stattdessen steht da:
Code:
'fileName' => array (
'defaultToHTMLsuffixOnPrev' => true,
'index' => array (
'rss.xml' => array (
'keyValues' => array (
'type' => '100',
),
),
'rss091.xml' => array (
'keyValues' => array (
'type' => '101',
),
),
'rdf.xml' => array (
'keyValues' => array (
'type' => '102',
),
),
'atom.xml' => array (
'keyValues' => array (
'type' => '103',
),
),
) (Auf Klammersetzung ist hier im Post mal nicht geachtet, jedoch in der localconf.php schon ... )
Egal mit welchem Code, der RSS-Feed funktioniert nicht mehr und wirft die gleiche Meldung. Das Template dazu ist eingebunden. (example.com dient nur als Beispiel, dort steht die korrekte URL drinne, die ich aus rechtlichen Gründen nicht nennen kann)
Hat irgendjemand eine Idee oder sogar eine Lösung dafür?!
####################GELÖST########################
Das Problem war ein ganz einfaches: in der localconf.php wurde einmal das PHP-Tag geschlossen, dann kam eine Leerzeile und danach wurde wieder ein PHP-Tag geöffnet.
Code:
$TYPO3_CONF_VARS['SC_OPTIONS']...;
?>
//hier war die Leerzeile!
<?php
$TYPO3_CONF_VARS['FE']['addRootLineFields']...;
Das Löschen der rot markierten Zeilen behob den Fehler!
Vielleicht hilfts ja jemandem ;-).
Lesezeichen