Trusted Shop Kundenbewertungen über den RSS Feed auslesen

Trusted Shops bietet unter anderem die Möglichkeit Kundenbewertungen zu sammeln und stellt diese Bewertungen auch über einen RSS Feed bereit

Ich war nun auf der Suche nach einer Möglichkeit diese Bewertungen direkt auf einer Webseite anzuzeigen ohne das der Kunde dazu auf die Trusted Shop Webseite wechseln muss.

Der erste Schritt ist der automatische Download dieses RSS Feeds auf meinen Server da ich weder Trusted Shops noch jemanden anderes über die Besucher auf der Webseite informieren möchte.

In meinem Fall habe in den RSS Feed mit Hilfe von wget in ein lokales Verzeichnis geladen. Der Feed ändert sich nicht stündlich und eine tägliche Aktualisierung über cron reicht aus.

wget -O - http://www.trustedshops.com/api/ratings/v1/shopid.rss > trustedshop.xml

Der zweite Schritt ist das Auslesen dieses Feeds. Hier habe ich mir verschiedene Javascript Varianten angeschaut mit denen ich aber nicht ans Ziel gelangt bin. Am Ende habe ich aufgrund dieses Hinweises meinen “eigenen” Feedreader gebaut.

Diese HTML Datei zeigt den generellen Aufbau. Natürlich muss das Output noch angepasst werden und mit den gewünschten CSS Klassen versehen werden.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>RSS Reader</title>
<script type="text/javascript" src="jquery.js" charset="utf-8"></script>
</head>
<body>
<h1>Trusted Shop Feed Reader</h1>
<div id="feedContent"></div>
</body>
<script>
function get_rss_feed() {
$("#feedContent").empty();	
$.get('trustedshop.xml', function(d) {
	$(d).find('item').each(function() {
		var $item = $(this);
		var title = $item.find('title').text();
		var link = $item.find('link').text();
		var description = $item.find('description').text();
		var pubDate = $item.find('pubDate').text();
		var bewertung = $item.find('content\\:encoded').text();   // this one is important!!!!!
		var html = "<div class=\"entry\"><h2 class=\"postTitle\">" + title + "<\/h2>";
		html += "<em class=\"date\">" + pubDate + "</em>";
		html += "<p class=\"description\">" + description + "</p>";
		html += "<p class=\"description\">" + bewertung + "</p>";
		html += "<a href=\"" + link + "\" target=\"_blank\">Read More >><\/a><\/div>";
		$('#feedContent').append($(html));  
	});
});
};
</script>
<script>
$(document).ready(function() {get_rss_feed()});
</script>

</html>

Will man das also in einer Webseite verwenden braucht man nur das Div rssfeed an die richtige Stelle zu packen und das bisschen Javascript auszuführen.

Im dritten Schritt werde ich hier noch die CSS Klassen anpassen und das ganze in ein Bootstrap Carousel einbauen. Aber das kommt später.