plugins/nuggie/planet.php
author Dan
Tue, 29 Jul 2008 06:48:19 -0600
changeset 13 421242ebbece
parent 10 219a0133622e
child 14 58840db7b472
permissions -rw-r--r--
Added backend RSS2 support, as long as Feed Me is there somewhere
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     1
<?php
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     2
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     3
/*
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     4
 * Nuggie
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     5
 * Version 0.1
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     6
 * Copyright (C) 2007 Dan Fuhry
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     7
 *
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     8
 * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
     9
 * as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    10
 *
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    11
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    12
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    13
 */
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    14
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    15
/**
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    16
 * Displays a planet as requested by a PageProcessor instance.
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    17
 * @param string The page_id from PageProcessor.
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    18
 */
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    19
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    20
function nuggie_planet_uri_handler($page)
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    21
{
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    22
  global $db, $session, $paths, $template, $plugins; // Common objects
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    23
  
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    24
  $planet_id = dirtify_page_id($page->page_id);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    25
  $offset = 0;
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    26
  if ( preg_match('#/start=([0-9]+)$#', $planet_id, $match) )
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    27
  {
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    28
    $planet_id = substr($planet_id, 0, (strlen($planet_id) - strlen($match[0])));
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    29
    $offset = intval($match[1]);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    30
  }
7
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    31
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    32
  //
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    33
  // VALIDATION
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    34
  //
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    35
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    36
  // Fetch ACLs
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    37
  $perms = $session->fetch_page_acl($planet_id, 'Planet');
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    38
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    39
  // Obtain planet info
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    40
  $q = $db->sql_query('SELECT p.planet_id, p.planet_name, p.planet_subtitle, p.planet_creator, p.planet_public, p.planet_visible, m.mapping_type, m.mapping_value ' . "\n"
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    41
                    . '  FROM ' . table_prefix . "planets AS p\n"
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    42
                    . "  LEFT JOIN " . table_prefix . "planets_mapping AS m\n"
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    43
                    . "    ON ( p.planet_id = m.planet_id )\n"
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    44
                    . "  WHERE p.planet_name = '" . $db->escape(sanitize_page_id($planet_id)) . "';");
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    45
  if ( !$q )
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    46
    $db->_die();
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    47
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    48
  if ( $db->numrows() < 1 )
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    49
  {
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    50
    // planet not found, fall out
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    51
    return $page->err_page_not_existent();
7
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    52
  }
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    53
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    54
  // fetch first row, then seek back to the first result to allow mapping fetching later
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    55
  $planet_data = $db->fetchrow();
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    56
  $db->sql_data_seek(0);
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    57
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    58
  // check author and publicity
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    59
  if ( $planet_data['planet_creator'] != $session->user_id && !$planet_data['planet_public'] )
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    60
  {
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    61
    return $page->err_access_denied();
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    62
  }
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    63
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    64
  // ACL check
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    65
  if ( !$perms->get_permissions('read') )
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    66
  {
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    67
    return $page->err_access_denied();
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    68
  }
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    69
  
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    70
  // Set page title
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    71
  $page_title = dirtify_page_id($planet_data['planet_name']);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    72
  $template->assign_vars(array(
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    73
      'PAGE_NAME' => htmlspecialchars($page_title)
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    74
    ));
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    75
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    76
  // Try to grab the posts. The SQL tricks here are rather interesting, you'll have to look at it from a distance to grasp it.
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    77
  // Basically just using MySQL to apply all the filters in one go. Nuggie doesn't do PostgreSQL yet.
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    78
  $sql_base = "SELECT <columns>\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    79
       . "  FROM " . table_prefix . "blog_posts AS p\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    80
       . "  LEFT JOIN " . table_prefix . "blogs AS b\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    81
       . "    ON ( b.user_id = p.post_author )\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    82
       . "  LEFT JOIN " . table_prefix . "users AS u\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    83
       . "    ON ( u.user_id = p.post_author )\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    84
       . "  LEFT JOIN " . table_prefix . "comments AS c\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    85
       . "    ON ( c.page_id = CAST(p.post_id AS char) AND c.namespace = 'BlogPost' )\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    86
       . "  LEFT JOIN " . table_prefix . "tags AS t\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    87
       . "    ON ( t.page_id = CAST(p.post_id AS char) AND t.namespace = 'BlogPost' )\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    88
       . "  LEFT JOIN " . table_prefix . "planets_mapping AS m\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    89
       . "    ON (\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    90
       . "         ( m.mapping_type = " . NUGGIE_PLANET_FILTER_TAG . " AND m.mapping_value = t.tag_name  ) OR\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    91
       . "         ( m.mapping_type = " . NUGGIE_PLANET_FILTER_AUTHOR . " AND CAST(m.mapping_value AS unsigned integer) = p.post_author ) OR\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    92
       . "         ( m.mapping_type = " . NUGGIE_PLANET_FILTER_KEYWORD . " AND ( p.post_text LIKE CONCAT('%', m.mapping_value, '%') OR p.post_title LIKE CONCAT('%', m.mapping_value, '%') ) )\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    93
       . "       )\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    94
       . "  WHERE m.planet_id = {$planet_data['planet_id']}\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    95
       . "    AND p.post_published = 1\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    96
       . "  GROUP BY p.post_id\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    97
       . "  ORDER BY p.post_timestamp DESC\n"
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    98
       . "  <limit>;";
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
    99
       
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   100
  // pass 1: a test run to count the number of results
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   101
  $sql = str_replace('<columns>', 'p.post_id', $sql_base);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   102
  $sql = str_replace('<limit>', "", $sql);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   103
  $q = $db->sql_query($sql);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   104
  if ( !$q )
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   105
    $db->_die();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   106
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   107
  $count = $db->numrows();
10
219a0133622e Made planet's main select query fully buffered because NuggiePostbit::paginate_handler requires fetch_page_acl which uses the DBAL
Dan
parents: 8
diff changeset
   108
  
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   109
  $db->free_result($sql);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   110
  
13
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   111
  // RSS check - do we have support for Feed Me and did the user request an RSS feed?
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   112
  $do_rss = defined('ENANO_FEEDBURNER_INCLUDED') && ( isset($_GET['feed']) && $_GET['feed'] === 'rss2' );
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   113
  $query_limit = $do_rss ? 50 : 10;
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   114
  if ( $do_rss )
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   115
  {
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   116
    $offset = 0;
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   117
  }
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   118
  
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   119
  // pass 2: production run
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   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';
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   121
  $sql = str_replace('<columns>', $columns, $sql_base);
13
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   122
  $sql = str_replace('<limit>', "LIMIT $offset, $query_limit", $sql);
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   123
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   124
  // yea. that was one query.
10
219a0133622e Made planet's main select query fully buffered because NuggiePostbit::paginate_handler requires fetch_page_acl which uses the DBAL
Dan
parents: 8
diff changeset
   125
  $q = $db->sql_query($sql);
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   126
  if ( !$q )
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   127
    $db->_die();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   128
  
13
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   129
  // RSS feed?
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   130
  if ( $do_rss )
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   131
  {
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   132
    header('Content-type: text/xml; charset=utf-8');
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   133
    global $aggressive_optimize_html;
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   134
    $aggressive_optimize_html = false;
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   135
    $rss = new RSS(
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   136
      getConfig('site_name') . ': ' . $planet_data['planet_name'],
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   137
      $planet_data['planet_subtitle'],
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   138
      makeUrlComplete('Planet', $planet_id)
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   139
    );
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   140
    while ( $row = $db->fetchrow($q) )
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   141
    {
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   142
      $permalink = makeUrlNS('Blog', sanitize_page_id($row['username']) . date('/Y/n/j/', intval($row['post_timestamp'])) . $row['post_title_clean'], false, true);
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   143
      $post = RenderMan::render($row['post_text']);
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   144
      $rss->add_item($row['post_title'], $permalink, $post, intval($row['post_timestamp']));
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   145
    }
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   146
    echo $rss->render();
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   147
    return;
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   148
  }
421242ebbece Added backend RSS2 support, as long as Feed Me is there somewhere
Dan
parents: 10
diff changeset
   149
  
8
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   150
  // just let the paginator do the rest
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   151
  $postbit = new NuggiePostbit();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   152
  // $q, $tpl_text, $num_results, $result_url, $start = 0, $perpage = 10, $callers = Array(), $header = '', $footer = ''
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   153
  $html = paginate(
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   154
      $q,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   155
      '{post_id}',
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   156
      $count,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   157
      makeUrlNS('Planet', "$planet_id/start=%s", true),
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   158
      0,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   159
      10,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   160
      array( 'post_id' => array($postbit, 'paginate_handler') ),
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   161
      '<span class="menuclear"></span>'
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   162
    );
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   163
  $db->free_result($q);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   164
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   165
  $template->add_header('<link rel="stylesheet" type="text/css" href="' . scriptPath . '/plugins/nuggie/style.css" />');
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   166
  $template->header();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   167
  echo $planet_data['planet_subtitle'];
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   168
  echo $html;
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   169
  $template->footer();
7
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
   170
}
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
   171
 
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
   172
?>