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
1081
745200a9cc2a
Fixed some upgrade bugs; added support for choosing one's own date/time formats; rebrand as 1.1.7
Dan
diff
changeset
+ − 5
* Copyright (C) 2006-2009 Dan Fuhry
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
+ − 6
* 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
+ − 7
*
99ea0b0ac4be
Work 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
* 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
+ − 9
* 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
+ − 10
*
99ea0b0ac4be
Work 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
* 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
+ − 12
* 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
+ − 13
*/
99ea0b0ac4be
Work 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
* 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
+ − 17
* @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
+ − 18
* @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
+ − 19
* @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
+ − 20
* @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
+ − 21
*/
99ea0b0ac4be
Work 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
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
+ − 24
{
99ea0b0ac4be
Work 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
* 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
+ − 27
* 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
+ − 28
<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
+ − 29
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
+ − 30
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
+ − 31
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
+ − 32
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
+ − 33
)
99ea0b0ac4be
Work 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
</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
+ − 35
* @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
+ − 36
*/
99ea0b0ac4be
Work 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
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
+ − 39
99ea0b0ac4be
Work 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
* 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
+ − 42
* @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
+ − 43
* @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
+ − 44
*/
99ea0b0ac4be
Work 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
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
+ − 47
{
99ea0b0ac4be
Work 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
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
+ − 49
{
99ea0b0ac4be
Work 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
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
+ − 51
case 'page':
905
+ − 52
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
+ − 53
$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
+ − 54
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
+ − 55
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
+ − 56
$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
+ − 57
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
+ − 58
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
+ − 59
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
+ − 60
{
99ea0b0ac4be
Work 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
$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
+ − 62
}
99ea0b0ac4be
Work 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
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
+ − 64
{
99ea0b0ac4be
Work 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
$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
+ − 66
$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
+ − 67
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
+ − 68
{
99ea0b0ac4be
Work 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
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
+ − 70
$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
+ − 71
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
+ − 72
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
+ − 73
$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
+ − 74
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
+ − 75
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
+ − 76
$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
+ − 77
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
+ − 78
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
+ − 79
$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
+ − 80
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
+ − 81
}
99ea0b0ac4be
Work 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
$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
+ − 83
}
99ea0b0ac4be
Work 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
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
+ − 85
{
99ea0b0ac4be
Work 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
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
+ − 87
}
99ea0b0ac4be
Work 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
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
+ − 89
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
+ − 90
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
+ − 91
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
+ − 92
}
99ea0b0ac4be
Work 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
* 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
+ − 97
* @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
+ − 98
* @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
+ − 99
*/
99ea0b0ac4be
Work 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
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
+ − 102
{
99ea0b0ac4be
Work 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
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
+ − 104
99ea0b0ac4be
Work 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
$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
+ − 106
$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
+ − 107
'user' => array(),
905
+ − 108
'page' => array(),
+ − 109
'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
+ − 110
);
99ea0b0ac4be
Work 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
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
+ − 112
{
99ea0b0ac4be
Work 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
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
+ − 114
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
+ − 115
{
99ea0b0ac4be
Work 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
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
+ − 117
$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
+ − 118
break;
905
+ − 119
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
+ − 120
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
+ − 121
{
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
$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
+ − 123
$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
+ − 124
$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
+ − 125
}
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
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
+ − 127
{
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
$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
+ − 129
}
905
+ − 130
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
+ − 131
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
+ − 132
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
+ − 133
$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
+ − 134
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
+ − 135
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
+ − 136
$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
+ − 137
$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
+ − 138
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
+ − 139
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
+ − 140
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
+ − 141
$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
+ − 142
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
+ − 143
$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
+ − 144
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
+ − 145
}
99ea0b0ac4be
Work 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
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
+ − 148
{
99ea0b0ac4be
Work 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
$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
+ − 150
}
99ea0b0ac4be
Work 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
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
+ − 152
{
99ea0b0ac4be
Work 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
$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
+ − 154
}
905
+ − 155
if ( !empty($where_bits['action']) )
+ − 156
{
+ − 157
$where_extra .= "\n AND ( (" . implode(") OR (", $where_bits['action']) . ") )";
+ − 158
}
918
+ − 159
if ( ENANO_DBLAYER == 'PGSQL' )
+ − 160
$limit = ( $page_size > 0 ) ? "\n LIMIT $page_size OFFSET $offset" : '';
+ − 161
else
+ − 162
$limit = ( $page_size > 0 ) ? "\n LIMIT $offset, $page_size" : '';
1175
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 163
$columns = ( $just_page_count ) ? 'COUNT(*)' : 'log_id, action, page_id, namespace, CHAR_LENGTH(page_text) AS revision_size, author, author_uid, u.username, time_id, edit_summary, minor_edit';
918
+ − 164
$sql = 'SELECT ' . $columns . ' FROM ' . table_prefix . "logs AS l\n"
1175
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 165
. " LEFT JOIN " . table_prefix . "users AS u\n"
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 166
. " ON ( u.user_id = l.author_uid OR u.user_id IS NULL )\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
+ − 167
. " WHERE log_type = 'page' AND is_draft != 1$where_extra\n"
1152
+ − 168
. " GROUP BY log_id, action, page_id, namespace, page_text, author, time_id, edit_summary, minor_edit\n"
947
+ − 169
. " 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
+ − 170
99ea0b0ac4be
Work 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
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
+ − 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
/**
99ea0b0ac4be
Work 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
* 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
+ − 176
* @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
+ − 177
* @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
+ − 178
* @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
+ − 179
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 180
912
+ − 181
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
+ − 182
{
99ea0b0ac4be
Work 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
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
+ − 184
$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
+ − 185
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
+ − 186
$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
+ − 187
99ea0b0ac4be
Work 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
$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
+ − 189
$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
+ − 190
$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
+ − 191
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
+ − 192
{
99ea0b0ac4be
Work 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
$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
+ − 194
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
+ − 195
{
99ea0b0ac4be
Work 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
// 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
+ − 197
$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
+ − 198
$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
+ − 199
// 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
+ − 200
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
+ − 201
{
99ea0b0ac4be
Work 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 =& $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
+ − 203
$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
+ − 204
$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
+ − 205
$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
+ − 206
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
+ − 207
}
99ea0b0ac4be
Work 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
$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
+ − 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
99ea0b0ac4be
Work 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
// 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
+ − 213
// (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
+ − 214
99ea0b0ac4be
Work 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
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
+ − 216
{
99ea0b0ac4be
Work 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
// 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
+ − 218
// 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
+ − 219
$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
+ − 220
$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
+ − 221
. " 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
+ − 222
// . " 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
+ − 223
. " 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
+ − 224
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
+ − 225
$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
+ − 226
99ea0b0ac4be
Work 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
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
+ − 228
{
99ea0b0ac4be
Work 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
$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
+ − 230
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
+ − 231
{
99ea0b0ac4be
Work 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 =& $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
+ − 233
$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
+ − 234
$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
+ − 235
$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
+ − 236
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
+ − 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
99ea0b0ac4be
Work 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
// 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
+ − 242
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
+ − 243
{
99ea0b0ac4be
Work 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
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
+ − 245
{
99ea0b0ac4be
Work 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_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
+ − 247
$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
+ − 248
}
99ea0b0ac4be
Work 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
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
+ − 250
{
99ea0b0ac4be
Work 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
$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
+ − 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
99ea0b0ac4be
Work 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
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
+ − 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
/**
99ea0b0ac4be
Work 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
* 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
+ − 260
* @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
+ − 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
99ea0b0ac4be
Work 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
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
+ − 264
{
99ea0b0ac4be
Work 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
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
+ − 266
99ea0b0ac4be
Work 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
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
+ − 268
$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
+ − 269
99ea0b0ac4be
Work 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
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
+ − 271
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
+ − 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
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 274
/**
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
+ − 275
* 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
+ − 276
* @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
+ − 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
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
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
+ − 280
{
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
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
+ − 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
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
+ − 284
/**
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
+ − 285
* 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
+ − 286
* @param array dataset from LogDisplay::get_data()
912
+ − 287
* @param bool If true (default), shows action buttons.
+ − 288
* @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
+ − 289
* @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
+ − 290
* @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
+ − 291
*/
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 292
912
+ − 293
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
+ − 294
{
99ea0b0ac4be
Work 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 $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
+ − 296
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
+ − 297
99ea0b0ac4be
Work 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
$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
+ − 299
99ea0b0ac4be
Work 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 = ( 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
+ − 301
$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
+ − 302
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 303
// diff button
912
+ − 304
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
+ − 305
{
912
+ − 306
if ( $row['action'] == 'edit' && !empty($row['parent_revid']) )
+ − 307
{
+ − 308
$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
+ − 309
$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
+ − 310
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
+ − 311
if ( $ispage )
912
+ − 312
$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
+ − 313
912
+ − 314
$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
+ − 315
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
+ − 316
if ( $ispage )
912
+ − 317
$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
+ − 318
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
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
+ − 320
$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
+ − 321
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
$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
+ − 323
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
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
+ − 325
$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
+ − 326
912
+ − 327
if ( $row['parent_revid'] > 0 && isPage($pagekey) )
+ − 328
{
+ − 329
$html .= ', <a href="' . makeUrlNS($row['namespace'], $row['page_id'], false, true) . '#do:edit;rev:' . $row['parent_revid'] . '">' . $lang->get('pagetools_rc_btn_undo') . '</a>';
+ − 330
}
+ − 331
$html .= ') ';
+ − 332
}
+ − 333
else if ( $row['action'] != 'edit' && ( isPage($pagekey) || $row['action'] == 'delete' ) )
+ − 334
{
+ − 335
$html .= '(';
+ − 336
$html .= '<a href="' . makeUrlNS($row['namespace'], $row['page_id'], "do=rollback&id={$row['log_id']}", true). '">' . $lang->get('pagetools_rc_btn_undo') . '</a>';
+ − 337
$html .= ') ';
+ − 338
}
+ − 339
+ − 340
// 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
+ − 341
$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
+ − 342
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
+ − 343
{
912
+ − 344
$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
+ − 345
}
912
+ − 346
$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
+ − 347
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
+ − 348
{
99ea0b0ac4be
Work 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
$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
+ − 350
}
912
+ − 351
$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
+ − 352
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 353
912
+ − 354
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
+ − 355
{
912
+ − 356
// new page?
+ − 357
if ( $row['action'] == 'edit' && empty($row['parent_revid']) )
+ − 358
{
+ − 359
$html .= '<b>N</b> ';
+ − 360
}
+ − 361
// minor edit?
+ − 362
if ( $row['action'] == 'edit' && $row['minor_edit'] )
+ − 363
{
+ − 364
$html .= '<b>m</b> ';
+ − 365
}
+ − 366
+ − 367
// link to the page
+ − 368
$cls = ( isPage($pagekey) ) ? '' : ' class="wikilink-nonexistent"';
+ − 369
$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
+ − 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
99ea0b0ac4be
Work 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
// 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
+ − 373
$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
+ − 374
$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
+ − 375
$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
+ − 376
$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
+ − 377
99ea0b0ac4be
Work 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
// 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
+ − 379
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
+ − 380
{
99ea0b0ac4be
Work 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
$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
+ − 382
$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
+ − 383
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
+ − 384
$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
+ − 385
99ea0b0ac4be
Work 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 .= "<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
+ − 387
$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
+ − 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
99ea0b0ac4be
Work 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
// link to userpage
1175
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 391
$real_username = $row['author_uid'] > 1 && !empty($row['username']) ? $row['username'] : $row['author'];
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 392
$cls = ( isPage($paths->nslist['User'] . $real_username) ) ? '' : ' class="wikilink-nonexistent"';
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 393
$rank_info = $session->get_user_rank($row['author_uid']);
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 394
$html .= '<a style="' . $rank_info['rank_style'] . '" href="' . makeUrlNS('User', sanitize_page_id($real_username), false, true) . '"' . $cls . '>' . htmlspecialchars($real_username) . '</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
+ − 395
$html .= '(';
1175
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 396
$html .= '<a href="' . makeUrlNS('Special', 'PrivateMessages/Compose/To/' . sanitize_page_id($real_username), false, 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
+ − 397
$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
+ − 398
$html .= '</a>, ';
1175
1e2c9819ede3
Logs: Fully integrated an author_uid column. Logs are now linked by user ID instead of just username, so they survive username changes better. Database is changed. Fixes issue 6.
Dan
diff
changeset
+ − 399
$html .= '<a href="' . makeUrlNS('User', sanitize_page_id($real_username), false, true) . '#do:comments">';
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
+ − 400
$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
+ − 401
$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
+ − 402
$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
+ − 403
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 404
// Edit summary
905
+ − 405
+ − 406
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
+ − 407
{
905
+ − 408
$html .= '<i>(';
+ − 409
if ( empty($row['edit_summary']) )
+ − 410
{
+ − 411
$html .= '<span style="color: #808080;">' . $lang->get('history_summary_none_given') . '</span>';
+ − 412
}
+ − 413
else
+ − 414
{
+ − 415
$html .= RenderMan::parse_internal_links(htmlspecialchars($row['edit_summary']));
+ − 416
}
+ − 417
$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
+ − 418
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 419
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
+ − 420
{
905
+ − 421
switch($row['action'])
+ − 422
{
+ − 423
default:
+ − 424
$html .= $row['action'];
+ − 425
break;
+ − 426
case 'rename':
+ − 427
$html .= $lang->get('log_action_rename', array('old_name' => htmlspecialchars($row['edit_summary'])));
+ − 428
break;
+ − 429
case 'create':
+ − 430
$html .= $lang->get('log_action_create');
+ − 431
break;
913
+ − 432
case 'votereset':
+ − 433
$html .= $lang->get('log_action_votereset', array('num_votes' => $row['edit_summary'], 'plural' => ( intval($row['edit_summary']) == 1 ? '' : $lang->get('meta_plural'))));
+ − 434
break;
905
+ − 435
case 'prot':
+ − 436
case 'unprot':
+ − 437
case 'semiprot':
+ − 438
case 'delete':
912
+ − 439
case 'reupload':
905
+ − 440
$stringmap = array(
+ − 441
'prot' => 'log_action_protect_full',
+ − 442
'unprot' => 'log_action_protect_none',
+ − 443
'semiprot' => 'log_action_protect_semi',
912
+ − 444
'delete' => 'log_action_delete',
+ − 445
'reupload' => 'log_action_reupload'
905
+ − 446
);
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
+ − 447
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
+ − 448
if ( $row['edit_summary'] === '__REVERSION__' )
912
+ − 449
$reason = '<span style="color: #808080;">' . $lang->get('log_msg_reversion') . '</span>';
+ − 450
else if ( $row['action'] == 'reupload' && $row['edit_summary'] === '__ROLLBACK__' )
+ − 451
$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
+ − 452
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
+ − 453
$reason = ( !empty($row['edit_summary']) ) ? htmlspecialchars($row['edit_summary']) : '<span style="color: #808080;">' . $lang->get('log_msg_no_reason_provided') . '</span>';
905
+ − 454
+ − 455
$html .= $lang->get($stringmap[$row['action']], array('reason' => $reason));
+ − 456
}
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
+ − 457
}
99ea0b0ac4be
Work 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
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
+ − 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
99ea0b0ac4be
Work 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
/**
99ea0b0ac4be
Work 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
* 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
+ − 464
* @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
+ − 465
* @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
+ − 466
* @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
+ − 467
*/
99ea0b0ac4be
Work 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
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
+ − 470
{
99ea0b0ac4be
Work 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
// 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
+ − 472
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
+ − 473
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
+ − 474
// 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
+ − 475
$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
+ − 476
$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
+ − 477
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
+ − 478
$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
+ − 479
$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
+ − 480
$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
+ − 481
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
+ − 482
$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
+ − 483
$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
+ − 484
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
+ − 485
$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
+ − 486
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
+ − 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
}
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 489
99ea0b0ac4be
Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff
changeset
+ − 490
?>