plugins/nuggie/planet.php
author Dan
Mon, 16 Jun 2008 19:01:51 -0400
changeset 8 160f1170aa32
parent 7 cd46e29ae699
child 10 219a0133622e
permissions -rw-r--r--
First commit with working planet presentation code. No UI written for planet management yet.
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();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   108
  $db->free_result($sql);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   109
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   110
  // pass 2: production run
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   111
  $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
   112
  $sql = str_replace('<columns>', $columns, $sql_base);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   113
  $sql = str_replace('<limit>', "LIMIT $offset, 10", $sql);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   114
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   115
  // yea. that was one query.
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   116
  $q = $db->sql_unbuffered_query($sql);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   117
  if ( !$q )
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   118
    $db->_die();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   119
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   120
  // 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
   121
  $postbit = new NuggiePostbit();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   122
  // $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
   123
  $html = paginate(
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   124
      $q,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   125
      '{post_id}',
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   126
      $count,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   127
      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
   128
      0,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   129
      10,
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   130
      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
   131
      '<span class="menuclear"></span>'
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   132
    );
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   133
  $db->free_result($q);
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   134
  
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   135
  $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
   136
  $template->header();
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   137
  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
   138
  echo $html;
160f1170aa32 First commit with working planet presentation code. No UI written for planet management yet.
Dan
parents: 7
diff changeset
   139
  $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
   140
}
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
   141
 
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
   142
?>