Qype-Teaser mit Template im Template

Gesperrt
wuselmann
Beiträge: 35
Registriert: Mi 19. Okt 2005, 11:24
Wohnort: Hamburg
Kontaktdaten:

Qype-Teaser mit Template im Template

Beitrag von wuselmann »

Dieses Modul ruft über die Qype-API Daten für einen Eintrag ab. Da es sich um einen Teaser handelt werden aktuell lediglich ein zufälliger gekürzter Beitrag & die durchschnittliche Anzahl von Sternen
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

?>
Gesperrt