Changeset 1044
- Timestamp:
- 01/20/08 19:23:29 (11 months ago)
- Files:
-
- trunk/bb-admin/rewrite-rules.php (modified) (1 diff)
- trunk/bb-includes/deprecated.php (modified) (1 diff)
- trunk/bb-includes/template-functions.php (modified) (3 diffs)
- trunk/rss.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/bb-admin/rewrite-rules.php
r980 r1044 30 30 RewriteRule ^view/([^/]+)/?$ <?php bb_option( 'path' ); ?>view.php?view=$1 [L,QSA] 31 31 RewriteRule ^rss/?$ <?php bb_option( 'path' ); ?>rss.php [L,QSA] 32 RewriteRule ^rss/topics/?$ <?php bb_option( 'path' ); ?>rss.php?topics=1 [L,QSA] 32 33 RewriteRule ^rss/forum/([^/]+)/?$ <?php bb_option( 'path' ); ?>rss.php?forum=$1 [L,QSA] 34 RewriteRule ^rss/forum/([^/]+)/topics/?$ <?php bb_option( 'path' ); ?>rss.php?forum=$1&topics=1 [L,QSA] 33 35 RewriteRule ^rss/topic/([^/]+)/?$ <?php bb_option( 'path' ); ?>rss.php?topic=$1 [L,QSA] 34 36 RewriteRule ^rss/tags/([^/]+)/?$ <?php bb_option( 'path' ); ?>rss.php?tag=$1 [L,QSA] trunk/bb-includes/deprecated.php
r1007 r1044 531 531 } 532 532 533 // Old RSS related functions 534 function get_recent_rss_link() { 535 return bb_get_posts_rss_link(); 536 } 537 538 function forum_rss_link( $forum_id = 0 ) { 539 echo bb_get_forum_posts_rss_link( $forum_id ); 540 } 541 542 function get_forum_rss_link( $forum_id = 0 ) { 543 return bb_get_forum_posts_rss_link( $forum_id ); 544 } 545 533 546 ?> trunk/bb-includes/template-functions.php
r1040 r1044 346 346 347 347 function bb_feed_head() { 348 $feed_link = ''; 349 if ( is_topic() ) 350 $feed_link = '<link rel="alternate" type="application/rss+xml" title="' . attribute_escape( sprintf( __('Topic: %s'), get_topic_title() ) ) . '" href="' . attribute_escape( get_topic_rss_link() ) . '" />'; 351 elseif ( is_bb_tag() ) 352 $feed_link = '<link rel="alternate" type="application/rss+xml" title="' . attribute_escape( sprintf( __('Tag: %s'), bb_get_tag_name() ) ) . '" href="' . attribute_escape( bb_get_tag_rss_link() ) . '" />'; 353 elseif ( is_forum() ) 354 $feed_link = '<link rel="alternate" type="application/rss+xml" title="' . attribute_escape( sprintf( __('Forum: %s'), get_forum_name() ) ) . '" href="' . attribute_escape( get_forum_rss_link() ) . '" />'; 355 elseif ( is_front() ) 356 $feed_link = '<link rel="alternate" type="application/rss+xml" title="' . attribute_escape( __('Recent Posts') ) . '" href="' . attribute_escape( get_recent_rss_link() ) . '" />'; 357 echo apply_filters('bb_feed_head', $feed_link); 358 } 359 360 function get_recent_rss_link() { 348 349 $feeds = array(); 350 351 switch (bb_get_location()) { 352 case 'topic-page': 353 $feeds[] = array( 354 'title' => sprintf(__('Topic: %s'), get_topic_title()), 355 'href' => get_topic_rss_link() 356 ); 357 break; 358 359 case 'tag-page': 360 if (is_bb_tag()) { 361 $feeds[] = array( 362 'title' => sprintf(__('Tag: %s'), bb_get_tag_name()), 363 'href' => bb_get_tag_rss_link() 364 ); 365 } 366 break; 367 368 case 'forum-page': 369 $feeds[] = array( 370 'title' => sprintf(__('Forum: %s - Recent Posts'), get_forum_name()), 371 'href' => get_forum_rss_link() 372 ); 373 $feeds[] = array( 374 'title' => sprintf(__('Forum: %s - Recent Topics'), get_forum_name()), 375 'href' => bb_get_forum_topics_rss_link() 376 ); 377 break; 378 379 case 'front-page': 380 $feeds[] = array( 381 'title' => __('Recent Posts'), 382 'href' => bb_get_posts_rss_link() 383 ); 384 $feeds[] = array( 385 'title' => __('Recent Topics'), 386 'href' => bb_get_topics_rss_link() 387 ); 388 break; 389 } 390 391 if (count($feeds)) { 392 $feed_links = array(); 393 foreach ($feeds as $feed) { 394 $link = '<link rel="alternate" type="application/rss+xml" '; 395 $link .= 'title="' . attribute_escape($feed['title']) . '" '; 396 $link .= 'href="' . attribute_escape($feed['href']) . '" />'; 397 $feed_links[] = $link; 398 } 399 $feed_links = join("\n", $feed_links); 400 } else { 401 $feed_links = ''; 402 } 403 404 echo apply_filters('bb_feed_head', $feed_links); 405 } 406 407 function bb_get_posts_rss_link() { 361 408 if ( bb_get_option( 'mod_rewrite' ) ) 362 409 $link = bb_get_option( 'uri' ) . 'rss/'; 363 410 else 364 411 $link = bb_get_option( 'uri' ) . "rss.php"; 365 return apply_filters( 'get_recent_rss_link', $link ); 412 return apply_filters( 'bb_get_posts_rss_link', $link ); 413 } 414 415 function bb_get_topics_rss_link() { 416 if ( bb_get_option( 'mod_rewrite' ) ) 417 $link = bb_get_option( 'uri' ) . 'rss/topics'; 418 else 419 $link = bb_get_option( 'uri' ) . "rss.php?topics=1"; 420 return apply_filters( 'bb_get_topics_rss_link', $link ); 366 421 } 367 422 … … 467 522 } 468 523 469 function forum_rss_link( $forum_id = 0 ) {470 echo apply_filters(' forum_rss_link', get_forum_rss_link( $forum_id ) );471 } 472 473 function get_forum_rss_link( $forum_id = 0 ) {524 function bb_forum_posts_rss_link( $forum_id = 0 ) { 525 echo apply_filters('bb_forum_posts_rss_link', bb_get_forum_posts_rss_link( $forum_id ) ); 526 } 527 528 function bb_get_forum_posts_rss_link( $forum_id = 0 ) { 474 529 $forum = get_forum( get_forum_id( $forum_id ) ); 475 530 if ( bb_get_option('mod_rewrite') ) … … 478 533 $link = bb_get_option('uri') . "rss.php?forum=$forum->forum_id"; 479 534 480 return apply_filters( 'get_forum_rss_link', $link, $forum_id ); 535 return apply_filters( 'bb_get_forum_posts_rss_link', $link, $forum_id ); 536 } 537 538 function bb_forum_topics_rss_link( $forum_id = 0 ) { 539 echo apply_filters('bb_forum_topics_rss_link', bb_get_forum_topics_rss_link( $forum_id ) ); 540 } 541 542 function bb_get_forum_topics_rss_link( $forum_id = 0 ) { 543 $forum = get_forum( get_forum_id( $forum_id ) ); 544 if ( bb_get_option('mod_rewrite') ) 545 $link = bb_get_option('uri') . "rss/forum/$forum->forum_id/topics"; 546 else 547 $link = bb_get_option('uri') . "rss.php?forum=$forum->forum_id&topics=1"; 548 549 return apply_filters( 'bb_get_forum_topics_rss_link', $link, $forum_id ); 481 550 } 482 551 trunk/rss.php
r939 r1044 3 3 require_once( BBPATH . BBINC . 'feed-functions.php'); 4 4 5 if ( isset($_GET['topic']) ) 6 $topic_id = (int) $_GET['topic']; 7 elseif ( 'topic' == get_path() ) 8 $topic_id = (int) get_path(2); 5 // Determine the type of feed and the id of the object 6 if ( isset($_GET['topic']) || get_path() == 'topic' ) { 7 8 // Topic 9 $feed = 'topic'; 10 $feed_id = isset($_GET['topic']) ? $_GET['topic'] : get_path(2); 11 12 } elseif ( isset($_GET['profile']) || get_path() == 'profile' ) { 13 14 // Profile 15 $feed = 'profile'; 16 $feed_id = isset($_GET['profile']) ? $_GET['profile'] : get_path(2); 17 18 } elseif ( isset($_GET['tag']) || get_path() == 'tag' ) { 19 20 // Tag 21 $feed = 'tag'; 22 $feed_id = isset($_GET['tag']) ? $_GET['tag'] : get_path(2); 23 24 } elseif ( isset($_GET['forum']) || get_path() == 'forum' ) { 25 26 if ( isset($_GET['topics']) || get_path(3) == 'topics' ) { 27 // Forum recent topics 28 $feed = 'forum-topics'; 29 } else { 30 // Forum recent posts 31 $feed = 'forum-posts'; 32 } 33 $feed_id = isset($_GET['forum']) ? $_GET['forum'] : get_path(2); 34 35 } elseif ( isset($_GET['topics']) || get_path() == 'topics' ) { 36 37 // Recent topics 38 $feed = 'all-topics'; 39 40 } else { 41 42 // Recent posts 43 $feed = 'all-posts'; 44 45 } 9 46 10 elseif ( isset($_GET['profile']) ) 11 $user_id = (int) $_GET['profile']; 12 elseif ( 'profile' == get_path() ) 13 $user_id = (int) get_path(2); 14 15 elseif ( isset($_GET['tag']) ) 16 $tag = $_GET['tag']; 17 elseif ( 'tags' == get_path() ) 18 $tag = get_path(2); 19 20 elseif ( isset($_GET['forum']) ) 21 $forum_id = (int) $_GET['forum']; 22 elseif ( 'forum' == get_path() ) 23 $forum_id = (int) get_path(2); 24 47 // Initialise the override variable 25 48 $bb_db_override = false; 26 49 do_action( 'bb_rss.php_pre_db', '' ); 27 50 28 if ( !$bb_db_override ) : 29 if ( isset($topic_id) ) { 30 if ( !$topic = get_topic ( $topic_id ) ) 31 die(); 32 if ( !$posts = get_thread( $topic_id, 0, 1 ) ) 33 die(); 34 $title = wp_specialchars( bb_get_option( 'name' ) . ' ' . __('Topic') . ': ' . get_topic_title() ); 35 } elseif ( isset($user_id) ) { 36 if ( !$user = bb_get_user( $user_id ) ) 37 die(); 38 if ( !$posts = get_user_favorites( $user->ID ) ) 39 die(); 40 $title = wp_specialchars( bb_get_option( 'name' ) . ' ' . __('User Favorites') . ': ' . $user->user_login ); 41 } elseif ( isset($tag) ) { 42 if ( !$tag = bb_get_tag_by_name($tag) ) 43 die(); 44 if ( !$posts = get_tagged_topic_posts( $tag->tag_id, 0 ) ) 45 die(); 46 $title = wp_specialchars( bb_get_option( 'name' ) . ' ' . __('Tag') . ': ' . bb_get_tag_name() ); 47 } elseif ( isset($forum_id) ) { 48 if ( !$posts = get_latest_forum_posts( $forum_id ) ) 49 die(); 50 $title = wp_specialchars( bb_get_option( 'name' ) ) . ' ' . __('Forum') . ': ' . get_forum_name( $forum_id ); 51 } else { 52 if ( !$posts = get_latest_posts( 35 ) ) 53 die(); 54 $title = wp_specialchars( bb_get_option( 'name' ) ) . ': ' . __('Last 35 Posts'); 51 if ( !$bb_db_override ) { 52 53 // Get the posts and the title for the given feed 54 switch ($feed) { 55 case 'topic': 56 if ( !$topic = get_topic ( $feed_id ) ) 57 die(); 58 if ( !$posts = get_thread( $feed_id, 0, 1 ) ) 59 die(); 60 $title = wp_specialchars( bb_get_option( 'name' ) . ' ' . __('Topic') . ': ' . get_topic_title() ); 61 break; 62 63 case 'profile': 64 if ( !$user = bb_get_user( $feed_id ) ) 65 if ( !$user = bb_get_user_by_name( $feed_id ) ) 66 die(); 67 if ( !$posts = get_user_favorites( $user->ID ) ) 68 die(); 69 $title = wp_specialchars( bb_get_option( 'name' ) . ' ' . __('User Favorites') . ': ' . $user->user_login ); 70 break; 71 72 case 'tag': 73 if ( !$tag = bb_get_tag_by_name( $feed_id ) ) 74 die(); 75 if ( !$posts = get_tagged_topic_posts( $tag->tag_id, 0 ) ) 76 die(); 77 $title = wp_specialchars( bb_get_option( 'name' ) . ' ' . __('Tag') . ': ' . bb_get_tag_name() ); 78 break; 79 80 case 'forum-topics': 81 if ( !$topics = get_latest_topics( $feed_id ) ) 82 die(); 83 84 $posts = array(); 85 foreach ($topics as $topic) { 86 $posts[] = bb_get_first_post($topic->topic_id); 87 } 88 89 $title = wp_specialchars( bb_get_option( 'name' ) ) . ': ' . __('Forum') . ': ' . get_forum_name( $feed_id ) . ' - ' . __('Recent Topics'); 90 break; 91 92 case 'forum-posts': 93 if ( !$posts = get_latest_forum_posts( $feed_id ) ) 94 die(); 95 $title = wp_specialchars( bb_get_option( 'name' ) ) . ': ' . __('Forum') . ': ' . get_forum_name( $feed_id ) . ' - ' . __('Recent Posts'); 96 break; 97 98 // Get just the first post from the latest topics 99 case 'all-topics': 100 if ( !$topics = get_latest_topics() ) 101 die(); 102 103 $posts = array(); 104 foreach ($topics as $topic) { 105 $posts[] = bb_get_first_post($topic->topic_id); 106 } 107 108 $title = wp_specialchars( bb_get_option( 'name' ) ) . ': ' . __('Recent Topics'); 109 break; 110 111 // Get latest posts by default 112 case 'all-posts': 113 default: 114 if ( !$posts = get_latest_posts( 35 ) ) 115 die(); 116 $title = wp_specialchars( bb_get_option( 'name' ) ) . ': ' . __('Recent Posts'); 117 break; 118 } 55 119 } 56 endif;57 120 58 121 do_action( 'bb_rss.php', '' );