plugins/SpecialRecentChanges.php
author Dan
Sun, 22 Mar 2009 00:55:06 -0400
changeset 885 a86a69394a95
parent 801 eb8b23f11744
permissions -rw-r--r--
Major revamp to sidebar editor. Some behavioral changes as well as being based on jQuery UI Sortables. Creation interface remains the same, but better strings merged in from stable.
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",
685
17ebe24cdf85 Rebranded as 1.1.5 (Caoineag alpha 5) and fixed a couple bugs related to CDN support in template_nodb and installerUI. Updated readme.
Dan
parents: 593
diff changeset
     8
  "Version"      : "1.1.5",
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
     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
801
eb8b23f11744 Two big commits in one day I know, but redid password storage to use HMAC-SHA1. Consolidated much AES processing to three core methods in session that should handle everything automagically. Installation works; upgrades should. Rebranded as 1.1.6.
Dan
parents: 685
diff changeset
    15
 * Version 1.1.6 (Caoineag beta 1)
536
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
593
4f9bec0d65c1 More optimization work. Moved special page init functions to common instead of common_post hook. Allowed paths to cache page metadata on filesystem. Phased out the redundancy in $paths->pages that paired a number with every urlname as foreach loops are allowed now (and have been for some time). Fixed missing includes for several functions. Rewrote str_replace_once to be a lot more efficient.
Dan
parents: 590
diff changeset
    27
// $plugins->attachHook('session_started', 'SpecialRecentChanges_paths_init();');
590
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    28
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    29
function SpecialRecentChanges_paths_init()
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    30
{
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    31
  global $paths;
590
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    32
  $paths->add_page(Array(
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    33
    'name'=>'specialpage_recent_changes',
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    34
    'urlname'=>'RecentChanges',
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    35
    'namespace'=>'Special',
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    36
    'special'=>0,'visible'=>1,'comments_on'=>0,'protected'=>1,'delvotes'=>0,'delvote_ips'=>'',
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    37
    ));
03a60844c7c5 Several optimization changes including getting rid of a few eval()s. Added placeholder functions for the theme manager, which should be working now
Dan
parents: 564
diff changeset
    38
}
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    39
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    40
function page_Special_RecentChanges()
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
  global $db, $session, $paths, $template, $plugins; // Common objects
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    43
  global $lang;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    44
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    45
  // 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
    46
  // (theoretical)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    47
  //   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
    48
  //       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
    49
  //     FROM logs AS l1
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    50
  //     LEFT JOIN logs AS l2                                                    
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    51
  //       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
    52
  //     WHERE l2.time_id IS NOT NULL
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    53
  //     GROUP BY l1.page_id, l1.namespace
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    54
  //     ORDER BY l2.time_id DESC, l1.time_id DESC;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    55
  // (the actual query is generated based on filter criteria)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    56
  // How it works:
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    57
  //  * Join the logs table with itself
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    58
  //  * 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
    59
  //  * 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
    60
  //  * 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
    61
  //  * 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
    62
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    63
  $where_extra = '';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    64
  if ( isset($_GET['filter_author']) && is_array($_GET['filter_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
    $f_author = $_GET['filter_author'];
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    67
    foreach ( $f_author as &$author )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    68
    {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    69
      $author = $db->escape($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
    $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
    72
    $where_extra .= $f_author;
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
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    75
  if ( ENANO_DBLAYER == 'MYSQL' )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    76
  {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    77
    $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
    78
    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
    79
  FROM ' . table_prefix . 'logs AS l1
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    80
  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
    81
    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
    82
  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
    83
        AND l1.is_draft != 1
403
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    84
  GROUP BY oldrev_time
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    85
  ORDER BY l1.time_id DESC, l2.time_id DESC;';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    86
  }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    87
  else
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    88
  {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    89
    $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
    90
    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
    91
  FROM ' . table_prefix . 'logs AS l1
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    92
  LEFT JOIN ' . table_prefix . 'logs AS l2                                                    
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    93
    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
    94
  WHERE l2.time_id IS NOT NULL' . $where_extra . '
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    95
  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
    96
  ORDER BY l1.time_id DESC, l2.time_id DESC;';
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
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
    99
  $template->header();
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   100
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   101
  $q = $db->sql_unbuffered_query($sql);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   102
  if ( !$q )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   103
    $db->_die();
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   104
  
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   105
  if ( $row = $db->fetchrow($q) )
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
    echo '<p>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   108
    do
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   109
    {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   110
      $css = rch_get_css($row['size_change']);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   111
      $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
   112
      $pagekey = sanitize_page_id($pagekey);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   113
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   114
      // diff button
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   115
      echo '(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   116
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   117
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   118
        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
   119
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   120
      echo $lang->get('pagetools_rc_btn_diff');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   121
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   122
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   123
        echo '</a>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   124
      }
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
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   127
      // hist button
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   128
      echo '(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   129
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   130
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   131
        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
   132
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   133
      echo $lang->get('pagetools_rc_btn_hist');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   134
      if ( isPage($pagekey) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   135
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   136
        echo '</a>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   137
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   138
      echo ') . . ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   139
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   140
      // link to the page
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   141
      $cls = ( isPage($pagekey) ) ? '' : ' class="wikilink-nonexistent"';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   142
      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
   143
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   144
      // date
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   145
      $today = time() - ( time() % 86400 );
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   146
      $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
   147
      $date .= date('h:i s', $row['currev_time']);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   148
      echo "$date . . ";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   149
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   150
      // size counter
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   151
      $size_change = number_format($row['size_change']);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   152
      if ( substr($size_change, 0, 1) != '-' )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   153
        $size_change = "+$size_change";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   154
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   155
      echo "<span style=\"$css\">({$size_change})</span>";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   156
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   157
      // link to userpage
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
      $cls = ( isPage($paths->nslist['User'] . $row['author']) ) ? '' : ' class="wikilink-nonexistent"';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   160
      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
   161
      echo '(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   162
      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
   163
      echo $lang->get('pagetools_rc_btn_pm');
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 '<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
   166
      echo $lang->get('pagetools_rc_btn_usertalk');
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   167
      echo '</a>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   168
      echo ') . . ';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   169
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   170
      // Edit summary
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   171
      echo '<i>(';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   172
      if ( empty($row['edit_summary']) )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   173
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   174
        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
   175
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   176
      else
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   177
      {
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   178
        echo RenderMan::parse_internal_links(htmlspecialchars($row['edit_summary']));
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   179
      }
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   180
      echo ')</i>';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   181
      
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   182
      echo '<br />';
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
    while ( $row = $db->fetchrow($q) );
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   185
    echo '</p>';
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
  $template->footer();
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
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   191
function rch_get_css($change_size)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   192
{
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   193
  // Hardly changed at all? Return a gray
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   194
  if ( $change_size <= 5 && $change_size >= -5 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   195
    return 'color: #808080;';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   196
  // determine saturation based on size of change (1-500 bytes)
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   197
  $change_abs = abs($change_size);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   198
  $index = 0x70 * ( $change_abs / 500 );
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   199
  if ( $index > 0x70 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   200
    $index = 0x70;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   201
  $index = $index + 0x40;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   202
  $index = dechex($index);
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   203
  if ( strlen($index) < 2 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   204
    $index = "0$index";
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   205
  $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
   206
  if ( $change_abs > 500 )
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   207
    $css .= ' font-weight: bold;';
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   208
  return $css;
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   209
}
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   210
2c9745b5c09d Started on a Special:RecentChanges page, more to come.
Dan
parents:
diff changeset
   211
?>