plugins/SpecialLog.php
author Dan
Fri, 21 Aug 2009 13:48:27 -0400
changeset 1087 c3db5e44f8f3
parent 1081 745200a9cc2a
child 1227 bdac73ed481e
permissions -rwxr-xr-x
Updated readme for 1.1.7/1.2 series in general
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
/**!info**
99ea0b0ac4be Work 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
  "Plugin Name"  : "plugin_speciallog_title",
99ea0b0ac4be Work 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
  "Plugin URI"   : "http://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
     6
  "Description"  : "plugin_speciallog_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
     7
  "Author"       : "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
     8
  "Version"      : "1.1.6",
99ea0b0ac4be Work 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
  "Author URI"   : "http://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
    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
**!*/
99ea0b0ac4be Work 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
99ea0b0ac4be Work 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
 * 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
parents: 981
diff changeset
    15
 * 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
    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
 * 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
    18
 * 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
    19
 *
99ea0b0ac4be Work 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
 * 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
    21
 * 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
    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
function SpecialLog_paths_init()
99ea0b0ac4be Work 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
{
960
e74741b8360b Added register_special_page() function, to make it much easier to create special pages. Also, rewrote Special:Memberlist to use more efficient fetch method and not use an unbuffered whole-table query.
Dan
parents: 919
diff changeset
    26
  register_special_page('Log', 'specialpage_log');
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
    27
}
99ea0b0ac4be Work 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
99ea0b0ac4be Work 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
function page_Special_Log()
99ea0b0ac4be Work 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
{
99ea0b0ac4be Work 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
  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
    32
  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
    33
  global $output;
99ea0b0ac4be Work 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
  
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
parents: 905
diff changeset
    35
  // FIXME: This doesn't currently prohibit viewing of aggregate logs that might include a page for which
910
e5de998b934b Meh, finished my half-written-out thought in a FIXME in Special:Log code.
Dan
parents: 909
diff changeset
    36
  // we don't have permission to view history. It does, however, block access if a list of pages is given
e5de998b934b Meh, finished my half-written-out thought in a FIXME in Special:Log code.
Dan
parents: 909
diff changeset
    37
  // and one of those doesn't allow history_view.
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
parents: 905
diff changeset
    38
  
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
parents: 905
diff changeset
    39
  // FIXME: This is a real hack. We're trying to get permissions on a random non-existent article, which
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
parents: 905
diff changeset
    40
  // effectively forces calculation to occur based on site-wide permissions.
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
parents: 905
diff changeset
    41
  $pid = '';
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
parents: 905
diff changeset
    42
  for ( $i = 0; $i < 32; $i++ )
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
parents: 905
diff changeset
    43
  {
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
parents: 905
diff changeset
    44
    $pid .= chr(mt_rand(32, 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
parents: 905
diff changeset
    45
  }
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
parents: 905
diff changeset
    46
  $perms = $session->fetch_page_acl($pid, 'Article');
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
parents: 905
diff changeset
    47
  $perms_changed = false;
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
parents: 905
diff changeset
    48
  
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
    49
  require_once(ENANO_ROOT . '/includes/log.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
    50
  $log = new 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
    51
  $page = 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
    52
  $pagesize = 50;
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
parents: 905
diff changeset
    53
  $fmt = 'full';
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
  
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
parents: 905
diff changeset
    55
  if ( $params = $paths->getAllParams() )
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
    56
  {
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
parents: 905
diff changeset
    57
    if ( $params === 'AddFilter' && !empty($_POST['type']) && !empty($_POST['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
parents: 905
diff changeset
    58
    {
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
parents: 905
diff changeset
    59
      $type = $_POST['type'];
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
parents: 905
diff changeset
    60
      if ( $type == 'within' )
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
parents: 905
diff changeset
    61
        $value = strval(intval($_POST['value']['within'])) . $_POST['value']['withinunits'];
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
parents: 905
diff changeset
    62
      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
parents: 905
diff changeset
    63
        $value = $_POST['value'][$type];
981
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    64
      
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    65
      if ( !ctype_digit($value) )
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    66
        $value = str_replace('/', '.2f', sanitize_page_id($value));
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    67
      
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    68
      if ( $value !== '0' && (empty($value) || ( $type == 'within' && intval($value) == 0 )) )
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
parents: 905
diff changeset
    69
      {
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
parents: 905
diff changeset
    70
        $adderror = $lang->get('log_err_addfilter_field_empty');
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
parents: 905
diff changeset
    71
      }
981
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    72
      else
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    73
      {
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    74
        $append = ( !empty($_POST['existing_filters']) ) ? "{$_POST['existing_filters']}/" : '';
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    75
        $url = makeUrlNS('Special', "Log/{$append}{$type}={$value}");
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    76
        
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    77
        redirect($url, '', '', 0);
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
    78
      }
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
parents: 905
diff changeset
    79
    }
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
parents: 905
diff changeset
    80
    $params = explode('/', $params);
911
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
    81
    foreach ( $params as $i => $param )
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
    82
    {
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
parents: 905
diff changeset
    83
      $param = str_replace('.2f', '/', dirtify_page_id($param));
911
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
    84
      if ( preg_match('/^([a-z]+)!?=(.+?)$/', $param, $match) )
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
    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
        $name =& $match[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
    87
        $value =& $match[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
    88
        switch($name)
99ea0b0ac4be Work 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
        {
99ea0b0ac4be Work 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
          case 'resultpage':
99ea0b0ac4be Work 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
            $page = 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
    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
          case '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
    94
            $pagesize = 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
    95
            break;
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
parents: 905
diff changeset
    96
          case 'fmt':
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
parents: 905
diff changeset
    97
            switch($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
parents: 905
diff changeset
    98
            {
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
parents: 905
diff changeset
    99
              case 'barenaked':
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
parents: 905
diff changeset
   100
              case 'ajax':
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
parents: 905
diff changeset
   101
                $fmt = 'naked';
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
parents: 905
diff changeset
   102
                $output = new Output_Naked();
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
parents: 905
diff changeset
   103
                break;
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
parents: 905
diff changeset
   104
            }
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
parents: 905
diff changeset
   105
            break;
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
parents: 905
diff changeset
   106
          case 'page':
911
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   107
            // tolerate slashes
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   108
            $j = $i;
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   109
            while ( true )
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   110
            {
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   111
              if ( isset($params[++$j]) )
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   112
              {
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   113
                if ( preg_match('/^([a-z]+)!?=(.+?)$/', $params[$j]) )
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   114
                  break;
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   115
                
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   116
                $value .= '/' . $params[$j];
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   117
              }
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   118
              else
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   119
              {
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   120
                break;
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   121
              }
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   122
            }
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
parents: 905
diff changeset
   123
            if ( get_class($perms) == 'sessionManager' )
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
parents: 905
diff changeset
   124
            {
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
parents: 905
diff changeset
   125
              unset($perms);
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
parents: 905
diff changeset
   126
              list($pid, $ns) = RenderMan::strToPageID($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
parents: 905
diff changeset
   127
              $perms = $session->fetch_page_acl($pid, $ns);
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
parents: 905
diff changeset
   128
              if ( !$perms->get_permissions('history_view') )
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
parents: 905
diff changeset
   129
              {
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
parents: 905
diff changeset
   130
                die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('log_err_access_denied') . '</p>');
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
parents: 905
diff changeset
   131
              }
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
parents: 905
diff changeset
   132
            }
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
parents: 905
diff changeset
   133
            // no break here on purpose
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
   134
          default:
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
parents: 905
diff changeset
   135
            try
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
parents: 905
diff changeset
   136
            {
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
parents: 905
diff changeset
   137
              $log->add_criterion($name, $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
parents: 905
diff changeset
   138
            }
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
parents: 905
diff changeset
   139
            catch ( Exception $e )
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
parents: 905
diff changeset
   140
            {
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
parents: 905
diff changeset
   141
            }
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
   142
            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
   143
        }
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   144
      }
99ea0b0ac4be Work 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
  }
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
parents: 905
diff changeset
   147
  if ( !$perms->get_permissions('history_view') )
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
parents: 905
diff changeset
   148
  {
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
parents: 905
diff changeset
   149
    die_friendly($lang->get('etc_access_denied_short'), '<p>' . $lang->get('log_err_access_denied') . '</p>');
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
parents: 905
diff changeset
   150
  }
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
parents: 905
diff changeset
   151
  
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
   152
  $page--;
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
parents: 970
diff changeset
   153
  $rowcount = $log->get_row_count();
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
parents: 970
diff changeset
   154
  $paramsbit = rtrim(preg_replace('|/?resultpage=([0-9]+)/?|', '/', $paths->getAllParams()), '/');
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
parents: 970
diff changeset
   155
  $paramsbit = ( !empty($paramsbit) ) ? "/$paramsbit" : '';
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
parents: 970
diff changeset
   156
  $result_url = makeUrlNS('Special', 'Log' . $paramsbit . '/resultpage=%s', 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
   157
  $paginator = generate_paginator($page, ceil($rowcount / $pagesize), $result_url);
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   158
  
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   159
  $dataset = $log->get_data($page * $pagesize, $pagesize);
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   160
  
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   161
  $output->header();
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
parents: 905
diff changeset
   162
  
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
parents: 905
diff changeset
   163
  // breadcrumbs
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
parents: 905
diff changeset
   164
  if ( $fmt != 'naked' )
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
   165
  {
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
parents: 905
diff changeset
   166
    echo '<div class="breadcrumbs" style="font-weight: normal;" id="log-breadcrumbs">';
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
parents: 905
diff changeset
   167
    echo speciallog_generate_breadcrumbs($log->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
parents: 905
diff changeset
   168
    echo '</div>';
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
parents: 905
diff changeset
   169
  
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
parents: 905
diff changeset
   170
  // form
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
parents: 905
diff changeset
   171
  ?>
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
parents: 905
diff changeset
   172
  
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
parents: 905
diff changeset
   173
  <!-- Begin filter add form -->
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
parents: 905
diff changeset
   174
  
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
parents: 905
diff changeset
   175
  <form action="<?php echo makeUrlNS('Special', 'Log/AddFilter', false, true); ?>" method="post" enctype="multipart/form-data">
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
parents: 905
diff changeset
   176
    <?php
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
parents: 905
diff changeset
   177
    // serialize parameters
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
parents: 905
diff changeset
   178
    $params_pre = rtrim(preg_replace('#/?resultpage=[0-9]+/?#', '/', $paths->getAllParams()), '/');
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
parents: 905
diff changeset
   179
    echo '<input type="hidden" name="existing_filters" value="' . htmlspecialchars($params_pre) . '" />';
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
parents: 905
diff changeset
   180
    ?>
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
parents: 905
diff changeset
   181
    <script type="text/javascript">//<![CDATA[
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
parents: 905
diff changeset
   182
      addOnloadHook(function()
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
parents: 905
diff changeset
   183
        {
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
parents: 905
diff changeset
   184
          load_component('jquery');
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
parents: 905
diff changeset
   185
          $('#log_addfilter_select').change(function()
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
parents: 905
diff changeset
   186
            {
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
parents: 905
diff changeset
   187
              var value = $(this).val();
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
parents: 905
diff changeset
   188
              $('.log_addfilter').hide();
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
parents: 905
diff changeset
   189
              $('#log_addform_' + value).show();
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
parents: 905
diff changeset
   190
            });
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
parents: 905
diff changeset
   191
          $('#log_addform_' + $('#log_addfilter_select').val()).show();
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
parents: 905
diff changeset
   192
        });
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
parents: 905
diff changeset
   193
    // ]]>
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
parents: 905
diff changeset
   194
    </script>
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
parents: 905
diff changeset
   195
    <?php
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
parents: 905
diff changeset
   196
    if ( isset($adderror) )
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
parents: 905
diff changeset
   197
    {
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
parents: 905
diff changeset
   198
      echo '<div class="error-box">' . $adderror . '</div>';
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
parents: 905
diff changeset
   199
    }
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
parents: 905
diff changeset
   200
    ?>
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
parents: 905
diff changeset
   201
    <div class="tblholder">
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
parents: 905
diff changeset
   202
    <table border="0" cellspacing="1" cellpadding="4">
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
parents: 905
diff changeset
   203
      <tr>
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
parents: 905
diff changeset
   204
        <th colspan="2">
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
parents: 905
diff changeset
   205
          <?php echo $lang->get('log_heading_addfilter'); ?>
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
parents: 905
diff changeset
   206
        </th>
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
parents: 905
diff changeset
   207
      </tr>
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
parents: 905
diff changeset
   208
      <tr>
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
parents: 905
diff changeset
   209
      <td class="row1" style="width: 50%; text-align: right;">
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
parents: 905
diff changeset
   210
          <select name="type" id="log_addfilter_select">
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
parents: 905
diff changeset
   211
            <option value="user"><?php echo $lang->get('log_form_filtertype_user'); ?></option>
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
parents: 905
diff changeset
   212
            <option value="page"><?php echo $lang->get('log_form_filtertype_page'); ?></option>
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
parents: 905
diff changeset
   213
            <option value="within"><?php echo $lang->get('log_form_filtertype_within'); ?></option>
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
parents: 905
diff changeset
   214
            <option value="action"><?php echo $lang->get('log_form_filtertype_action'); ?></option>
981
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   215
            <option value="minor"><?php echo $lang->get('log_form_filtertype_minor'); ?></option>
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
parents: 905
diff changeset
   216
          </select>
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
parents: 905
diff changeset
   217
        </td>
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
parents: 905
diff changeset
   218
        <td class="row1" style="width: 50%; text-align: left;">
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
parents: 905
diff changeset
   219
          <div class="log_addfilter" id="log_addform_user">
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
parents: 905
diff changeset
   220
            <input type="text" class="autofill username" name="value[user]" size="40" />
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
parents: 905
diff changeset
   221
          </div>
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
parents: 905
diff changeset
   222
          <div class="log_addfilter" id="log_addform_page">
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
parents: 905
diff changeset
   223
            <input type="text" class="autofill page" name="value[page]" size="40" />
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
parents: 905
diff changeset
   224
          </div>
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
parents: 905
diff changeset
   225
          <div class="log_addfilter" id="log_addform_within">
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
parents: 905
diff changeset
   226
            <input type="text" name="value[within]" size="7" />
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
parents: 905
diff changeset
   227
            <select name="value[withinunits]">
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
parents: 905
diff changeset
   228
              <option value="d"><?php echo $lang->get('etc_unit_days'); ?></option>
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
parents: 905
diff changeset
   229
              <option value="w"><?php echo $lang->get('etc_unit_weeks'); ?></option>
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
parents: 905
diff changeset
   230
              <option value="m"><?php echo $lang->get('etc_unit_months'); ?></option>
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
parents: 905
diff changeset
   231
              <option value="y"><?php echo $lang->get('etc_unit_years'); ?></option>
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
parents: 905
diff changeset
   232
            </select>
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
parents: 905
diff changeset
   233
          </div>
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
parents: 905
diff changeset
   234
          <div class="log_addfilter" id="log_addform_action">
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
parents: 905
diff changeset
   235
            <select name="value[action]">
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
parents: 905
diff changeset
   236
              <option value="rename"><?php echo $lang->get('log_formaction_rename'); ?></option>
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
parents: 905
diff changeset
   237
              <option value="create"><?php echo $lang->get('log_formaction_create'); ?></option>
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
parents: 905
diff changeset
   238
              <option value="delete"><?php echo $lang->get('log_formaction_delete'); ?></option>
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
parents: 905
diff changeset
   239
              <option value="protect"><?php echo $lang->get('log_action_protect'); ?></option>
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
parents: 905
diff changeset
   240
              <option value="edit"><?php echo $lang->get('log_action_edit'); ?></option>
913
3ec535acd11e Deletion vote reset is now logged and able to be rolled back
Dan
parents: 911
diff changeset
   241
              <option value="edit"><?php echo $lang->get('log_formaction_reupload'); ?></option>
3ec535acd11e Deletion vote reset is now logged and able to be rolled back
Dan
parents: 911
diff changeset
   242
              <option value="edit"><?php echo $lang->get('log_formaction_votereset'); ?></option>
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
parents: 905
diff changeset
   243
            </select>
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
parents: 905
diff changeset
   244
          </div>
981
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   245
          <div class="log_addfilter" id="log_addform_minor">
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   246
            <label>
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   247
              <input type="radio" name="value[minor]" value="1" checked="checked" />
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   248
              <?php echo $lang->get('log_form_filtertype_minor_yes'); ?>
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   249
            </label>
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   250
            <label>
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   251
              <input type="radio" name="value[minor]" value="0" />
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   252
              <?php echo $lang->get('log_form_filtertype_minor_no'); ?>
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   253
            </label>
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   254
          </div>
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
parents: 905
diff changeset
   255
        </td>
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
parents: 905
diff changeset
   256
      </tr>
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
parents: 905
diff changeset
   257
      <tr>
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
parents: 905
diff changeset
   258
        <th colspan="2" class="subhead">
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
parents: 905
diff changeset
   259
          <input type="submit" value="<?php echo $lang->get('log_btn_add_filter'); ?>" />
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
parents: 905
diff changeset
   260
        </th>
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
parents: 905
diff changeset
   261
      </tr>
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
parents: 905
diff changeset
   262
    </table>
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
parents: 905
diff changeset
   263
    </div>
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
parents: 905
diff changeset
   264
  
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
parents: 905
diff changeset
   265
  </form>
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
parents: 905
diff changeset
   266
  
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
parents: 905
diff changeset
   267
  <!-- End filter add form -->
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
parents: 905
diff changeset
   268
  
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
parents: 905
diff changeset
   269
  <?php
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
parents: 905
diff changeset
   270
  
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
   271
  }
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
parents: 905
diff changeset
   272
  
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
parents: 905
diff changeset
   273
  // start of actual log output area
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
parents: 905
diff changeset
   274
  if ( $fmt != 'naked' )
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
parents: 905
diff changeset
   275
  {
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
parents: 905
diff changeset
   276
    echo '<div id="log-body">';
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
parents: 905
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
parents: 905
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
parents: 905
diff changeset
   279
  if ( $rowcount > 0 )
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
parents: 905
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
parents: 905
diff changeset
   281
    // we have some results, show pagination + result list
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
parents: 905
diff changeset
   282
    echo '<h3 style="float: left;">' . $lang->get('log_heading_logdisplay') . '</h3>';
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
parents: 905
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
parents: 905
diff changeset
   284
    echo $paginator;
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
parents: 905
diff changeset
   285
    // padding
919
1314deadf903 Fixed log being pushed inwards due to lack of clear: both; before list
Dan
parents: 913
diff changeset
   286
    echo '<div style="height: 10px; clear: both;"></div>';
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
parents: 905
diff changeset
   287
    foreach ( $dataset as $row )
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
parents: 905
diff changeset
   288
    {
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
parents: 905
diff changeset
   289
      echo LogDisplay::render_row($row) . '<br />';
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
parents: 905
diff changeset
   290
    }
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
parents: 905
diff changeset
   291
    echo $paginator;
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
parents: 905
diff changeset
   292
  }
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
parents: 905
diff changeset
   293
  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
parents: 905
diff changeset
   294
  {
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
parents: 905
diff changeset
   295
    // no results
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
parents: 905
diff changeset
   296
    echo '<h2 class="emptymessage">' . $lang->get('log_msg_no_results') . '</h2>';
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
parents: 905
diff changeset
   297
  }
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
parents: 905
diff changeset
   298
  
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
parents: 905
diff changeset
   299
  if ( $fmt != 'naked' )
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
parents: 905
diff changeset
   300
    echo '</div> <!-- div#log-body -->';
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
parents: 905
diff changeset
   301
  
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
   302
  $output->footer();
905
1e40b33f2e3e Log displayer should support some actions besides edit now
Dan
parents: 901
diff changeset
   303
}
1e40b33f2e3e Log displayer should support some actions besides edit now
Dan
parents: 901
diff changeset
   304
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
parents: 905
diff changeset
   305
function speciallog_generate_breadcrumbs($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
parents: 905
diff changeset
   306
{
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
parents: 905
diff changeset
   307
  global $db, $session, $paths, $template, $plugins; // Common objects
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
parents: 905
diff changeset
   308
  global $lang;
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
parents: 905
diff changeset
   309
  
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
parents: 905
diff changeset
   310
  if ( count($criteria) == 0 )
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
parents: 905
diff changeset
   311
  {
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
parents: 905
diff changeset
   312
    return $lang->get('log_msg_no_filters');
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
parents: 905
diff changeset
   313
  }
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
parents: 905
diff changeset
   314
  
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
parents: 905
diff changeset
   315
  $html = 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
parents: 905
diff changeset
   316
  foreach ( $criteria as $criterion )
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
parents: 905
diff changeset
   317
  {
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
parents: 905
diff changeset
   318
    list($type, $value) = $criterion;
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
parents: 905
diff changeset
   319
    switch($type)
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
parents: 905
diff changeset
   320
    {
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
parents: 905
diff changeset
   321
      case 'user':
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
parents: 905
diff changeset
   322
        $rank_info = $session->get_user_rank($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
parents: 905
diff changeset
   323
        $user_link = '<a href="' . makeUrlNS('User', $value, false, true) . '" style="' . $rank_info['rank_style'] . '" title="' . htmlspecialchars($lang->get($rank_info['rank_title'])) . '">';
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
parents: 905
diff changeset
   324
        $user_link .= htmlspecialchars(str_replace('_', ' ', $value)) . '</a>';
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
parents: 905
diff changeset
   325
        
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
parents: 905
diff changeset
   326
        $crumb = $lang->get('log_breadcrumb_author', array('user' => $user_link));
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
parents: 905
diff changeset
   327
        break;
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
parents: 905
diff changeset
   328
      case 'page':
970
d894086f38cc Fixed behavior of log display and title fetch for nonexistent pages
Dan
parents: 960
diff changeset
   329
        list($pid, $ns) = RenderMan::strToPageID($value);
d894086f38cc Fixed behavior of log display and title fetch for nonexistent pages
Dan
parents: 960
diff changeset
   330
        $ns = namespace_factory($pid, $ns);
d894086f38cc Fixed behavior of log display and title fetch for nonexistent pages
Dan
parents: 960
diff changeset
   331
        $exist = $ns->exists() ? '' : ' class="wikilink-nonexistent"';
d894086f38cc Fixed behavior of log display and title fetch for nonexistent pages
Dan
parents: 960
diff changeset
   332
        $crumb = $lang->get('log_breadcrumb_page', array('page' => '<a' . $exist . ' href="' . makeUrl($value, false, true) . '">' . htmlspecialchars($ns->title) . '</a>'));
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
parents: 905
diff changeset
   333
        break;
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
parents: 905
diff changeset
   334
      case 'action':
913
3ec535acd11e Deletion vote reset is now logged and able to be rolled back
Dan
parents: 911
diff changeset
   335
        $action = ( $lang->get("log_formaction_{$value}") === "log_formaction_{$value}" ) ? $lang->get("log_action_{$value}") : $lang->get("log_formaction_{$value}");
3ec535acd11e Deletion vote reset is now logged and able to be rolled back
Dan
parents: 911
diff changeset
   336
        $crumb = $lang->get('log_breadcrumb_action', array('action' => htmlspecialchars($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
parents: 905
diff changeset
   337
        break;
981
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   338
      case 'minor':
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   339
        $crumb = $value == '1' ? $lang->get('log_form_filtertype_minor_yes') : $lang->get('log_form_filtertype_minor_no');
888502d761b4 Added minor edit filter to Special:Log
Dan
parents: 980
diff changeset
   340
        break;
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
parents: 905
diff changeset
   341
      case 'within':
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
parents: 905
diff changeset
   342
        $value = intval($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
parents: 905
diff changeset
   343
        if ( $value % 31536000 == 0 )
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
parents: 905
diff changeset
   344
        {
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
parents: 905
diff changeset
   345
          $n = $value / 31536000;
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
parents: 905
diff changeset
   346
          $value = "$n " . $lang->get( $n > 1 ? 'etc_unit_years' : 'etc_unit_year' );
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
parents: 905
diff changeset
   347
        }
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
parents: 905
diff changeset
   348
        else if ( $value % 2592000 == 0 )
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
parents: 905
diff changeset
   349
        {
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
parents: 905
diff changeset
   350
          $n = $value / 2592000;
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
parents: 905
diff changeset
   351
          $value = "$n " . $lang->get( $n > 1 ? 'etc_unit_months' : 'etc_unit_month' );
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
parents: 905
diff changeset
   352
        }
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
parents: 905
diff changeset
   353
        else if ( $value % 604800 == 0 )
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
parents: 905
diff changeset
   354
        {
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
parents: 905
diff changeset
   355
          $n = $value / 604800;
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
parents: 905
diff changeset
   356
          $value = "$n " . $lang->get( $n > 1 ? 'etc_unit_weeks' : 'etc_unit_week' );
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
parents: 905
diff changeset
   357
        }
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
parents: 905
diff changeset
   358
        else if ( $value % 86400 == 0 )
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
parents: 905
diff changeset
   359
        {
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
parents: 905
diff changeset
   360
          $n = $value / 86400;
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
parents: 905
diff changeset
   361
          $value = "$n " . $lang->get( $n > 1 ? 'etc_unit_days' : 'etc_unit_day' );
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
parents: 905
diff changeset
   362
        }
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
parents: 905
diff changeset
   363
        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
parents: 905
diff changeset
   364
        {
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
parents: 905
diff changeset
   365
          $value = "$value " . $lang->get( $value > 1 ? 'etc_unit_seconds' : 'etc_unit_second' );
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
parents: 905
diff changeset
   366
        }
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
parents: 905
diff changeset
   367
        $crumb = $lang->get('log_breadcrumb_within', array('time' => $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
parents: 905
diff changeset
   368
        break;
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
parents: 905
diff changeset
   369
    }
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
parents: 905
diff changeset
   370
    $html[] = $crumb . ' ' . speciallog_crumb_remove_link($criterion);
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
parents: 905
diff changeset
   371
  }
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
parents: 905
diff changeset
   372
  return implode(' &raquo; ', $html);
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
parents: 905
diff changeset
   373
}
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
parents: 905
diff changeset
   374
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
parents: 905
diff changeset
   375
function speciallog_crumb_remove_link($criterion)
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
parents: 905
diff changeset
   376
{
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
parents: 905
diff changeset
   377
  global $db, $session, $paths, $template, $plugins; // Common objects
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
parents: 905
diff changeset
   378
  global $lang;
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
parents: 905
diff changeset
   379
  
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
parents: 905
diff changeset
   380
  list($type, $value) = $criterion;
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
parents: 905
diff changeset
   381
  
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
parents: 905
diff changeset
   382
  $params = explode('/', dirtify_page_id($paths->getAllParams()));
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
parents: 905
diff changeset
   383
  foreach ( $params as $i => $param )
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
parents: 905
diff changeset
   384
  {
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
parents: 905
diff changeset
   385
    if ( $param === "$type=$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
parents: 905
diff changeset
   386
    {
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
parents: 905
diff changeset
   387
      unset($params[$i]);
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
parents: 905
diff changeset
   388
      break;
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
parents: 905
diff changeset
   389
    }
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
parents: 905
diff changeset
   390
    else if ( $type === 'within' )
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
parents: 905
diff changeset
   391
    {
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
parents: 905
diff changeset
   392
      list($ptype, $pvalue) = explode('=', $param);
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
parents: 905
diff changeset
   393
      if ( $ptype !== 'within' )
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
parents: 905
diff changeset
   394
        continue;
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
parents: 905
diff changeset
   395
      
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
parents: 905
diff changeset
   396
      $lastchar = substr($pvalue, -1);
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
parents: 905
diff changeset
   397
      $amt = intval($pvalue);
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
parents: 905
diff changeset
   398
      switch($lastchar)
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
parents: 905
diff changeset
   399
      {
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
parents: 905
diff changeset
   400
        case 'd':
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
parents: 905
diff changeset
   401
          $amt = $amt * 86400;
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
parents: 905
diff changeset
   402
          break;
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
parents: 905
diff changeset
   403
        case 'w':
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
parents: 905
diff changeset
   404
          $amt = $amt * 604800;
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
parents: 905
diff changeset
   405
          break;
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
parents: 905
diff changeset
   406
        case 'm':
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
parents: 905
diff changeset
   407
          $amt = $amt * 2592000;
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
parents: 905
diff changeset
   408
          break;
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
parents: 905
diff changeset
   409
        case 'y':
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
parents: 905
diff changeset
   410
          $amt = $amt * 31536000;
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
parents: 905
diff changeset
   411
          break;
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
parents: 905
diff changeset
   412
      }
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
parents: 905
diff changeset
   413
      if ( $amt === $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
parents: 905
diff changeset
   414
      {
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
parents: 905
diff changeset
   415
        unset($params[$i]);
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
parents: 905
diff changeset
   416
        break;
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
parents: 905
diff changeset
   417
      }
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
parents: 905
diff changeset
   418
    }
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
parents: 905
diff changeset
   419
  }
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
parents: 905
diff changeset
   420
  if ( count($params) > 0 )
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
parents: 905
diff changeset
   421
  {
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
parents: 905
diff changeset
   422
    $params = implode('/', $params);
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
parents: 905
diff changeset
   423
    $url = makeUrlNS('Special', "Log/$params", false, true);
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
parents: 905
diff changeset
   424
  }
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
parents: 905
diff changeset
   425
  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
parents: 905
diff changeset
   426
  {
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
parents: 905
diff changeset
   427
    $url = makeUrlNS('Special', "Log", false, true);
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
parents: 905
diff changeset
   428
  }
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
parents: 905
diff changeset
   429
  
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
parents: 905
diff changeset
   430
  return '<sup><a href="' . $url . '">(x)</a></sup>';
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
parents: 905
diff changeset
   431
}