<?php
// WCF includes
require_once(WCF_DIR.'lib/system/event/EventListener.class.php');

// Utils
require_once(WBB_DIR.'lib/util/TrackbackUtil.class.php');

/**
 * Loads the trackback data for the Threadpage
 *
 * @author	Torben Brodt
 * @package	de.easy-coding.wbb.trackback
 * @license	GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
 */
class ThreadPageTrackbackListener implements EventListener {

	/**
	 * @see EventListener::execute()
	 * @param ThreadPage $eventObj
	 */
	public function execute($eventObj, $className, $eventName) {
		$postTrackbacks = array();

		// foreign trackbacks
		$sql = "SELECT		title, excerpt, url, blog_name
			FROM		wbb".WBB_N."_trackback
			WHERE 		postID IN (".$eventObj->postList->postIDs."); ";

		$rows = WBBCore::getDB()->sendQuery($sql);
		while ($row = WBBCore::getDB()->fetchArray($rows)) {
			$postTrackbacks[$row['postID']] = $row;
		}
		
		// fetch data
		$row = TrackbackUtil::getPost($eventObj->postList->postIDs);

		// assign basic data
		$title = $row['topic'];
		$excerpt = StringUtil::substring($row['firstPostPreview'],0,255);
		$author = $row['username'];
		$date = date("r", intval($row['time']));
		$trackbackUrl = sprintf('index.php?action=Trackback&threadID=%d', $row['threadID']);
		$url = $row['url'];

		// Trackback
		$trackback = new TrackbackUtil(PAGE_TITLE, WCF::getUser()->username, CHARSET);
		$rdf = $trackback->rdf_autodiscover($date, $title, $excerpt, $url, $trackbackUrl, $author);

		WBBCore::getTPL()->assign(array(
			'postTrackbacks' => $postTrackbacks,
			'autodiscover'=> $rdf
		));
	}
}
?>
