Changeset 32
- Timestamp:
- 09/30/07 00:15:36 (6 years ago)
- Location:
- trackback
- Files:
-
- 9 modified
-
de.xml (modified) (1 diff)
-
en.xml (modified) (1 diff)
-
eventlistener.xml (modified) (1 diff)
-
files/lib/system/event/listener/ThreadAddFormTrackbackListener.class.php (modified) (6 diffs)
-
files/lib/system/event/listener/ThreadPageTrackbackListener.class.php (modified) (1 diff)
-
files/lib/util/TrackbackUtil.class.php (modified) (3 diffs)
-
install.sql (modified) (1 diff)
-
package.xml (modified) (2 diffs)
-
templates/postTrackbackSetting.tpl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trackback/de.xml
r29 r32 17 17 <category name="wbb.threadAdd"> 18 18 <item name="wbb.threadAdd.settings.hasTrackback"><![CDATA[Trackback aktivieren]]></item> 19 <item name="wbb.threadAdd.settings.hasTrackback.description"><![CDATA[ ]]></item>19 <item name="wbb.threadAdd.settings.hasTrackback.description"><![CDATA[Trackbacks erlauben ihnen automatisch Nachrichten und Backlinks auszutauschen. Optional können Sie Trackbacks direkt versenden.]]></item> 20 20 <item name="wbb.threadAdd.settings.trackbackUrls"><![CDATA[Trackbacks senden an]]></item> 21 21 <item name="wbb.threadAdd.settings.trackbackUrls.description"><![CDATA[Mehrere URLs trennen Sie bitte mit einem Zeilenumbruch.]]></item> -
trackback/en.xml
r29 r32 17 17 <category name="wbb.threadAdd"> 18 18 <item name="wbb.threadAdd.settings.hasTrackback"><![CDATA[activete trackbacks]]></item> 19 <item name="wbb.threadAdd.settings.hasTrackback.description"><![CDATA[ ]]></item>19 <item name="wbb.threadAdd.settings.hasTrackback.description"><![CDATA[Trackbacks allow you to automatically receive messages and backlinks. Optionally you can send trackbacks directly.]]></item> 20 20 <item name="wbb.threadAdd.settings.trackbackUrls"><![CDATA[send trackbacks to]]></item> 21 21 <item name="wbb.threadAdd.settings.trackbackUrls.description"><![CDATA[Please divide multiple urls with a linebreak.]]></item> -
trackback/eventlistener.xml
r1 r32 23 23 <eventclassname>ThreadAddForm</eventclassname> 24 24 <inherit>1</inherit> 25 <eventname> saved</eventname>25 <eventname>readData</eventname> 26 26 <listenerclassfile>lib/system/event/listener/ThreadAddFormTrackbackListener.class.php</listenerclassfile> 27 27 </eventlistener> 28 28 <eventlistener> 29 <eventclassname>PostEditForm</eventclassname> 30 <eventname>readData</eventname> 29 <eventclassname>ThreadAddForm</eventclassname> 30 <inherit>1</inherit> 31 <eventname>saved</eventname> 31 32 <listenerclassfile>lib/system/event/listener/ThreadAddFormTrackbackListener.class.php</listenerclassfile> 32 33 </eventlistener> -
trackback/files/lib/system/event/listener/ThreadAddFormTrackbackListener.class.php
r29 r32 20 20 protected $trackbackUrls = ""; 21 21 protected $trackbackUrlsOld = ""; 22 protected $trackbackData = ""; 22 23 23 protected $url, $title, $excerpt, $author; 24 24 … … 50 50 */ 51 51 protected function readData () { 52 if (!count($_POST)) { 53 $this->hasTrackback = $this->eventObj->post->hasTrackback; 54 $this->trackbackUrls = $this->eventObj->post->trackbackUrls; 55 56 // remember old trackback urls 57 $this->trackbackUrlsOld = $this->eventObj->post->trackbackUrls 58 } 52 $this->hasTrackback = $this->eventObj->post->hasTrackback; 53 $this->trackbackUrls = $this->eventObj->post->trackbackUrls; 54 $this->trackbackUrlsOld = $this->eventObj->post->trackbackUrls; 59 55 } 60 56 … … 65 61 if (isset($_REQUEST['hasTrackback'])) $this->hasTrackback = intval($_REQUEST['hasTrackback']); 66 62 if (isset($_REQUEST['trackbackUrls'])) $this->trackbackUrls = $_REQUEST['trackbackUrls']; 63 if (isset($_REQUEST['trackbackUrlsOld'])) $this->trackbackUrlsOld = $_REQUEST['trackbackUrlsOld']; 67 64 } 68 65 … … 73 70 WBBCore::getTPL()->assign(array( 74 71 'hasTrackback' => $this->hasTrackback, 75 'trackbackUrls' ,$this->trackbackUrls72 'trackbackUrls'=> $this->trackbackUrls 76 73 )); 77 74 WBBCore::getTPL()->append('additionalSettings', WBBCore::getTPL()->fetch('postTrackbackSetting')); … … 99 96 // send new trackbacks to given urls 100 97 $this->discoverNewTrackbacks(); 101 102 // prepare given urls for database usage103 $urls = addslashes($this->trackbackUrls);104 98 105 99 // UPDATE 106 100 $sql = "UPDATE wbb".WBB_N."_post 107 101 SET hasTrackback = {$this->hasTrackback}, 108 trackbackUrls = ' {$urls}'102 trackbackUrls = '".escapeString($this->trackbackUrls)."' 109 103 WHERE postID = {$postID};"; 110 104 … … 131 125 */ 132 126 private function discoverNewTrackbacks() { 127 $newlist = explode(' ', $this->trackbackUrls); 133 128 $oldlist = explode(' ', $this->trackbackUrlsOld); 134 129 135 130 // Trackback 136 131 $trackback = new TrackbackUtil(PAGE_TITLE, $this->author, CHARSET); 137 $tb_array = $trackback->auto_discovery($this->trackbackUrls);132 //$tb_array = $trackback->auto_discovery($this->eventObj->post->message); 138 133 139 134 // Found trackbacks in TEXT. Looping... 140 foreach($tb_array as $tb_key => $tb_url) { 141 142 // skip existing trackbacks 143 if(in_array($tb_url, $oldlist)) { 144 continue; 145 } 146 135 foreach(array_diff($newlist, $oldlist) as $tb_url) { 147 136 // Attempt to ping each new one... 148 137 $trackback->ping($tb_url, $this->url, $this->title, $this->excerpt); -
trackback/files/lib/system/event/listener/ThreadPageTrackbackListener.class.php
r29 r32 39 39 $excerpt = StringUtil::substring($row['firstPostPreview'],0,255); 40 40 $author = $row['username']; 41 $date = date("r", $row['time']);41 $date = date("r", intval($row['time'])); 42 42 $trackbackUrl = sprintf('index.php?action=Trackback&threadID=%d', $row['threadID']); 43 43 $url = $row['url']; 44 44 45 45 // Trackback 46 $trackback = new TrackbackUtil(PAGE_TITLE, $this->author, CHARSET);46 $trackback = new TrackbackUtil(PAGE_TITLE, WCF::getUser()->username, CHARSET); 47 47 $rdf = $trackback->rdf_autodiscover($date, $title, $excerpt, $url, $trackbackUrl, $author); 48 48 -
trackback/files/lib/util/TrackbackUtil.class.php
r29 r32 24 24 25 25 /** 26 * Sends a trackback ping to a specified trackback URL. 27 * allowing clients to auto-discover the TrackBack Ping URL. 28 * 29 * @param string $tb 30 * @param string $url 31 * @param string $title 32 * @param string $excerpt 33 * @return boolean 34 */ 35 public function ping($tb, $url, $title = "", $excerpt = "") { 36 $target = parse_url($tb); 37 if(!array_key_exists('path', $target)) { 38 $tb .= '/'; 39 } 40 41 @parent::ping($tb, $url, $title, $excerpt); 42 } 43 44 /** 26 45 * @param postIDs 27 * @return u46 * @return array 28 47 */ 29 public getPost($postIDs) {48 public function getPost($postIDs) { 30 49 if(!is_array($postIDs)) 31 50 $postIDs = array($postIDs); … … 36 55 LEFT JOIN wbb".WBB_N."_thread thread 37 56 ON (thread.threadID=post.threadID) 38 WHERE postID IN (". $postIDs."); ";57 WHERE postID IN (".implode(',', $postIDs)."); "; 39 58 40 59 $row = WCF::getDB()->getFirstRow($sql); 41 60 42 61 // build thread url 43 if($row && defined('SEO_ REWRITE_THREAD') && SEO_REWRITE_THREAD && file_exists(WCF_DIR.'lib/page/PublicSEORewriter.class.php')) {62 if($row && defined('SEO_ENABLED') && SEO_ENABLED && defined('SEO_REWRITE_THREAD') && SEO_REWRITE_THREAD && file_exists(WCF_DIR.'lib/page/PublicSEORewriter.class.php')) { 44 63 require_once(WCF_DIR.'lib/page/PublicSEORewriter.class.php'); 45 64 $rewriter = new PublicSEORewriter(); … … 49 68 50 69 // public seo rewriter use 51 return$rewriter->publicParseThreadURLs($row['threadID'], '');70 $row['url'] = $rewriter->publicParseThreadURLs($row['threadID'], ''); 52 71 } 53 72 else if($row) { 54 returnsprintf('index.php?page=Thread&threadID=%d', $row['threadID']);73 $row['url'] = sprintf('index.php?page=Thread&threadID=%d', $row['threadID']); 55 74 } 56 75 -
trackback/install.sql
r29 r32 12 12 errorCount tinyint(1) unsigned NOT NULL, 13 13 isSpam tinyint(1) unsigned NOT NULL, 14 PRIMARY KEY ( threadID, url)14 PRIMARY KEY (postID, url) 15 15 ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 16 16 -
trackback/package.xml
r29 r32 5 5 <packagename>Trackback</packagename> 6 6 <packagedescription>Allow trackback for posts</packagedescription> 7 <version>0.0. 2</version>7 <version>0.0.3</version> 8 8 <date>DATE</date> 9 9 <plugin>com.woltlab.wbb</plugin> … … 21 21 22 22 <optionalpackages> 23 <optionalpackage file="optionals/de.easy-coding.wcf.data.page.publicseorewriter.tar.gz" >de.easy-coding.wcf.data.page.publicseorewriter</optionalpackage>23 <optionalpackage file="optionals/de.easy-coding.wcf.data.page.publicseorewriter.tar.gz" minversion="1.0.1">de.easy-coding.wcf.data.page.publicseorewriter</optionalpackage> 24 24 </optionalpackages> 25 25 -
trackback/templates/postTrackbackSetting.tpl
r29 r32 1 1 {if $this->user->getPermission('user.board.canTrackback')} 2 <div class="formCheckBox">3 2 <div class="formField"> 4 <label><input type="checkbox" name="hasTrackback" value="1" {if $hasTrackback == 1}checked="checked" {/if}/> {lang}wbb.threadAdd.settings.hasTrackback{/lang}</label> 3 <label><input type="checkbox" onchange="document.getElementById('trackbackSetting').style.display = (this.checked?'block':'none');" name="hasTrackback" value="1" {if $hasTrackback}checked="checked" {/if}/> {lang}wbb.threadAdd.settings.hasTrackback{/lang}</label> 4 5 5 </div> 6 6 <div class="formFieldDesc"> 7 7 {lang}wbb.threadAdd.settings.hasTrackback.description{/lang} 8 8 </div> 9 </div>10 9 11 <div class="formElement"> 12 <div class="formFieldLabel"> 13 <label for="trackbackUrls">{lang}wbb.threadAdd.settings.trackbackUrls{/lang}</label> 10 <div id="trackbackSetting" {if !$hasTrackback}style="display:none"{/if}> 11 <div class="formField"> 12 13 </div> 14 <div class="formFieldDesc"> 15 <input type="hidden" name="trackbackUrls" value="{$trackbackUrls}" /> 16 <textarea name="trackbackUrls" id="trackbackUrls" rows="3" cols="20">{$trackbackUrls}</textarea><br /> 17 <p>{lang}wbb.threadAdd.settings.trackbackUrls{/lang} - {lang}wbb.threadAdd.settings.trackbackUrls.description{/lang}</p> 18 </div> 14 19 </div> 15 16 <div class="formField">17 <textarea name="trackbackUrls" id="trackbackUrls" rows="3" cols="20">{@$trackbackUrls}</textarea>18 </div>19 <div class="formFieldDesc">20 <p>{lang}wbb.threadAdd.settings.trackbackUrls.description{/lang}</p>21 </div>22 </div>23 20 {/if}
