Changeset 138
- Timestamp:
- 12/25/07 16:17:35 (5 years ago)
- Location:
- trackback
- Files:
-
- 7 modified
-
de.xml (modified) (1 diff)
-
en.xml (modified) (1 diff)
-
files/lib/system/event/listener/ThreadAddFormTrackbackListener.class.php (modified) (2 diffs)
-
files/lib/system/event/listener/ThreadPageTrackbackListener.class.php (modified) (1 diff)
-
files/lib/util/TrackbackUtil.class.php (modified) (10 diffs)
-
package.xml (modified) (1 diff)
-
templates/postTrackback.tpl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trackback/de.xml
r34 r138 18 18 <item name="wbb.thread.post.trackback.excerpt"><![CDATA[Ausschnitt]]></item> 19 19 <item name="wbb.thread.post.trackback.url"><![CDATA[URL]]></item> 20 <item name="wbb.thread.post.trackback.active"><![CDATA[Track- und Pingbacks sind fÃŒr diesen Beitrag aktiviert.]]></item> 20 21 </category> 21 22 -
trackback/en.xml
r34 r138 18 18 <item name="wbb.thread.post.trackback.excerpt"><![CDATA[Excerpt]]></item> 19 19 <item name="wbb.thread.post.trackback.url"><![CDATA[URL]]></item> 20 <item name="wbb.thread.post.trackback.active"><![CDATA[You can add track- und pingbacks to this posting.]]></item> 20 21 </category> 21 22 -
trackback/files/lib/system/event/listener/ThreadAddFormTrackbackListener.class.php
r136 r138 88 88 } 89 89 90 // send trackbacks91 $this->sendTrackbackData($postID);92 93 90 // UPDATE 94 91 $sql = "UPDATE wbb".WBB_N."_post … … 97 94 98 95 WBBCore::getDB()->sendQuery($sql); 96 97 // send trackbacks 98 if($this->hasTrackback) { 99 $this->sendTrackbackData($postID); 100 } 99 101 } 100 102 -
trackback/files/lib/system/event/listener/ThreadPageTrackbackListener.class.php
r136 r138 42 42 43 43 // assign trackback data 44 WBBCore::getTPL()->assign( 45 'postTrackbacks' ,46 $postTrackbacks47 ) ;44 WBBCore::getTPL()->assign(array( 45 'postTrackbacks'=>$postTrackbacks, 46 'hasTrackbacks'=>array_flip(array_map(create_function('$a', 'return $a->getID();'), $check)) 47 )); 48 48 49 49 // append head data for rdf information -
trackback/files/lib/util/TrackbackUtil.class.php
r137 r138 54 54 */ 55 55 public static function getRDF($postPermalink, $postID, $postTopic, $postPreview, $postUsername, $postTime) { 56 $postPermalink = html_entity_decode($postPermalink); 56 57 $page_url = FileUtil::addTrailingSlash(PAGE_URL); 57 58 return '<link rel="pingback" href="'.$page_url.'index.php?action=Pingback" /> … … 63 64 rdf:about="'.$postPermalink.'" 64 65 dc:identifier="'.$postPermalink.'" 65 trackback:ping="index.php?action=Trackback& amp;postID='.$postID.'"66 trackback:ping="index.php?action=Trackback&postID='.$postID.'" 66 67 dc:title="'.$postTopic.'" 67 68 dc:subject="TrackBack" … … 177 178 protected static function discover_pingback_uri($url, &$contents) { 178 179 $pingbacks = array(); // return var 179 180 180 181 $byte_count = 0; 182 $contents = ''; 181 183 $headers = ''; 182 184 $pingback_str_dquote = 'rel="pingback"'; … … 185 187 $pingback_href_original_pos = 27; 186 188 187 // parse url 188 $parse = parse_url($url); 189 $host = (isset($parse['host'])) ? $parse['host'] : null; 190 $path = (isset($parse['path'])) ? $parse['path'] : '/'; 191 $path .= (isset($parse['query'])) ? "?".$parse['query'] : ''; 192 $port = (isset($parse['port'])) ? $parse['port'] : 80; 189 extract(parse_url($url), EXTR_SKIP); 190 191 if ( !isset($host) ) // Not an URL. This should never happen. 192 return false; 193 194 $path = ( !isset($path) ) ? '/' : $path; 195 $path .= ( isset($query) ) ? '?' . $query : ''; 196 $port = ( isset($port) ) ? $port : 80; 193 197 194 198 // Try to connect to the server at $host … … 198 202 199 203 // Send the GET request 200 $request = "GET {$path} HTTP/1.1\r\nHost: $host\r\nUser-Agent: {self::agent} \r\n\r\n"; 204 $request = "GET $path HTTP/1.1\r\nHost: $host\r\nUser-Agent: ".self::$agent." \r\n\r\n"; 205 // ob_end_flush(); 201 206 fputs($fp, $request); 202 207 … … 204 209 while ( !feof($fp) ) { 205 210 $line = fgets($fp, 512); 206 if (trim($line) == '') //empty line = headers complete211 if ( trim($line) == '' ) 207 212 break; 208 209 213 $headers .= trim($line)."\n"; 210 214 $x_pingback_header_offset = strpos(strtolower($headers), $x_pingback_str); 211 212 if($x_pingback_header_offset) { 215 if ( $x_pingback_header_offset ) { 213 216 // We got it! 214 217 preg_match('#x-pingback: (.+)#is', $headers, $matches); 215 218 $pingbacks[] = trim($matches[1]); 219 return $pingbacks; 216 220 } 217 218 if(strpos(strtolower($headers), 'content-type: ')) { 221 if ( strpos(strtolower($headers), 'content-type: ') ) { 219 222 preg_match('#content-type: (.+)#is', $headers, $matches); 220 223 $content_type = trim($matches[1]); … … 230 233 $pingback_link_offset_dquote = strpos($contents, $pingback_str_dquote); 231 234 $pingback_link_offset_squote = strpos($contents, $pingback_str_squote); 232 if($pingback_link_offset_dquote || $pingback_link_offset_squote) { 233 $quote = ($pingback_link_offset_dquote) ? '"' : '\''; 234 $pingback_link_offset = ($quote=='"') ? $pingback_link_offset_dquote : $pingback_link_offset_squote; 235 $pingback_href_pos = @strpos($contents, 'href=', $pingback_link_offset); 236 $pingback_href_start = $pingback_href_pos+6; 237 $pingback_href_end = @strpos($contents, $quote, $pingback_href_start); 238 $pingback_server_url_len = $pingback_href_end - $pingback_href_start; 239 $pingback_server_url = substr($contents, $pingback_href_start, $pingback_server_url_len); 240 // We may find rel="pingback" but an incomplete pingback URL 241 if ( $pingback_server_url_len > 0 ) { 242 // We got it! 243 $pingbacks[] = $pingback_server_url; 244 } 235 if ( $pingback_link_offset_dquote || $pingback_link_offset_squote ) { 236 $quote = ($pingback_link_offset_dquote) ? '"' : '\''; 237 $pingback_link_offset = ($quote=='"') ? $pingback_link_offset_dquote : $pingback_link_offset_squote; 238 $pingback_href_pos = @strpos($contents, 'href=', $pingback_link_offset); 239 $pingback_href_start = $pingback_href_pos+6; 240 $pingback_href_end = @strpos($contents, $quote, $pingback_href_start); 241 $pingback_server_url_len = $pingback_href_end - $pingback_href_start; 242 $pingback_server_url = substr($contents, $pingback_href_start, $pingback_server_url_len); 243 // We may find rel="pingback" but an incomplete pingback URL 244 if ( $pingback_server_url_len > 0 ) // We got it! 245 $pingbacks[] = $pingback_server_url; 246 break; 245 247 } 246 248 $byte_count += strlen($line); 247 if ( $byte_count > self::$timeout_bytes ) {249 if ( $byte_count > $timeout_bytes ) { 248 250 // It's no use going further, there probably isn't any pingback 249 251 // server to find in this file. (Prevents loading large files.) … … 298 300 $client = new IXR_Client($pingbackurl); 299 301 $client->timeout = 3; 300 $client->useragent = self:: agent;302 $client->useragent = self::$agent; 301 303 302 304 // when set to true, this outputs debug messages by itself … … 305 307 // Already registered 306 308 if ($client->query('pingback.ping', $url, $alienurl) || (isset($client->error->code) && 48 == $client->error->code)) { 307 add_ping($post_ID, $ pagelinkedto);309 add_ping($post_ID, $alienurl); 308 310 } 309 311 } … … 357 359 );"; 358 360 359 WBBCore::getDB()->sendQuery($sql);361 @WBBCore::getDB()->sendQuery($sql); 360 362 } 361 363 } -
trackback/package.xml
r136 r138 6 6 <packagedescription>Allows sending and receiving from track- and pingbacks.</packagedescription> 7 7 <packagedescription languagecode="de">Das Plugin erlaubt das Senden und Empfangen von Track- und Pingbacks.</packagedescription> 8 <version>0.0. 5</version>8 <version>0.0.6</version> 9 9 <date>DATE</date> 10 10 <plugin>com.woltlab.wbb</plugin> -
trackback/templates/postTrackback.tpl
r136 r138 1 1 {assign var="trackbackPostID" value=$post->getID()} 2 {if $hasTrackbacks[$trackbackPostID]|isset} 3 {lang}wbb.thread.post.trackback.active{/lang} 4 {/if} 2 5 {if $postTrackbacks[$trackbackPostID]|isset} 3 6 <div class="trackbacks">
