| | 218 | |
| | 219 | function getTrackbackRSSTotal($blogid) { |
| | 220 | global $database, $serviceURL, $defaultURL, $blogURL, $blog, $service; |
| | 221 | |
| | 222 | if(empty($blogid)) $blogid = getBlogId(); |
| | 223 | |
| | 224 | $channel = array(); |
| | 225 | $channel['title'] = $blog['title']. ': '._text('최근 트랙백 목록'); |
| | 226 | $channel['link'] = "$defaultURL/"; |
| | 227 | $channel['description'] = $blog['description']; |
| | 228 | $channel['language'] = $blog['language']; |
| | 229 | $channel['pubDate'] = Timestamp::getRFC1123(); |
| | 230 | $channel['generator'] = TEXTCUBE_NAME . ' ' . TEXTCUBE_VERSION; |
| | 231 | |
| | 232 | if (!empty($blog['logo']) && file_exists(ROOT."/attach/$blogid/{$blog['logo']}")) { |
| | 233 | $logoInfo = getimagesize(ROOT."/attach/$blogid/{$blog['logo']}"); |
| | 234 | $channel['url'] = $serviceURL."/attach/".$blogid."/".$blog['logo']; |
| | 235 | $channel['width'] = $logoInfo[0]; |
| | 236 | $channel['height'] = $logoInfo[1]; |
| | 237 | } |
| | 238 | $result = getRecentTrackbacks($blogid, 20, true); |
| | 239 | if (!$result) |
| | 240 | $result = array(); |
| | 241 | |
| | 242 | $channel['items'] = array(); |
| | 243 | foreach($result as $row) { |
| | 244 | $trackbackURL = $defaultURL."/".$row['entry']."#trackback"; |
| | 245 | $content = htmlspecialchars($row['excerpt']); |
| | 246 | $item = array( |
| | 247 | 'id' => $row['id'], |
| | 248 | 'title' => $row['subject'], |
| | 249 | 'link' => $trackbackURL.$row['id'], |
| | 250 | 'categories' => array(), 'description' => $content, |
| | 251 | 'author' => '('.htmlspecialchars($row['site']).')', |
| | 252 | 'pubDate' => Timestamp::getRFC1123($row['written']), |
| | 253 | 'comments' => $trackbackURL, |
| | 254 | 'guid' => $trackbackURL |
| | 255 | ); |
| | 256 | array_push($channel['items'], $item); |
| | 257 | } |
| | 258 | $rss = array('channel' => $channel); |
| | 259 | return publishRSS($blogid, $rss); |
| | 260 | } |
| | 261 | |
| | 262 | function getTrackbackRSSByEntryId($blogid, $entryId) { |
| | 263 | global $database, $serviceURL, $defaultURL, $blogURL, $blog, $service; |
| | 264 | |
| | 265 | if(empty($blogid)) $blogid = getBlogId(); |
| | 266 | $entry = POD::queryRow("SELECT slogan, visibility, category FROM {$database['prefix']}Entries WHERE blogid = $blogid AND id = $entryId"); |
| | 267 | if(empty($entry)) return false; |
| | 268 | if($entry['visibility'] < 2) return false; |
| | 269 | if(in_array($entry['category'], getCategoryVisibilityList($blogid, 'private'))) return false; |
| | 270 | $channel = array(); |
| | 271 | $channel['title'] = $blog['title']. ': '._textf('%1 에 달린 트랙백',$entry['slogan']); |
| | 272 | if($blog['useSlogan']) { |
| | 273 | $channel['link'] = $defaultURL."/entry/".URL::encode($entry['slogan'],true); |
| | 274 | } else { |
| | 275 | $channel['link'] = $defaultURL."/".$entryId; |
| | 276 | } |
| | 277 | $channel['description'] = $blog['description']; |
| | 278 | $channel['language'] = $blog['language']; |
| | 279 | $channel['pubDate'] = Timestamp::getRFC1123(); |
| | 280 | $channel['generator'] = TEXTCUBE_NAME . ' ' . TEXTCUBE_VERSION; |
| | 281 | |
| | 282 | if (!empty($blog['logo']) && file_exists(ROOT."/attach/$blogid/{$blog['logo']}")) { |
| | 283 | $logoInfo = getimagesize(ROOT."/attach/$blogid/{$blog['logo']}"); |
| | 284 | $channel['url'] = $serviceURL."/attach/".$blogid."/".$blog['logo']; |
| | 285 | $channel['width'] = $logoInfo[0]; |
| | 286 | $channel['height'] = $logoInfo[1]; |
| | 287 | } |
| | 288 | $result = POD::queryAll("SELECT * |
| | 289 | FROM {$database['prefix']}Trackbacks |
| | 290 | WHERE blogid = ".$blogid." |
| | 291 | AND entry = ".$entryId." |
| | 292 | AND isFiltered = 0"); |
| | 293 | if (!$result) |
| | 294 | $result = array(); |
| | 295 | |
| | 296 | $channel['items'] = array(); |
| | 297 | |
| | 298 | foreach($result as $row) { |
| | 299 | $trackbackURL = $channel['link']."#trackback"; |
| | 300 | $content = htmlspecialchars($row['excerpt']); |
| | 301 | $item = array( |
| | 302 | 'id' => $row['id'], |
| | 303 | 'title' => $row['subject'], |
| | 304 | 'link' => $channel['link']."#trackback".$row['id'], |
| | 305 | 'categories' => array(), 'description' => $content, |
| | 306 | 'author' => '('.htmlspecialchars($row['site']).')', |
| | 307 | 'pubDate' => Timestamp::getRFC1123($row['written']), |
| | 308 | 'comments' => $trackbackURL, |
| | 309 | 'guid' => $trackbackURL |
| | 310 | ); |
| | 311 | array_push($channel['items'], $item); |
| | 312 | } |
| | 313 | $rss = array('channel' => $channel); |
| | 314 | return publishRSS($blogid, $rss); |
| | 315 | } |
| | 316 | |