ausgegeben. Als Basis für weitere Abfragen sollte der folgende Code reichen.
In meinem aktuellen Projekt gibt es mehrere gleich aussehende Module in denen unterschiedliche Funktionen stecken; daher verschachtele ich außerdem 2 Templates.
Code: Alles auswählen
<?php
# Variablen
$conf_TITLE = "Qype";//CMS_VALUE[0];
$conf_CSS_ID = "qype-box";//CMS_VALUE[1];
$conf_qId = "903354";//CMS_VALUE[2];
$conf_qKey = "INDIVIDUELL_ANFORDERN";//CMS_VALUE[3];
$conf_lang = "de";
$qSearch='http://api.qype.com/v1/places/'.$conf_qId.'/reviews/'.$conf_lang.'/?consumer_key='.$conf_qKey; //alle deutschen reviews abrufen
$qResult = simplexml_load_file($qSearch);
$qNumReviews = intval($qResult->total_entries); //Anzahl der Reviews
$qRevNum=rand(1,$qNumReviews); //Zufall
$usertext = $qResult->review[$qRevNum-1]->summary; //TesterText
$userlink = $qResult->review[$qRevNum-1]->link[1]->attributes()->href; //TesterTextLink
$userlink=str_replace("qype.co.uk","qype.com",$userlink); //Workaround
$res = $qResult->xpath("review/rating"); //Sterndurchschnitt errechnen
foreach($res as $boo){$sum+=$boo;}
$stars=ceil(intval($sum)/intval($qNumReviews));
/* Ausgabe generieren */
$usertext=preg_replace("/[^ ]*$/", '', substr($usertext, 0, 100)); //auf Wortende kürzen
$usertext='<a href="'.$userlink.'" title="ganzen Beitrag auf qype.com lesen" target="_blank">'.$usertext."...</a>";
$tplContent = new template();
$tplContainer = new template();
$tplContent->set("s", "TEXT",$usertext);
$tplContent->set("s", "STARS",intval($stars));
$content=$tplContent->generate($cfgClient[$client]["path"]["frontend"] . "templates/qype.html", true); //Ergebnis des Modulinhalts zwischenspeichern
$tplContainer->set("s", "TITLE", $conf_TITLE);
$tplContainer->set("s", "CSS_ID", $conf_CSS_ID);
$tplContainer->set("s", "CONTENT", $content);
$tplContainer->generate($cfgClient[$client]['tpl']['path'].'mContainer.html', false); //Element ausgeben
?>