plugins/SpecialLog.php
author Dan
Mon, 04 May 2009 23:05:52 -0400
changeset 950 36289dcb5c8a
parent 919 1314deadf903
child 960 e74741b8360b
permissions -rw-r--r--
Security log: fixed typo in plugin enable/disable display
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
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    15
 * Version 1.1.6 (Caoineag beta 1)
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    16
 * Copyright (C) 2006-2008 Dan Fuhry
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    17
 *
99ea0b0ac4be Work 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
 * 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
    19
 * 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
    20
 *
99ea0b0ac4be Work 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
 * 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
    22
 * 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
    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
99ea0b0ac4be Work 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
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
    26
{
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    27
  global $paths;
99ea0b0ac4be Work 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
  $paths->add_page(Array(
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    29
    'name'=>'specialpage_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
    'urlname'=>'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
    31
    'namespace'=>'Special',
99ea0b0ac4be Work 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
    'special'=>0,'visible'=>1,'comments_on'=>0,'protected'=>1,'delvotes'=>0,'delvote_ips'=>'',
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    33
    ));
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    34
}
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    35
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    36
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
    37
{
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    38
  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
    39
  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
    40
  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
    41
  
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
    42
  // 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
    43
  // 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
    44
  // 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
    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
  // 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
    47
  // 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
    48
  $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
    49
  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
    50
  {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    51
    $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
    52
  }
94c1ff984286 Finished core of log display 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
  $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
    54
  $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
    55
  
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
  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
    57
  $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
    58
  $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
    59
  $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
    60
  $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
    61
  
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
    62
  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
    63
  {
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
    64
    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
    65
    {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    66
      $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
    67
      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
    68
        $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
    69
      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
    70
        $value = $_POST['value'][$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
    71
        
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    72
      $value = str_replace('/', '.2f', sanitize_page_id($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
    73
        
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    74
      if ( empty($value) || ( $type == 'within' && intval($value) == 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
    75
      {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    76
        $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
    77
      }
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    78
      
94c1ff984286 Finished core of log display 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
      $append = ( !empty($_POST['existing_filters']) ) ? "{$_POST['existing_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
    80
      $url = makeUrlNS('Special', "Log/{$append}{$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
    81
      
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    82
      redirect($url, '', '', 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
    83
    }
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
    84
    $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
    85
    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
    86
    {
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
    87
      $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
    88
      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
    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
        $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
    91
        $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
    92
        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
    93
        {
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
    94
          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
    95
            $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
    96
            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
    97
          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
    98
            $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
    99
            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
   100
          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
   101
            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
   102
            {
94c1ff984286 Finished core of log display 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
              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
   104
              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
   105
                $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
   106
                $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
   107
                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
   108
            }
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   109
            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
   110
          case 'page':
911
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   111
            // tolerate slashes
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   112
            $j = $i;
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   113
            while ( true )
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   114
            {
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   115
              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
   116
              {
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   117
                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
   118
                  break;
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
                $value .= '/' . $params[$j];
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
              else
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   123
              {
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   124
                break;
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   125
              }
facff435cdaa Made Special:Log tolerate literal, unescaped slashes in page names (hack of sorts, but still...)
Dan
parents: 910
diff changeset
   126
            }
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
   127
            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
   128
            {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   129
              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
   130
              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
   131
              $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
   132
              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
   133
              {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   134
                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
   135
              }
94c1ff984286 Finished core of log display 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
            // 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
   138
          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
   139
            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
   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
              $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
   142
            }
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   143
            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
   144
            {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   145
            }
901
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   146
            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
   147
        }
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   148
      }
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   149
    }
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   150
  }
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
   151
  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
   152
  {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   153
    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
   154
  }
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   155
  
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
   156
  $page--;
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   157
  $rowcount = $log->get_row_count();  
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
   158
  $result_url = makeUrlNS('Special', 'Log/' . rtrim(preg_replace('|/?resultpage=([0-9]+)/?|', '/', $paths->getAllParams()), '/') . '/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
   159
  $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
   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
  $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
   162
  
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   163
  $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
   164
  
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   165
  // 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
   166
  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
   167
  {
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
   168
    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
   169
    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
   170
    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
   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
  // 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
   173
  ?>
94c1ff984286 Finished core of log display 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
  <!-- 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
   176
  
94c1ff984286 Finished core of log display 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
  <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
   178
    <?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
   179
    // 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
   180
    $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
   181
    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
   182
    ?>
94c1ff984286 Finished core of log display 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
    <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
   184
      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
   185
        {
94c1ff984286 Finished core of log display 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
          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
   187
          $('#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
   188
            {
94c1ff984286 Finished core of log display 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
              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
   190
              $('.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
   191
              $('#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
   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
          $('#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
   194
        });
94c1ff984286 Finished core of log display 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
    // ]]>
94c1ff984286 Finished core of log display 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
    </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
   197
    <?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
   198
    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
   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
      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
   201
    }
94c1ff984286 Finished core of log display 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
    ?>
94c1ff984286 Finished core of log display 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
    <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
   204
    <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
   205
      <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
   206
        <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
   207
          <?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
   208
        </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
   209
      </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
   210
      <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
   211
      <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
   212
          <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
   213
            <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
   214
            <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
   215
            <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
   216
            <option value="action"><?php echo $lang->get('log_form_filtertype_action'); ?></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
   217
          </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
   218
        </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
   219
        <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
   220
          <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
   221
            <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
   222
          </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
   223
          <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
   224
            <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
   225
          </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
   226
          <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
   227
            <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
   228
            <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
   229
              <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
   230
              <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
   231
              <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
   232
              <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
   233
            </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
   234
          </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
   235
          <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
   236
            <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
   237
              <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
   238
              <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
   239
              <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
   240
              <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
   241
              <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
   242
              <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
   243
              <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
   244
            </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
   245
          </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
   246
        </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
   247
      </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
   248
      <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
   249
        <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
   250
          <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
   251
        </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
   252
      </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
   253
    </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
   254
    </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
   255
  
94c1ff984286 Finished core of log display 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
  </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
   257
  
94c1ff984286 Finished core of log display 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
  <!-- 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
   259
  
94c1ff984286 Finished core of log display 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
  <?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
   261
  
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
   262
  }
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
   263
  
94c1ff984286 Finished core of log display 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
  // 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
   265
  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
   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
    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
   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
  
94c1ff984286 Finished core of log display 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
  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
   271
  {
94c1ff984286 Finished core of log display 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
    // 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
   273
    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
   274
    
94c1ff984286 Finished core of log display 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
    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
   276
    // padding
919
1314deadf903 Fixed log being pushed inwards due to lack of clear: both; before list
Dan
parents: 913
diff changeset
   277
    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
   278
    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
   279
    {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   280
      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
   281
    }
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   282
    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
   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
  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
   285
  {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   286
    // 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
   287
    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
   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
  
94c1ff984286 Finished core of log display 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
  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
   291
    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
   292
  
901
99ea0b0ac4be Work started on Special:Log and associated tools/interfaces. This is far from complete, but the basic functionality is in there.
Dan
parents:
diff changeset
   293
  $output->footer();
905
1e40b33f2e3e Log displayer should support some actions besides edit now
Dan
parents: 901
diff changeset
   294
}
1e40b33f2e3e Log displayer should support some actions besides edit now
Dan
parents: 901
diff changeset
   295
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
   296
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
   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
  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
   299
  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
   300
  
94c1ff984286 Finished core of log display 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
  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
   302
  {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   303
    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
   304
  }
94c1ff984286 Finished core of log display 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
  
94c1ff984286 Finished core of log display 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
  $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
   307
  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
   308
  {
94c1ff984286 Finished core of log display 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
    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
   310
    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
   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
      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
   313
        $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
   314
        $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
   315
        $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
   316
        
94c1ff984286 Finished core of log display 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
        $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
   318
        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
   319
      case '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
   320
        $crumb = $lang->get('log_breadcrumb_page', array('page' => '<a href="' . makeUrl($value, false, true) . '">' . htmlspecialchars(get_page_title($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
   321
        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
   322
      case 'action':
913
3ec535acd11e Deletion vote reset is now logged and able to be rolled back
Dan
parents: 911
diff changeset
   323
        $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
   324
        $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
   325
        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
   326
      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
   327
        $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
   328
        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
   329
        {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   330
          $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
   331
          $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
   332
        }
94c1ff984286 Finished core of log display 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
        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
   334
        {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   335
          $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
   336
          $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
   337
        }
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   338
        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
   339
        {
94c1ff984286 Finished core of log display interface including filter management. There is still a bit of a to-do list, especially regarding rollbacks and reuploads.
Dan
parents: 905
diff changeset
   340
          $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
   341
          $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
   342
        }
94c1ff984286 Finished core of log display 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
        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
   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 / 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
   346
          $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
   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
94c1ff984286 Finished core of log display 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
          $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
   351
        }
94c1ff984286 Finished core of log display 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
        $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
   353
        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
   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
    $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
   356
  }
94c1ff984286 Finished core of log display 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
  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
   358
}
94c1ff984286 Finished core of log display 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
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
   361
{
94c1ff984286 Finished core of log display 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
  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
   363
  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
   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
  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
   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
  $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
   368
  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
   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
    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
   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
      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
   373
      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
   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
    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
   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
      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
   378
      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
   379
        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
   380
      
94c1ff984286 Finished core of log display 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
      $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
   382
      $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
   383
      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
   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
        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
   386
          $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
   387
          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
   388
        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
   389
          $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
   390
          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
   391
        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
   392
          $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
   393
          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
   394
        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
   395
          $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
   396
          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
   397
      }
94c1ff984286 Finished core of log display 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
      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
   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
        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
   401
        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
   402
      }
94c1ff984286 Finished core of log display 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
    }
94c1ff984286 Finished core of log display 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
  }
94c1ff984286 Finished core of log display 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
  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
   406
  {
94c1ff984286 Finished core of log display 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
    $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
   408
    $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
   409
  }
94c1ff984286 Finished core of log display 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
  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
   411
  {
94c1ff984286 Finished core of log display 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
    $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
   413
  }
94c1ff984286 Finished core of log display 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
  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
   416
}