plugins/SpecialRecentChanges.php
author Dan
Sun, 04 May 2008 21:57:48 -0400
changeset 541 acb7e23b6ffa
parent 536 218a627eb53e
child 564 a1c450a911a6
permissions -rw-r--r--
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
     1
<?php
519
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     2
/**!info**
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     3
{
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     4
  "Plugin Name"  : "plugin_specialrecentchanges_title",
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     5
  "Plugin URI"   : "http://enanocms.org/",
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     6
  "Description"  : "plugin_specialrecentchanges_desc",
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     7
  "Author"       : "Dan Fuhry",
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     8
  "Version"      : "1.1.3",
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
     9
  "Author URI"   : "http://enanocms.org/"
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
    10
}
94214ec0871c Started work on the new plugin manager and associated management code. Very incomplete at this point and not usable.
Dan
parents: 504
diff changeset
    11
**!*/
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    12
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    13
/*
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    14
 * Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between
536
218a627eb53e Rebrand as 1.1.4 (Caoineag alpha 4)
Dan
parents: 519
diff changeset
    15
 * Version 1.1.4 (Caoineag alpha 4)
218a627eb53e Rebrand as 1.1.4 (Caoineag alpha 4)
Dan
parents: 519
diff changeset
    16
 * Copyright (C) 2006-2008 Dan Fuhry
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    17
 *
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    18
 * This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    19
 * as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    20
 *
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    21
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    22
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    23
 */
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    24
 
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    25
global $db, $session, $paths, $template, $plugins; // Common objects
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    26
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    27
$plugins->attachHook('session_started', '
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    28
  global $paths;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    29
    $paths->add_page(Array(
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    30
      \'name\'=>\'specialpage_recent_changes\',
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    31
      \'urlname\'=>\'RecentChanges\',
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    32
      \'namespace\'=>\'Special\',
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    33
      \'special\'=>0,\'visible\'=>1,\'comments_on\'=>0,\'protected\'=>1,\'delvotes\'=>0,\'delvote_ips\'=>\'\',
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    34
      ));
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    35
    ');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    36
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    37
function page_Special_RecentChanges()
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    38
{
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    39
  global $db, $session, $paths, $template, $plugins; // Common objects
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    40
  global $lang;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    41
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    42
  // One super-loaded SQL query to fetch all the info we need:
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    43
  // (theoretical)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    44
  //   SELECT ( CHAR_LENGTH(l1.page_text) - CHAR_LENGTH(l2.page_text) ) AS size_change, l1.author, l1.page_id, l1.namespace, l1.edit_summary,
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    45
  //       l1.time_id AS currev_time, l2.time_id AS oldrev_time
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    46
  //     FROM logs AS l1
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    47
  //     LEFT JOIN logs AS l2                                                    
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    48
  //       ON ( l1.log_type = l2.log_type AND l1.action = 'edit' AND l1.action = l2.action AND l2.time_id < l1.time_id AND l1.page_id = l2.page_id AND l1.namespace = l2.namespace )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    49
  //     WHERE l2.time_id IS NOT NULL
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    50
  //     GROUP BY l1.page_id, l1.namespace
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    51
  //     ORDER BY l2.time_id DESC, l1.time_id DESC;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    52
  // (the actual query is generated based on filter criteria)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    53
  // How it works:
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    54
  //  * Join the logs table with itself
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    55
  //  * Select the size_change virtual column, which is based on current_rev_length - old_rev_length
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    56
  //  * Use GROUP BY to group rows from the same page together
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    57
  //  * Make sure that the time_id in the second instance (l2) of enano_logs is LESS than the time_id in the first instance (l1)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    58
  //  * Use ORDER BY to ensure that the latest revision before current is selected
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    59
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    60
  $where_extra = '';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    61
  if ( isset($_GET['filter_author']) && is_array($_GET['filter_author']) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    62
  {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    63
    $f_author = $_GET['filter_author'];
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    64
    foreach ( $f_author as &$author )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    65
    {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    66
      $author = $db->escape($author);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    67
    }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    68
    $f_author = "\n    AND (\n      l1.author = '" . implode("'\n      OR l1.author = '", $f_author) . "'\n    )";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    69
    $where_extra .= $f_author;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    70
  }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    71
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    72
  if ( ENANO_DBLAYER == 'MYSQL' )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    73
  {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    74
    $sql = 'SELECT ( CHAR_LENGTH(l1.page_text) - CHAR_LENGTH(l2.page_text) ) AS size_change, l1.author, l1.page_id, l1.namespace, l1.edit_summary,
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    75
    l1.time_id AS currev_time, l2.time_id AS oldrev_time
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    76
  FROM ' . table_prefix . 'logs AS l1
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    77
  LEFT JOIN ' . table_prefix . 'logs AS l2                                                    
414
818b4cd12b8b Added "is_draft != 1" where appropriate in SQL queries to prevent drafts from being treated as real revisions.
Dan
parents: 411
diff changeset
    78
    ON ( l1.log_type = l2.log_type AND l1.action = \'edit\' AND l1.action = l2.action AND l2.time_id < l1.time_id AND l1.page_id = l2.page_id AND l1.namespace = l2.namespace AND l2.is_draft != 1 )
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    79
  WHERE l2.time_id IS NOT NULL' . $where_extra . '
414
818b4cd12b8b Added "is_draft != 1" where appropriate in SQL queries to prevent drafts from being treated as real revisions.
Dan
parents: 411
diff changeset
    80
        AND l1.is_draft != 1
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    81
  GROUP BY oldrev_time
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    82
  ORDER BY l1.time_id DESC, l2.time_id DESC;';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    83
  }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    84
  else
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    85
  {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    86
    $sql = 'SELECT DISTINCT ON (l1.time_id) ( CHAR_LENGTH(l1.page_text) - CHAR_LENGTH(l2.page_text) ) AS size_change, l1.author, l1.page_id, l1.namespace, l1.edit_summary,
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    87
    l1.time_id AS currev_time, l2.time_id AS oldrev_time
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    88
  FROM ' . table_prefix . 'logs AS l1
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    89
  LEFT JOIN ' . table_prefix . 'logs AS l2                                                    
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    90
    ON ( l1.log_type = l2.log_type AND l1.action = \'edit\' AND l1.action = l2.action AND l2.time_id < l1.time_id AND l1.page_id = l2.page_id AND l1.namespace = l2.namespace )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    91
  WHERE l2.time_id IS NOT NULL' . $where_extra . '
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    92
  GROUP BY l1.time_id, l1.page_id, l1.namespace, l1.author, l1.edit_summary, l2.time_id, l1.page_text, l2.page_text
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    93
  ORDER BY l1.time_id DESC, l2.time_id DESC;';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    94
  }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    95
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    96
  $template->header();
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    97
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    98
  $q = $db->sql_unbuffered_query($sql);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    99
  if ( !$q )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   100
    $db->_die();
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   101
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   102
  if ( $row = $db->fetchrow($q) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   103
  {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   104
    echo '<p>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   105
    do
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   106
    {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   107
      $css = rch_get_css($row['size_change']);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   108
      $pagekey = ( isset($paths->nslist[$row['namespace']]) ) ? $paths->nslist[$row['namespace']] . $row['page_id'] : $row['namespace'] . ':' . $row['page_id'];
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   109
      $pagekey = sanitize_page_id($pagekey);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   110
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   111
      // diff button
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   112
      echo '(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   113
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   114
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   115
        echo '<a href="' . makeUrlNS($row['namespace'], $row['page_id'], "do=diff&diff1={$row['oldrev_time']}&diff2={$row['currev_time']}", true) . '">';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   116
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   117
      echo $lang->get('pagetools_rc_btn_diff');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   118
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   119
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   120
        echo '</a>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   121
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   122
      echo ') ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   123
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   124
      // hist button
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   125
      echo '(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   126
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   127
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   128
        echo '<a href="' . makeUrlNS($row['namespace'], $row['page_id'], "do=history", true) . '">';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   129
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   130
      echo $lang->get('pagetools_rc_btn_hist');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   131
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   132
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   133
        echo '</a>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   134
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   135
      echo ') . . ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   136
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   137
      // link to the page
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   138
      $cls = ( isPage($pagekey) ) ? '' : ' class="wikilink-nonexistent"';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   139
      echo '<a href="' . makeUrlNS($row['namespace'], $row['page_id']) . '"' . $cls . '>' . htmlspecialchars(get_page_title_ns($row['page_id'], $row['namespace'])) . '</a>; ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   140
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   141
      // date
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   142
      $today = time() - ( time() % 86400 );
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   143
      $date = ( $row['currev_time'] > $today ) ? '' : MemberlistFormatter::format_date($row['currev_time']) . ' ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   144
      $date .= date('h:i s', $row['currev_time']);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   145
      echo "$date . . ";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   146
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   147
      // size counter
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   148
      $size_change = number_format($row['size_change']);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   149
      if ( substr($size_change, 0, 1) != '-' )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   150
        $size_change = "+$size_change";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   151
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   152
      echo "<span style=\"$css\">({$size_change})</span>";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   153
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   154
      // link to userpage
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   155
      echo ' . . ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   156
      $cls = ( isPage($paths->nslist['User'] . $row['author']) ) ? '' : ' class="wikilink-nonexistent"';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   157
      echo '<a href="' . makeUrlNS('User', sanitize_page_id($row['author']), false, true) . '"' . $cls . '>' . htmlspecialchars($row['author']) . '</a> ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   158
      echo '(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   159
      echo '<a href="' . makeUrlNS('Special', 'PrivateMessages/Compose/To/' . sanitize_page_id($row['author']), false, true) . '">';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   160
      echo $lang->get('pagetools_rc_btn_pm');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   161
      echo '</a>, ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   162
      echo '<a href="' . makeUrlNS('User', sanitize_page_id($row['author']), false, true) . '#do:comments">';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   163
      echo $lang->get('pagetools_rc_btn_usertalk');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   164
      echo '</a>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   165
      echo ') . . ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   166
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   167
      // Edit summary
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   168
      echo '<i>(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   169
      if ( empty($row['edit_summary']) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   170
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   171
        echo '<span style="color: #808080;">' . $lang->get('history_summary_none_given') . '</span>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   172
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   173
      else
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   174
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   175
        echo RenderMan::parse_internal_links(htmlspecialchars($row['edit_summary']));
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   176
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   177
      echo ')</i>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   178
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   179
      echo '<br />';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   180
    }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   181
    while ( $row = $db->fetchrow($q) );
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   182
    echo '</p>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   183
  }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   184
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   185
  $template->footer();
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   186
}
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   187
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   188
function rch_get_css($change_size)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   189
{
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   190
  // Hardly changed at all? Return a gray
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   191
  if ( $change_size <= 5 && $change_size >= -5 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   192
    return 'color: #808080;';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   193
  // determine saturation based on size of change (1-500 bytes)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   194
  $change_abs = abs($change_size);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   195
  $index = 0x70 * ( $change_abs / 500 );
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   196
  if ( $index > 0x70 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   197
    $index = 0x70;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   198
  $index = $index + 0x40;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   199
  $index = dechex($index);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   200
  if ( strlen($index) < 2 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   201
    $index = "0$index";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   202
  $css = ( $change_size > 0 ) ? "color: #00{$index}00;" : "color: #{$index}0000;";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   203
  if ( $change_abs > 500 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   204
    $css .= ' font-weight: bold;';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   205
  return $css;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   206
}
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   207
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   208
?>