24
05

Skript zum Einbinden von RSS-Feeds auf Webseiten

Skript zum Einbinden von RSS-Feeds auf Webseiten

Meine Link-List auf der Start-Seite bzw. der dazu­ge­hö­rige Feed, sind nichts ande­res, als meine Emp­feh­lun­gen im Google-Reader. Ein Klick im Rea­der und die Über­schrif­ten erschei­nen auch hier. Zwar bie­tet Google dafür extra eine vor­ge­fer­tigte Lösung, die mir aber zu auf­ge­bläht in der Struk­tur und ins­ge­samt zu unfle­xi­bel ist. Google bie­tet aber auch eine eigene API zum Sam­meln und aus­ge­ben von Feeds auf Web­sei­ten, damals noch ein­fach Google Feed API genannt, heute schon als Google AJAX Feed API beti­telt.

Der Zusatz AJAX sorgt für noch auf­ge­bläh­te­ren Quell­code und völ­lig feh­lende Seman­tik, wes­halb ich auch hier wie­der einen gro­ßen Bogen um die fer­ti­gen Lösun­gen mache und was Eige­nes bastle. Es folgt ein kur­zes Tuto­rial zum Javaskript der Feed-Darstellung.

Inhalte ver­lin­ken nicht steh­len

Nichts gegen die immer belieb­ter wer­den­den Feed-Aggregatoren - Web­sei­ten, die prak­tisch nur Inhalte ande­rer Sei­ten mit Hilfe derer Feeds bei sich dar­stel­len - ich halte eine sol­che Pra­xis für aüßerst frag­wür­dig. Hier ent­steht der Ein­druck fremde Inhalte als eigene ver­kau­fen zu wol­len. Links zur Quelle hin oder her, falsch bleibt falsch. Kom­plette Feed-Items sollte man ein­fach nicht absau­gen und ein­fach so bei sich dar­stel­len, das ist ein­fach schlechte Schule. Gute Schule dage­gen ist ein ein­fa­cher Link der Über­schrift, hin zur frem­den Seite. Nichts ande­res bringt das fol­gende Skript mit.

warum keine fer­tige Lösung?

Fer­tige Lösun­gen gibt es zwar viele, aber bei allen bin ich immer irgendwo ein­ge­schränkt. Sei es viel zu kom­ple­xer Quell­code, lang­same Skript-Performance, oder Gren­zen bei der CSS-Gestaltung. Nur bei einer eige­nen Lösung ist man alle Pro­bleme los. Hinzu kommt, dass es kin­der­leicht ist, mit Google’s APIs zu arbei­ten. Was man als ers­tes benö­tigt ist ein API-Schlüssel von Google, der sich hier holen lässt. Meine Ver­sion ist damals noch mit der alten Ver­sion die­ser API ent­stan­den, gehe aber mal stark davon aus, dass Schlüs­sel und API abwärts­kom­pa­ti­bel sind und somit mein Skript, auch mit neuen Schlüs­seln funk­tio­niert.

Die­ser API-Schlüssel wird dann auf der jewei­li­gen Seite, mit einem Skript-Verweis im Head akti­viert:

<script type="text/javascript" src="http://www.google.com/jsapi?key=sgj[...]"></script>

feed-display.js

Das fer­tige Skript auf den eige­nen Ser­ver packen und auf der eige­nen Seite, wie schon den API-Schlüssel ein­bin­den:

<script type="text/javascript" src="http://www.meinewebsite.de/feed-display.js"></script>

Nun kann man mit fol­gen­der Syn­tax mun­ter Feeds auf der eige­nen Seite dar­stel­len las­sen. Wer zum Bei­spiel eine Liste mit Links zu den letz­ten 5 Ein­trän­gen die­ser Seite, in einer Div mit der id “cold-heat” haben möchte, bekommt es mit fol­gen­dem Auf­ruf im HTML:

<script type="text/javascript">
new rssdisplayer("cold-heat", "http://www.coldheat.de/feed", 5, "title")
</script>

Die Aus­gabe mit HTML sieht dann wie folgt aus:

<div id="cold-heat">
<ul>
    <li class="blogtitle">Titel des Blogs</li>
    <li class="tagline">Blog-Beschreibung</li>
    <li><a title="Titel des Artikels" href="http://www.coldheat.de/...">Titel des Artikels</a></li>
    <li><a title="2" href="http://www.coldheat.de/...">2</a></li>
    <li><a title="3" href="http://www.coldheat.de/...">3</a></li>
    <li><a title="4" href="http://www.coldheat.de/...">4</a></li>
    <li><a title="5" href="http://www.coldheat.de/...">5</a></li>
</ul>
</div>

Eine ein­fa­che valide Struk­tur, ohne große Schnör­kel. Für jeden Feed benö­tigt man dann einen sepa­ra­ten Auf­ruf des Skripts. Wer unbe­dingt die kom­plet­ten Inhalte nut­zen möchte, sollte sich das Skript genauer anschauen, es beinhal­tet alle Zuta­ten auch kom­plette Inhalte der Links dar­zu­stel­len. Die Schlüssel-Zeile ist im Skript aus­rei­chend kom­men­tiert.

  • #1
  • Do, 20. März 2008
  • MaikD schrieb:

Ich suche ver­zwei­felt … Wie kann ich den Inhalt mit anzei­gen las­sen ? Ansons­ten wirk­lich gutes Skript !

  • #2
  • Di, 08. April 2008
  • Haegar schrieb:

MaikD, ein biß­chen rum­pro­bie­ren muß man schon… oder Ahnung haben ;o) Natür­lich gibt es immer viele Mög­lich­kei­ten. Eine davon:

Kopiere die Zeile unter “hier geschieht die Magie…” mit “li”, füge sie dar­un­ter ein, und setze ein “+” hin­ter die erste Zeile. Tau­sche in der zwei­ten Zeile “item­title” gegen “item­de­scrip­tion” aus. Falls Du “itemdate” noch benö­tigst, erstellst Du glei­cher­ma­ßen eine dritte Zeile “itemdate”.

Wenn Du den “li” noch eine “class” zuord­nest, kannst Du sie auch anspre­chen ;o)

Im HTML-Dokument lau­tet die Anspra­che im new rss­di­player …“title,contentSnippet,publishedDate”

Hallo, Chris­tian Muecke: Tol­les Script - habe ich gerne im Ein­satz! Und ansons­ten ist es auch immer sehr infor­ma­tiv hier :o )

  • #3
  • Do, 31. Juli 2008
  • konstantin schrieb:

ist es mög­lich, das datums­for­mat irgend­wie zu beein­flus­sen!? im moment bekomme ich das mit dei­nem (wirk­lich tol­lem!) skript so aus­ge­ge­ben:

Sonn­tag, 15. April 2007 16:00:31 | ÜBERSCHRIFT DES RSS-FEEDS

ich würde es aber gern der­art haben:

15 Apr 2007 | ÜBERSCHRIFT DES RSS-FEEDS

geht da was!? dank und grusz. kon­stan­tin

Webmaster

Erst­mal Fol­gen­des: diese API hat sich mitt­ler­weile sehr ver­än­dert. Es ist ein Wun­der, dass diese Skript noch funk­tio­niert. Zu der Frage: das Aus­ga­be­for­mat des Datums, lässt sich sehr wohl ver­än­dern. Die ent­schei­dende Stelle im Skript ist mit dem Kom­men­tar “For­ma­tie­rung fuer Datums­aus­gabe eines ein­zel­nen Items” ver­se­hen. Wo jetzt steht itemdate.toLocaleString(), muss was Neues ste­hen.

Ich ver­weise mal auf eine kurze Erklä­rung bei Javaskript­kit. Dort wird unter der Über­schrift For­mat­ting the date field of a RSS item gezeigt, wie es funk­tio­niert. Ein­fach aus­ge­drückt, zieht man die ein­zel­nen Werte aus itemdate her­aus und fügt sie so zusam­men, wie man sie braucht. In dei­nem Bei­spiel müsste man Tag, Datum und Jahr abfra­gen und dann in der Aus­gabe schrei­ben las­sen. Die Erklä­rung dort ist wirk­lich ein­fach.

Ich hoffe es klappt.

Hi, net­ter Post aber wie adde ich den denn zu mei­nen RSS Feeds? Bin ich zu bloed?

Kommentar schreiben
safari bug

Vorschau:

HTML ist in Kommentaren zugelassen. Erlaubt sind die HTML-Tags:
<a href>, <i>, <p>, <strong>, <em>, <ul>, <ol>, <li>, <blockquote>.
Alle themenfremden oder persönlichkeistverletzenden Beiträge werden gelöscht, also immer schön sachlich argumentieren.

schrieb: