plugins/nuggie/planet.php
author Dan
Mon, 16 Jun 2008 12:54:24 -0400
changeset 7 cd46e29ae699
child 8 160f1170aa32
permissions -rw-r--r--
Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
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
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    24
  $planet_id = $page->page_id;
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    25
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    26
  //
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    27
  // VALIDATION
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    28
  //
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    29
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    30
  // Fetch ACLs
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    31
  $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
    32
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    33
  // 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
    34
  $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
    35
                    . '  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
    36
                    . "  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
    37
                    . "    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
    38
                    . "  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
    39
  if ( !$q )
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    40
    $db->_die();
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    41
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    42
  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
    43
  {
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    44
    // planet not found, fall out
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    45
    return false;
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    46
  }
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
  // 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
    49
  $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
    50
  $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
    51
  
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    52
  // 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
    53
  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
    54
  {
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    55
    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
    56
  }
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
  // ACL check
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    59
  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
    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
  // fetch mappings to prepare to select the actual blog data
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    65
  echo 'WiP';
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
 
cd46e29ae699 Started work on planet system. From this point onward, enano-1.1 rev 571 or later required.
Dan
parents:
diff changeset
    68
?>