English Version medianotions.de RSS-Feed abonnieren

30.05.2010

MODx: RSS-Feed mit Ditto selbst gemacht

Themen: MODx, Snippets, RSS | zuletzt bearbeitet: 30.05.2010


Ditto kann zwar von Haus aus RSS-Feeds ausgeben, aber anpassen lässt sich diese Ausgabe leider nicht. Wer einen komplett anpassbaren RSS-Feed in MODx ausgeben möchte, kann das relativ leicht mit den folgenden Schritten einrichten.

Schritt 1:

RSS-Ressource Inhalt

<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <channel>
      <title>[(site_name)]</title>
      <link>[(site_url)]</link>
      <description>RSS-Feed mit MODx und Ditto</description>
      <language>de</language>
      <copyright>[(site_name)] [!getDate &format=`Y`!]</copyright>
      <ttl>120</ttl>   

      [!Ditto? &parents=`3,62` &tpl=`rssTpl` &showInMenuOnly=`1` &depth=`2` &summarize=`20` &sortBy=`createdon` &sortDir=`DESC`!]
   </channel>
</rss>

Erklärung der Platzhalter und Snippet-Aufrufe

  • [(site_name)]: MODx-Konfigurationsvariable, enthält den Seitennamen
  • [(site_url)]: MODx-Konfigurationsvariable, enthält die Seiten-URL
  • [!getDate &format=`Y`!]: eigenes Snippet zur Datumsausgabe (siehe unten)
  • [!Ditto? … !]: Ditto-Aufruf zur Ausgabe der einzelnen RSS-Einträge (Parameter entsprechend der eigenen Konfiguration anpassen)

Hinweise zur Ressource

  • Als Template „blank“ auswählen, denn im Content steht bereits alles, was für den RSS-Feed benötigt wird.
  • Für den Inhaltstyp (unter den Seiteneinstellungen) „text/xml“ auswählen, da ein RSS-Feed ein XML-Dokument ist.
  • Werte und Parameter sind natürlich nur beispielhaft und können / sollen entsprechend der eignen Konfiguration angepasst werden.

Schritt 2:

Damit ist die Ressource angelegt, die später den RSS-Feed ausgeben wird. Jetzt benötigen wir noch das RSS-Template für Ditto.

Chunk „rssTpl“ als Ditto-Template

<item>
   <title>[+longtitle+]</title>
   <link>[(site_url)][~[+id+]~]</link>

   <description><![CDATA[ [+introtext+] ]]></description>
   <pubDate>[!getDocumentDate &date=`editedon` &id=`[+id+]` &format=`r`!]</pubDate>
   <guid isPermaLink="true">[(site_url)][~[+id+]~]</guid>
   <dc:creator>[(site_name)]</dc:creator>   
</item>

Erkärung der Platzhalter und Snippet-Aufrufe

  • [+longtitle+]: Ditto-Platzhalter für den Langtitel
  • [+introtext+]: Ditto-PLatzhalter für die Zusammenfassung
  • [(site_name)]: MODx-Konfigurationsvariable, enthält den Seitennamen
  • [(site_url)]: MODx-Konfigurationsvariable, enthält die Seiten-URL
  • [~[+id+]~]: Ditto-Platzhalter für den Link zur Ressource
  • [!getDocumentDate … !]: eigenes Snippet zur Datumsausgabe (siehe unten)

Hinweise zum Chunk

  • Werte und Parameter sind natürlich nur Beispielhaft und können / sollen entsprechend der eigenen Konfiguration angepasst werden.

Schritt 3:

Jetzt brauchen wir nur noch zwei kleine Snippets für die Datumsausgabe.

Snippet „getDate“

<?php
// Syntax: [!getDate &format=`Y`!]

// Formatinfo unter: http://de.php.net/manual/de/function.date.php         
echo(date($format));
?>

Snippet „getDocumentDate“

<?php
// Syntax: [!getDocumentDate &date=`editedon` &id=`5` &format=`r`!]

// Formatinfo unter: http://de.php.net/manual/de/function.date.php         
$document=$modx->getDocument($id);         
$secs=$document[$date];
echo(date($format, $secs));
?>

Fertig ist der eigene, voll konfigurierbare RSS-Feed! Der Quelltext der Ausgabe sollte in etwa so aussehen:

Quelltext des RSS-Feeds

<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <channel>
      <title>Blog.Medianotions</title>
      <link>http://blog.medianotions.de/</link>
      <description>Gedanken, Nützliches und Beiträge rund um die Themen Webdesign und Web-Programmierung.</description>
      <language>de</language>

      <copyright>Blog.Medianotions 2010</copyright>
      <ttl>120</ttl>   

      <item>
         <title>Sehenswert: rareview.com</title>
         <link>http://blog.medianotions.de/de/sehenswert/2010/rareview.com</link>

         <description><![CDATA[ rareview ist eine in Los Angeles ansässige Agentur für Web-Applikationen und hat nicht nur eine Website die schön anzuschauen ist, sondern auch eine beeindruckende Referenzen-Liste. ]]></description>
         <pubDate>Sun, 30 May 2010 13:56:25 +0200</pubDate>

         <guid isPermaLink="true">http://blog.medianotions.de/de/sehenswert/2010/rareview.com</guid>
         <dc:creator>Blog.Medianotions</dc:creator>   
      </item>
      <item>
         <title>MODx: Doc Finder 1.6 veröffentlicht</title>
         <link>http://blog.medianotions.de/de/artikel/2010/modx-doc-finder-1.6-veroeffentlicht</link>

         <description><![CDATA[ In der Version 1.6 sucht und ersetzt der Doc Finder nun auch in MODx Evolution. ]]></description>

         <pubDate>Tue, 18 May 2010 15:57:21 +0200</pubDate>
         <guid isPermaLink="true">http://blog.medianotions.de/de/artikel/2010/modx-doc-finder-1.6-veroeffentlicht</guid>
         <dc:creator>Blog.Medianotions</dc:creator>   
      </item>
      <item>
         <title>CSS-Page-Tagging</title>
         <link>http://blog.medianotions.de/de/artikel/2010/css-page-tagging</link>

         <description><![CDATA[ CSS-Page-Tagging bedeutet, CSS-Klassen als „Tag“ für eine flexible Seitenanpassung zu nutzen. Damit ist es möglich schnell und flexibel Ausnahmen bei der Umsetzung eines Webdesign zu berücksichtigen. ]]></description>
         <pubDate>Mon, 10 May 2010 09:28:52 +0200</pubDate>
         <guid isPermaLink="true">http://blog.medianotions.de/de/artikel/2010/css-page-tagging</guid>
         <dc:creator>Blog.Medianotions</dc:creator>   
      </item>
      
      […]
      
   </channel>
</rss>

Bookmark setzen oder Seite empfehlen

Kommentar schreiben

Die Kommentarfunktion ist nicht mehr aktiv

0 Kommentare