root/trackback/files/lib/system/event/listener/ThreadPageTrackbackListener.class.php @ 32

Revision 32, 1.6 kB (checked in by d0nut, 6 years ago)

updated trackback to 0.3.
new trackbacks are sent correctly, old trackbacks are not repeated.

  • Property svn:executable set to *
Line 
1<?php
2// WCF includes
3require_once(WCF_DIR.'lib/system/event/EventListener.class.php');
4
5// Utils
6require_once(WBB_DIR.'lib/util/TrackbackUtil.class.php');
7
8/**
9 * Loads the trackback data for the Threadpage
10 *
11 * @author      Torben Brodt
12 * @package     de.easy-coding.wbb.trackback
13 * @license     GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
14 */
15class ThreadPageTrackbackListener implements EventListener {
16
17        /**
18         * @see EventListener::execute()
19         * @param ThreadPage $eventObj
20         */
21        public function execute($eventObj, $className, $eventName) {
22                $postTrackbacks = array();
23
24                // foreign trackbacks
25                $sql = "SELECT          title, excerpt, url, blog_name
26                        FROM            wbb".WBB_N."_trackback
27                        WHERE           postID IN (".$eventObj->postList->postIDs."); ";
28
29                $rows = WBBCore::getDB()->sendQuery($sql);
30                while ($row = WBBCore::getDB()->fetchArray($rows)) {
31                        $postTrackbacks[$row['postID']] = $row;
32                }
33               
34                // fetch data
35                $row = TrackbackUtil::getPost($eventObj->postList->postIDs);
36
37                // assign basic data
38                $title = $row['topic'];
39                $excerpt = StringUtil::substring($row['firstPostPreview'],0,255);
40                $author = $row['username'];
41                $date = date("r", intval($row['time']));
42                $trackbackUrl = sprintf('index.php?action=Trackback&threadID=%d', $row['threadID']);
43                $url = $row['url'];
44
45                // Trackback
46                $trackback = new TrackbackUtil(PAGE_TITLE, WCF::getUser()->username, CHARSET);
47                $rdf = $trackback->rdf_autodiscover($date, $title, $excerpt, $url, $trackbackUrl, $author);
48
49                WBBCore::getTPL()->assign(array(
50                        'postTrackbacks' => $postTrackbacks,
51                        'autodiscover'=> $rdf
52                ));
53        }
54}
55?>
Note: See TracBrowser for help on using the browser.