Ein Problem, das häufig auftritt, wenn man RSS-Feeds mit dem News-Modul erstellt, ist, dass der Feed von Readern nicht erkannt wird bzw. bei einem Klick auf den Link nur den Download anbietet, aber der Browser die Daten nicht RSS-like darstellt.
In solchen Fällen empfiehlt es sich als erstes zu testen, ob Drupal nicht grundsätzlich vor Auslieferung von Content an erster Stelle eine leere Zeile sendet, indem man sich auf einer beliebigen Seite von Drupal den Quelltext anzeigen läßt.
Abb. 1: Quelltext mit störender Leerzeile am Anfang
Man sieht sofort, dass das Dokument in der zweiten Zeile beginnt, was zu verschiedenen Problemen führen kann. Unter anderem ist es meistens verantwortlich dafür, dass ein RSS-Feed in Drupal nicht funktioniert.
Ruft man den zum Download angebotene RSS-Feed mit einem Texteditor auf, ist auch dort die erste Zeile leer. (Falls nicht, dann braucht man hier nicht weiterlesen, dann ist diese Problemlösung nicht die richtige.)
Die Ursache ist in der Regel ein fehlerhaft programmiertes Modul oder Theme. Deshalb sollte man zunächst die kürzlich selbst erstellten Module überprüfen, ob in "mein-modul.module" vor dem "<?php ...." nicht ein Leerzeichen oder Zeilenumbruch versehentlich eingefügt wurde.
Bei mir wurde der Fehler z.B. durch ein simples Test-Modul erzeugt, das ich vergessen hatte abzuschalten bzw. nachlässig programmiert hatte.
Abb. 2: Ursache ist meist eine Leerzeile am Anfang der Module-Datei
Wie man erkennt, beginnt der Quell-Code in der zweiten Zeile. Egal in welchem Modul ein solcher Fehler vorkommt, Drupal gibt die Zeichen vor dem "<?php ..." vor jeder Ausgabe mit aus, auch im RSS-Feed, der deshalb nicht funktioniert.
Falls in den Modulen nichts gefunden wird, kann eine weitere Fehlerquelle das Theme darstellen, dort sollte man zumindest in 'html.tpl.php' überprüfen, ob sich nicht vor "<!DOCTYPE html> ..." irgendwelche Leerzeichen oder Zeilenumbrüche eingeschlichen haben. Am besten achtet man darauf, dass dort der Source-Code in dieser Form beginnt:
<?php /** * @file * Custom theme implementation to display the basic html structure of a single * Drupal page. * * @todo metatag abhaengig von navbar-fixed-top machen */ ?><!DOCTYPE html> <html lang="....
Es ist natürlich lästig, wenn man jetzt viele Module (plus sein Theme) auf diese Fehlerquelle hin überprüfen muss.
In einem Kommentar auf der offiziellen Drupal-Seite wird eine Methode vorgeschlagen, wie man eine aussagekräftige Fehlermeldung erzwingen kann. Diese Methode hat bei mir allerdings nicht funktioniert. Mir blieb nichts anderes übrig, als alle meine selbsterstellten Module einzeln zu überprüfen. Und wenn das nicht zum Erfolg geführt hätte, hätte ich auch alle "fremden" Module überprüfen müssen.