Skip to:
Content

Changeset 1045


Ignore:
Timestamp:
01/20/08 20:33:31 (6 years ago)
Author:
sambauers
Message:

RSS for views, RSS happy down a the ranch. Fixes #703

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/bb-admin/rewrite-rules.php

    r1044 r1045  
    3636RewriteRule ^rss/tags/([^/]+)/?$ <?php bb_option( 'path' ); ?>rss.php?tag=$1 [L,QSA] 
    3737RewriteRule ^rss/profile/([^/]+)/?$ <?php bb_option( 'path' ); ?>rss.php?profile=$1 [L,QSA] 
     38RewriteRule ^rss/view/([^/]+)/?$ <?php bb_option( 'path' ); ?>rss.php?view=$1 [L,QSA] 
    3839</IfModule> 
  • trunk/bb-includes/functions.php

    r1041 r1045  
    20802080} 
    20812081 
    2082 function bb_register_view( $view, $title, $query_args = '' ) { 
     2082function bb_register_view( $view, $title, $query_args = '', $feed = TRUE ) { 
    20832083    global $bb_views; 
    20842084 
     
    20972097    $bb_views[$view]['query']  = $query_args; 
    20982098    $bb_views[$view]['sticky'] = !$sticky_set; // No sticky set => split into stickies and not 
     2099    $bb_views[$view]['feed'] = $feed; 
    20992100    return $bb_views[$view]; 
    21002101} 
  • trunk/bb-includes/template-functions.php

    r1044 r1045  
    387387            ); 
    388388            break; 
     389         
     390        case 'view-page': 
     391            global $bb_views, $view; 
     392            if ($bb_views[$view]['feed']) { 
     393                $feeds[] = array( 
     394                    'title' => get_view_name(), 
     395                    'href'  => bb_get_view_rss_link() 
     396                ); 
     397            } 
     398            break; 
    389399    } 
    390400     
     
    409419        $link = bb_get_option( 'uri' ) . 'rss/'; 
    410420    else 
    411         $link = bb_get_option( 'uri' ) . "rss.php"; 
     421        $link = bb_get_option( 'uri' ) . 'rss.php'; 
    412422    return apply_filters( 'bb_get_posts_rss_link', $link ); 
    413423} 
     
    417427        $link = bb_get_option( 'uri' ) . 'rss/topics'; 
    418428    else 
    419         $link = bb_get_option( 'uri' ) . "rss.php?topics=1"; 
     429        $link = bb_get_option( 'uri' ) . 'rss.php?topics=1'; 
    420430    return apply_filters( 'bb_get_topics_rss_link', $link ); 
     431} 
     432 
     433function bb_get_view_rss_link() { 
     434    global $view; 
     435    if ( bb_get_option( 'mod_rewrite' ) ) 
     436        $link = bb_get_option( 'uri' ) . 'rss/view/' . $view; 
     437    else 
     438        $link = bb_get_option( 'uri' ) . 'rss.php?view=' . $view; 
     439    return apply_filters( 'bb_get_view_rss_link', $link ); 
    421440} 
    422441 
  • trunk/rss.php

    r1044 r1045  
    44 
    55// Determine the type of feed and the id of the object 
    6 if ( isset($_GET['topic']) || get_path() == 'topic' ) { 
     6if ( isset($_GET['view']) || get_path() == 'view' ) { 
     7     
     8    // View 
     9    $feed = 'view'; 
     10    $feed_id = isset($_GET['view']) ? $_GET['view'] : get_path(2); 
     11     
     12} elseif ( isset($_GET['topic']) || get_path() == 'topic' ) { 
    713     
    814    // Topic 
     
    5359    // Get the posts and the title for the given feed 
    5460    switch ($feed) { 
     61        case 'view': 
     62            if ( !isset($bb_views[$feed_id]) ) 
     63                die(); 
     64            if ( !$bb_views[$feed_id]['feed'] ) 
     65                die(); 
     66            if ( !$topics_object = new BB_Query( 'topic', $bb_views[$feed_id]['query'], "bb_view_$view" ) ) 
     67                die(); 
     68             
     69            $topics = $topics_object->results; 
     70            if ( !$topics || !is_array($topics) ) 
     71                die(); 
     72             
     73            $posts = array(); 
     74            foreach ($topics as $topic) { 
     75                $posts[] = bb_get_first_post($topic->topic_id); 
     76            } 
     77             
     78            $title = $bb_views[$feed_id]['title']; 
     79            break; 
     80         
    5581        case 'topic': 
    5682            if ( !$topic = get_topic ( $feed_id ) ) 
Note: See TracChangeset for help on using the changeset viewer.