*

Offline Jo

  • *****
  • 232
  • Geschlecht: Männlich
    • JoLichter.de
MODX mit validem RSS-Feed
« am: 15. April 2013, 12:31:09 »
Wer neue Artikel, Blogs oder Nachrichten veröffentlicht, will wahrscheinlich seinen Besuchern (wie auch dieses Forum) einen RSS-Dienst anbieten wollen.

Auf rtfm.modx.com zeigt Mark Hamstra wie man sehr einfach mit getResources einen RSS-Feed erstellen kann.

Seit MODX Revo 2.2 gibt es in der Area "Lexicon and Language" die Einstellung locale. Da ich diese auf "de_DE.UTF-8" gesetzt habe, bekam ich kein Datum mehr im Feed angezeigt. Schnell war das Problem per "Feed Validation Service" gefunden: der RSS-Feed ist nicht valide da das Datumsformat auf englisch sein muss!


Ein kleines getRSSdate Snippet als Output-Filter löst das Problem:
<?php
// RSS-Feed Time must be in english!
// we need this time format, e.g.: Wed, 02 Oct 2002 15:00:00 +0200
// unix timestamp to english rss-Date
// usage e.g.: [[+publishedon:getRSSdate]]

setlocale(LC_TIME,'en_GB.UTF8');
$format ='D, d M Y H:i:s O';
return 
date($formatstrtotime($input));

Mein Template Chunk sieht dann so aus:
<item>
  <title>[[+pagetitle:cdata]]</title>
  <link>[[~[[+id]]? &scheme=`full`]]</link>
  <description>
    [[+introtext:default=`[[+content:ellipsis=`600`]]`:cdata]]
  </description>
  <pubDate>[[+publishedon:getRSSdate]]</pubDate>
  <guid isPermaLink="false">[[~[[+id]]? &scheme=`full`]]</guid>
  <dc:creator>
      [[+createdby:userinfo=`fullname`]]
  </dc:creator>
</item>

 :-[
« Letzte Änderung: 15. April 2013, 23:22:45 von Jo »