901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 1
<?php
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 2
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 3
/*
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 4
* Enano - an open-source CMS capable of wiki functions, Drupal-like sidebar blocks, and everything in between
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 5
* Version 1.1.6 (Caoineag beta 1)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 6
* Copyright (C) 2006-2008 Dan Fuhry
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 7
* log.php - Logs table parsing and displaying
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 8
*
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 9
* This program is Free Software; you can redistribute and/or modify it under the terms of the GNU General Public License
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 10
* as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 11
*
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 12
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 13
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 14
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 15
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 16
/**
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 17
* Front-end for showing page revisions and actions in the logs table.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 18
* @package Enano
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 19
* @subpackage Frontend
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 20
* @author Dan Fuhry <dan@enanocms.org>
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 21
* @license GNU General Public License
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 22
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 23
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 24
class LogDisplay
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 25
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 26
/**
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 27
* Criteria for the search.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 28
* Structure:
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 29
<code>
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 30
array(
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 31
array( 'user', 'Dan' ),
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 32
array( 'within', 86400 ),
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 33
array( 'page', 'Main_Page' )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 34
)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 35
</code>
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 36
* @var array
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 37
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 38
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 39
var $criteria = array();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 40
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 41
/**
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 42
* Adds a criterion for the log display.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 43
* @param string Criterion type - user, page, or within
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 44
* @param string Value - username, page ID, or (int) within # seconds or (string) number + suffix (suffix: d = day, w = week, m = month, y = year) ex: "1w"
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 45
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 46
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 47
public function add_criterion($criterion, $value)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 48
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 49
switch ( $criterion )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 50
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 51
case 'user':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 52
case 'page':
905
+ − 53
case 'action':
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 54
$this->criteria[] = array($criterion, $value);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 55
break;
980
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 56
case 'minor':
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 57
$this->criteria[] = array($criterion, intval($value));
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 58
break;
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 59
case 'within':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 60
if ( is_int($value) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 61
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 62
$this->criteria[] = array($criterion, $value);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 63
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 64
else if ( is_string($value) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 65
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 66
$lastchar = substr($value, -1);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 67
$amt = intval($value);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 68
switch($lastchar)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 69
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 70
case 'd':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 71
$amt = $amt * 86400;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 72
break;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 73
case 'w':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 74
$amt = $amt * 604800;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 75
break;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 76
case 'm':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 77
$amt = $amt * 2592000;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 78
break;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 79
case 'y':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 80
$amt = $amt * 31536000;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 81
break;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 82
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 83
$this->criteria[] = array($criterion, $amt);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 84
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 85
else
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 86
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 87
throw new Exception('Invalid value type for within');
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 88
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 89
break;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 90
default:
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 91
throw new Exception('Unknown criterion type');
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 92
break;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 93
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 94
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 95
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 96
/**
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 97
* Build the necessary SQL query.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 98
* @param int Optional: offset, defaults to 0
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 99
* @param int Optional: page size, defaults to 0; 0 = don't limit
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 100
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 101
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 102
public function build_sql($offset = 0, $page_size = 0, $just_page_count = false)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 103
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 104
global $db, $session, $paths, $template, $plugins; // Common objects
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 105
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 106
$where_extra = '';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 107
$where_bits = array(
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 108
'user' => array(),
905
+ − 109
'page' => array(),
+ − 110
'action' => array()
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 111
);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 112
foreach ( $this->criteria as $criterion )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 113
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 114
list($type, $value) = $criterion;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 115
switch($type)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 116
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 117
case 'user':
909
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 118
$where_bits['user'][] = "author = '" . $db->escape(str_replace('_', ' ', $value)) . "'";
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 119
break;
905
+ − 120
case 'action':
909
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 121
if ( $value === 'protect' )
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 122
{
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 123
$where_bits['action'][] = "action = 'prot'";
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 124
$where_bits['action'][] = "action = 'unprot'";
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 125
$where_bits['action'][] = "action = 'semiprot'";
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 126
}
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 127
else
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 128
{
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 129
$where_bits['action'][] = "action = '" . $db->escape($value) . "'";
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 130
}
905
+ − 131
break;
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 132
case 'page':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 133
list($page_id, $namespace) = RenderMan::strToPageId($value);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 134
$where_bits['page'][] = "page_id = '" . $db->escape($page_id) . "' AND namespace = '" . $db->escape($namespace) . "'";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 135
break;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 136
case 'within':
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 137
$threshold = time() - $value;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 138
$where_extra .= "\n AND time_id > $threshold";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 139
break;
980
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 140
case 'minor':
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 141
if ( $value == 1 )
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 142
$where_extra .= "\n AND ( minor_edit = 1 OR action != 'edit' )";
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 143
else
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 144
$where_extra .= "\n AND minor_edit != 1";
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 145
break;
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 146
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 147
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 148
if ( !empty($where_bits['user']) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 149
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 150
$where_extra .= "\n AND ( " . implode(" OR ", $where_bits['user']) . " )";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 151
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 152
if ( !empty($where_bits['page']) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 153
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 154
$where_extra .= "\n AND ( (" . implode(") OR (", $where_bits['page']) . ") )";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 155
}
905
+ − 156
if ( !empty($where_bits['action']) )
+ − 157
{
+ − 158
$where_extra .= "\n AND ( (" . implode(") OR (", $where_bits['action']) . ") )";
+ − 159
}
918
+ − 160
if ( ENANO_DBLAYER == 'PGSQL' )
+ − 161
$limit = ( $page_size > 0 ) ? "\n LIMIT $page_size OFFSET $offset" : '';
+ − 162
else
+ − 163
$limit = ( $page_size > 0 ) ? "\n LIMIT $offset, $page_size" : '';
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 164
$columns = ( $just_page_count ) ? 'COUNT(*)' : 'log_id, action, page_id, namespace, CHAR_LENGTH(page_text) AS revision_size, author, time_id, edit_summary, minor_edit';
918
+ − 165
$sql = 'SELECT ' . $columns . ' FROM ' . table_prefix . "logs AS l\n"
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 166
. " WHERE log_type = 'page' AND is_draft != 1$where_extra\n"
980
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 167
. ( $just_page_count ? '' : " GROUP BY log_id, action, page_id, namespace, page_text, author, time_id, edit_summary, minor_edit\n" )
947
+ − 168
. " ORDER BY time_id DESC $limit;";
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 169
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 170
return $sql;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 171
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 172
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 173
/**
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 174
* Get data!
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 175
* @param int Offset, defaults to 0
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 176
* @param int Page size, if 0 (default) returns entire table (danger Will Robinson!)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 177
* @return array
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 178
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 179
912
+ − 180
public function get_data($offset = 0, $page_size = 0)
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 181
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 182
global $db, $session, $paths, $session, $plugins; // Common objects
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 183
$sql = $this->build_sql($offset, $page_size);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 184
if ( !$db->sql_query($sql) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 185
$db->_die();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 186
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 187
$return = array();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 188
$deplist = array();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 189
$idlist = array();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 190
while ( $row = $db->fetchrow() )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 191
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 192
$return[ $row['log_id'] ] = $row;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 193
if ( $row['action'] === 'edit' )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 194
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 195
// This is a page revision; its parent needs to be found
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 196
$pagekey = serialize(array($row['page_id'], $row['namespace']));
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 197
$deplist[$pagekey] = "( page_id = '" . $db->escape($row['page_id']) . "' AND namespace = '" . $db->escape($row['namespace']) . "' AND log_id < {$row['log_id']} )";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 198
// if we already have a revision from this page in the dataset, we've found its parent
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 199
if ( isset($idlist[$pagekey]) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 200
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 201
$child =& $return[ $idlist[$pagekey] ];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 202
$child['parent_size'] = $row['revision_size'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 203
$child['parent_revid'] = $row['log_id'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 204
$child['parent_time'] = $row['time_id'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 205
unset($child);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 206
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 207
$idlist[$pagekey] = $row['log_id'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 208
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 209
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 210
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 211
// Second query fetches all parent revision data
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 212
// (maybe we have no edits?? check deplist)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 213
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 214
if ( !empty($deplist) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 215
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 216
// FIXME: inefficient. damn GROUP BY for not obeying ORDER BY, it means we can't group and instead have to select
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 217
// all previous revisions of page X and discard all but the first one we find.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 218
$where_extra = implode("\n OR ", $deplist);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 219
$sql = 'SELECT log_id, page_id, namespace, CHAR_LENGTH(page_text) AS revision_size, time_id FROM ' . table_prefix . "logs\n"
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 220
. " WHERE log_type = 'page' AND action = 'edit'\n AND ( $where_extra )\n"
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 221
// . " GROUP BY page_id, namespace\n"
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 222
. " ORDER BY log_id DESC;";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 223
if ( !$db->sql_query($sql) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 224
$db->_die();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 225
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 226
while ( $row = $db->fetchrow() )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 227
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 228
$pagekey = serialize(array($row['page_id'], $row['namespace']));
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 229
if ( isset($idlist[$pagekey]) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 230
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 231
$child =& $return[ $idlist[$pagekey] ];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 232
$child['parent_size'] = $row['revision_size'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 233
$child['parent_revid'] = $row['log_id'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 234
$child['parent_time'] = $row['time_id'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 235
unset($child, $idlist[$pagekey]);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 236
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 237
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 238
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 239
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 240
// final iteration goes through all edits and if there's not info on the parent, sets to 0. It also calculates size change.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 241
foreach ( $return as &$row )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 242
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 243
if ( $row['action'] === 'edit' && !isset($row['parent_revid']) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 244
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 245
$row['parent_revid'] = 0;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 246
$row['parent_size'] = 0;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 247
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 248
if ( $row['action'] === 'edit' )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 249
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 250
$row['size_delta'] = $row['revision_size'] - $row['parent_size'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 251
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 252
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 253
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 254
return array_values($return);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 255
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 256
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 257
/**
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 258
* Get the number of rows that will be in the result set.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 259
* @return int
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 260
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 261
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 262
public function get_row_count()
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 263
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 264
global $db, $session, $paths, $session, $plugins; // Common objects
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 265
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 266
if ( !$db->sql_query( $this->build_sql(0, 0, true) ) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 267
$db->_die();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 268
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 269
list($count) = $db->fetchrow_num();
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 270
return $count;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 271
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 272
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 273
/**
909
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 274
* Returns the list of criteria
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 275
* @return array
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 276
*/
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 277
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 278
public function get_criteria()
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 279
{
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 280
return $this->criteria;
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 281
}
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 282
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 283
/**
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 284
* Formats a result row into pretty HTML.
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 285
* @param array dataset from LogDisplay::get_data()
912
+ − 286
* @param bool If true (default), shows action buttons.
+ − 287
* @param bool If true (default), shows page title; good for integrated displays
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 288
* @static
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 289
* @return string
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 290
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 291
912
+ − 292
public static function render_row($row, $show_buttons = true, $show_pagetitle = true)
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 293
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 294
global $db, $session, $paths, $session, $plugins; // Common objects
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 295
global $lang;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 296
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 297
$html = '';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 298
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 299
$pagekey = ( isset($paths->nslist[$row['namespace']]) ) ? $paths->nslist[$row['namespace']] . $row['page_id'] : $row['namespace'] . ':' . $row['page_id'];
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 300
$pagekey = sanitize_page_id($pagekey);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 301
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 302
// diff button
912
+ − 303
if ( $show_buttons )
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 304
{
912
+ − 305
if ( $row['action'] == 'edit' && !empty($row['parent_revid']) )
+ − 306
{
+ − 307
$html .= '(';
980
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 308
$ispage = isPage($pagekey);
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 309
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 310
if ( $ispage )
912
+ − 311
$html .= '<a href="' . makeUrlNS($row['namespace'], $row['page_id'], "do=diff&diff1={$row['parent_revid']}&diff2={$row['log_id']}", true) . '">';
980
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 312
912
+ − 313
$html .= $lang->get('pagetools_rc_btn_diff');
980
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 314
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 315
if ( $ispage )
912
+ − 316
$html .= '</a>';
980
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 317
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 318
if ( $ispage )
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 319
$html .= ', <a href="' . makeUrlNS($row['namespace'], $row['page_id'], "oldid={$row['log_id']}", true) . '">';
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 320
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 321
$html .= $lang->get('pagetools_rc_btn_view');
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 322
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 323
if ( $ispage )
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 324
$html .= '</a>';
d13fad911955
Fixed some bugs with history viewing and log display (wrong row counts, failing to provide result resource, etc.); added "view" button to edits in log display; fixed underscores in auto generated titles
Dan
diff
changeset
+ − 325
912
+ − 326
if ( $row['parent_revid'] > 0 && isPage($pagekey) )
+ − 327
{
+ − 328
$html .= ', <a href="' . makeUrlNS($row['namespace'], $row['page_id'], false, true) . '#do:edit;rev:' . $row['parent_revid'] . '">' . $lang->get('pagetools_rc_btn_undo') . '</a>';
+ − 329
}
+ − 330
$html .= ') ';
+ − 331
}
+ − 332
else if ( $row['action'] != 'edit' && ( isPage($pagekey) || $row['action'] == 'delete' ) )
+ − 333
{
+ − 334
$html .= '(';
+ − 335
$html .= '<a href="' . makeUrlNS($row['namespace'], $row['page_id'], "do=rollback&id={$row['log_id']}", true). '">' . $lang->get('pagetools_rc_btn_undo') . '</a>';
+ − 336
$html .= ') ';
+ − 337
}
+ − 338
+ − 339
// hist button
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 340
$html .= '(';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 341
if ( isPage($pagekey) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 342
{
912
+ − 343
$html .= '<a href="' . makeUrlNS($row['namespace'], $row['page_id'], "do=history", true) . '">';
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 344
}
912
+ − 345
$html .= $lang->get('pagetools_rc_btn_hist');
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 346
if ( isPage($pagekey) )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 347
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 348
$html .= '</a>';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 349
}
912
+ − 350
$html .= ') . . ';
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 351
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 352
912
+ − 353
if ( $show_pagetitle )
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 354
{
912
+ − 355
// new page?
+ − 356
if ( $row['action'] == 'edit' && empty($row['parent_revid']) )
+ − 357
{
+ − 358
$html .= '<b>N</b> ';
+ − 359
}
+ − 360
// minor edit?
+ − 361
if ( $row['action'] == 'edit' && $row['minor_edit'] )
+ − 362
{
+ − 363
$html .= '<b>m</b> ';
+ − 364
}
+ − 365
+ − 366
// link to the page
+ − 367
$cls = ( isPage($pagekey) ) ? '' : ' class="wikilink-nonexistent"';
+ − 368
$html .= '<a href="' . makeUrlNS($row['namespace'], $row['page_id']) . '"' . $cls . '>' . htmlspecialchars(get_page_title_ns($row['page_id'], $row['namespace'])) . '</a>; ';
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 369
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 370
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 371
// date
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 372
$today = time() - ( time() % 86400 );
909
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 373
$date = MemberlistFormatter::format_date($row['time_id']) . ' ';
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 374
$date .= date('h:i:s', $row['time_id']);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 375
$html .= "$date . . ";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 376
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 377
// size counter
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 378
if ( $row['action'] == 'edit' )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 379
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 380
$css = self::get_css($row['size_delta']);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 381
$size_change = number_format($row['size_delta']);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 382
if ( substr($size_change, 0, 1) != '-' )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 383
$size_change = "+$size_change";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 384
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 385
$html .= "<span style=\"$css\">({$size_change})</span>";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 386
$html .= ' . . ';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 387
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 388
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 389
// link to userpage
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 390
$cls = ( isPage($paths->nslist['User'] . $row['author']) ) ? '' : ' class="wikilink-nonexistent"';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 391
$rank_info = $session->get_user_rank($row['author']);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 392
$html .= '<a style="' . $rank_info['rank_style'] . '" href="' . makeUrlNS('User', sanitize_page_id($row['author']), false, true) . '"' . $cls . '>' . htmlspecialchars($row['author']) . '</a> ';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 393
$html .= '(';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 394
$html .= '<a href="' . makeUrlNS('Special', 'PrivateMessages/Compose/To/' . sanitize_page_id($row['author']), false, true) . '">';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 395
$html .= $lang->get('pagetools_rc_btn_pm');
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 396
$html .= '</a>, ';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 397
$html .= '<a href="' . makeUrlNS('User', sanitize_page_id($row['author']), false, true) . '#do:comments">';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 398
$html .= $lang->get('pagetools_rc_btn_usertalk');
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 399
$html .= '</a>';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 400
$html .= ') . . ';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 401
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 402
// Edit summary
905
+ − 403
+ − 404
if ( $row['action'] == 'edit' )
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 405
{
905
+ − 406
$html .= '<i>(';
+ − 407
if ( empty($row['edit_summary']) )
+ − 408
{
+ − 409
$html .= '<span style="color: #808080;">' . $lang->get('history_summary_none_given') . '</span>';
+ − 410
}
+ − 411
else
+ − 412
{
+ − 413
$html .= RenderMan::parse_internal_links(htmlspecialchars($row['edit_summary']));
+ − 414
}
+ − 415
$html .= ')</i>';
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 416
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 417
else
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 418
{
905
+ − 419
switch($row['action'])
+ − 420
{
+ − 421
default:
+ − 422
$html .= $row['action'];
+ − 423
break;
+ − 424
case 'rename':
+ − 425
$html .= $lang->get('log_action_rename', array('old_name' => htmlspecialchars($row['edit_summary'])));
+ − 426
break;
+ − 427
case 'create':
+ − 428
$html .= $lang->get('log_action_create');
+ − 429
break;
913
+ − 430
case 'votereset':
+ − 431
$html .= $lang->get('log_action_votereset', array('num_votes' => $row['edit_summary'], 'plural' => ( intval($row['edit_summary']) == 1 ? '' : $lang->get('meta_plural'))));
+ − 432
break;
905
+ − 433
case 'prot':
+ − 434
case 'unprot':
+ − 435
case 'semiprot':
+ − 436
case 'delete':
912
+ − 437
case 'reupload':
905
+ − 438
$stringmap = array(
+ − 439
'prot' => 'log_action_protect_full',
+ − 440
'unprot' => 'log_action_protect_none',
+ − 441
'semiprot' => 'log_action_protect_semi',
912
+ − 442
'delete' => 'log_action_delete',
+ − 443
'reupload' => 'log_action_reupload'
905
+ − 444
);
909
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 445
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 446
if ( $row['edit_summary'] === '__REVERSION__' )
912
+ − 447
$reason = '<span style="color: #808080;">' . $lang->get('log_msg_reversion') . '</span>';
+ − 448
else if ( $row['action'] == 'reupload' && $row['edit_summary'] === '__ROLLBACK__' )
+ − 449
$reason = '<span style="color: #808080;">' . $lang->get('log_msg_file_restored') . '</span>';
909
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 450
else
94c1ff984286
Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
diff
changeset
+ − 451
$reason = ( !empty($row['edit_summary']) ) ? htmlspecialchars($row['edit_summary']) : '<span style="color: #808080;">' . $lang->get('log_msg_no_reason_provided') . '</span>';
905
+ − 452
+ − 453
$html .= $lang->get($stringmap[$row['action']], array('reason' => $reason));
+ − 454
}
901
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 455
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 456
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 457
return $html;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 458
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 459
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 460
/**
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 461
* Return CSS blurb for size delta
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 462
* @return string
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 463
* @static
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 464
* @access private
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 465
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 466
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 467
private static function get_css($change_size)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 468
{
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 469
// Hardly changed at all? Return a gray
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 470
if ( $change_size <= 5 && $change_size >= -5 )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 471
return 'color: #808080;';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 472
// determine saturation based on size of change (1-500 bytes)
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 473
$change_abs = abs($change_size);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 474
$index = 0x70 * ( $change_abs / 500 );
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 475
if ( $index > 0x70 )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 476
$index = 0x70;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 477
$index = $index + 0x40;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 478
$index = dechex($index);
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 479
if ( strlen($index) < 2 )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 480
$index = "0$index";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 481
$css = ( $change_size > 0 ) ? "color: #00{$index}00;" : "color: #{$index}0000;";
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 482
if ( $change_abs > 500 )
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 483
$css .= ' font-weight: bold;';
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 484
return $css;
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 485
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 486
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 487
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 488
?>