plugins/nuggie/planet.php
changeset 13 421242ebbece
parent 10 219a0133622e
child 14 58840db7b472
equal deleted inserted replaced
12:f0ddbf48c978 13:421242ebbece
   106   
   106   
   107   $count = $db->numrows();
   107   $count = $db->numrows();
   108   
   108   
   109   $db->free_result($sql);
   109   $db->free_result($sql);
   110   
   110   
       
   111   // RSS check - do we have support for Feed Me and did the user request an RSS feed?
       
   112   $do_rss = defined('ENANO_FEEDBURNER_INCLUDED') && ( isset($_GET['feed']) && $_GET['feed'] === 'rss2' );
       
   113   $query_limit = $do_rss ? 50 : 10;
       
   114   if ( $do_rss )
       
   115   {
       
   116     $offset = 0;
       
   117   }
       
   118   
   111   // pass 2: production run
   119   // pass 2: production run
   112   $columns = 'p.post_id, p.post_title, p.post_title_clean, p.post_author, p.post_timestamp, p.post_text, b.blog_name, b.blog_subtitle, b.blog_type, b.allowed_users, u.username, u.user_level, COUNT(c.comment_id) AS num_comments, \'' . $db->escape($planet_id) . '\' AS referring_planet';
   120   $columns = 'p.post_id, p.post_title, p.post_title_clean, p.post_author, p.post_timestamp, p.post_text, b.blog_name, b.blog_subtitle, b.blog_type, b.allowed_users, u.username, u.user_level, COUNT(c.comment_id) AS num_comments, \'' . $db->escape($planet_id) . '\' AS referring_planet';
   113   $sql = str_replace('<columns>', $columns, $sql_base);
   121   $sql = str_replace('<columns>', $columns, $sql_base);
   114   $sql = str_replace('<limit>', "LIMIT $offset, 10", $sql);
   122   $sql = str_replace('<limit>', "LIMIT $offset, $query_limit", $sql);
   115   
   123   
   116   // yea. that was one query.
   124   // yea. that was one query.
   117   $q = $db->sql_query($sql);
   125   $q = $db->sql_query($sql);
   118   if ( !$q )
   126   if ( !$q )
   119     $db->_die();
   127     $db->_die();
       
   128   
       
   129   // RSS feed?
       
   130   if ( $do_rss )
       
   131   {
       
   132     header('Content-type: text/xml; charset=utf-8');
       
   133     global $aggressive_optimize_html;
       
   134     $aggressive_optimize_html = false;
       
   135     $rss = new RSS(
       
   136       getConfig('site_name') . ': ' . $planet_data['planet_name'],
       
   137       $planet_data['planet_subtitle'],
       
   138       makeUrlComplete('Planet', $planet_id)
       
   139     );
       
   140     while ( $row = $db->fetchrow($q) )
       
   141     {
       
   142       $permalink = makeUrlNS('Blog', sanitize_page_id($row['username']) . date('/Y/n/j/', intval($row['post_timestamp'])) . $row['post_title_clean'], false, true);
       
   143       $post = RenderMan::render($row['post_text']);
       
   144       $rss->add_item($row['post_title'], $permalink, $post, intval($row['post_timestamp']));
       
   145     }
       
   146     echo $rss->render();
       
   147     return;
       
   148   }
   120   
   149   
   121   // just let the paginator do the rest
   150   // just let the paginator do the rest
   122   $postbit = new NuggiePostbit();
   151   $postbit = new NuggiePostbit();
   123   // $q, $tpl_text, $num_results, $result_url, $start = 0, $perpage = 10, $callers = Array(), $header = '', $footer = ''
   152   // $q, $tpl_text, $num_results, $result_url, $start = 0, $perpage = 10, $callers = Array(), $header = '', $footer = ''
   124   $html = paginate(
   153   $html = paginate(