Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

mcp_logs.php

Zuletzt modifiziert: 09.10.2024, 12:52 - Dateigröße: 5.98 KiB


 001  <?php
 002  /**
 003  *
 004  * This file is part of the phpBB Forum Software package.
 005  *
 006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
 007  * @license GNU General Public License, version 2 (GPL-2.0)
 008  *
 009  * For full copyright and license information, please see
 010  * the docs/CREDITS.txt file.
 011  *
 012  */
 013   
 014  /**
 015  * @ignore
 016  */
 017  if (!defined('IN_PHPBB'))
 018  {
 019      exit;
 020  }
 021   
 022  /**
 023  * mcp_logs
 024  * Handling warning the users
 025  */
 026  class mcp_logs
 027  {
 028      var $u_action;
 029      var $p_master;
 030   
 031      function mcp_logs(&$p_master)
 032      {
 033          $this->p_master = &$p_master;
 034      }
 035   
 036      function main($id, $mode)
 037      {
 038          global $auth, $db, $user, $template;
 039          global $config, $phpbb_root_path, $phpEx, $phpbb_container, $phpbb_log;
 040   
 041          $user->add_lang('acp/common');
 042   
 043          $action = request_var('action', array('' => ''));
 044   
 045          if (is_array($action))
 046          {
 047              list($action, ) = each($action);
 048          }
 049          else
 050          {
 051              $action = request_var('action', '');
 052          }
 053   
 054          // Set up general vars
 055          $start        = request_var('start', 0);
 056          $deletemark = ($action == 'del_marked') ? true : false;
 057          $deleteall    = ($action == 'del_all') ? true : false;
 058          $marked        = request_var('mark', array(0));
 059   
 060          // Sort keys
 061          $sort_days    = request_var('st', 0);
 062          $sort_key    = request_var('sk', 't');
 063          $sort_dir    = request_var('sd', 'd');
 064   
 065          $this->tpl_name = 'mcp_logs';
 066          $this->page_title = 'MCP_LOGS';
 067   
 068          $pagination = $phpbb_container->get('pagination');
 069   
 070          $forum_list = array_values(array_intersect(get_forum_list('f_read'), get_forum_list('m_')));
 071          $forum_list[] = 0;
 072   
 073          $forum_id = $topic_id = 0;
 074   
 075          switch ($mode)
 076          {
 077              case 'front':
 078              break;
 079   
 080              case 'forum_logs':
 081                  $forum_id = request_var('f', 0);
 082   
 083                  if (!in_array($forum_id, $forum_list))
 084                  {
 085                      trigger_error('NOT_AUTHORISED');
 086                  }
 087   
 088                  $forum_list = array($forum_id);
 089              break;
 090   
 091              case 'topic_logs':
 092                  $topic_id = request_var('t', 0);
 093   
 094                  $sql = 'SELECT forum_id
 095                      FROM ' . TOPICS_TABLE . '
 096                      WHERE topic_id = ' . $topic_id;
 097                  $result = $db->sql_query($sql);
 098                  $forum_id = (int) $db->sql_fetchfield('forum_id');
 099                  $db->sql_freeresult($result);
 100   
 101                  if (!in_array($forum_id, $forum_list))
 102                  {
 103                      trigger_error('NOT_AUTHORISED');
 104                  }
 105   
 106                  $forum_list = array($forum_id);
 107              break;
 108          }
 109   
 110          // Delete entries if requested and able
 111          if (($deletemark || $deleteall) && $auth->acl_get('a_clearlogs'))
 112          {
 113              if (confirm_box(true))
 114              {
 115                  if ($deletemark && sizeof($marked))
 116                  {
 117                      $conditions = array(
 118                          'forum_id'    => array('IN' => $forum_list),
 119                          'log_id'    => array('IN' => $marked),
 120                      );
 121   
 122                      $phpbb_log->delete('mod', $conditions);
 123                  }
 124                  else if ($deleteall)
 125                  {
 126                      $keywords = utf8_normalize_nfc(request_var('keywords', '', true));
 127   
 128                      $conditions = array(
 129                          'forum_id'    => array('IN' => $forum_list),
 130                          'keywords'    => $keywords,
 131                      );
 132   
 133                      if ($sort_days)
 134                      {
 135                          $conditions['log_time'] = array('>=', time() - ($sort_days * 86400));
 136                      }
 137   
 138                      if ($mode == 'topic_logs')
 139                      {
 140                          $conditions['topic_logs'] = $topic_id;
 141                      }
 142   
 143                      $phpbb_log->delete('mod', $conditions);
 144                  }
 145              }
 146              else
 147              {
 148                  confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
 149                      'f'            => $forum_id,
 150                      't'            => $topic_id,
 151                      'start'        => $start,
 152                      'delmarked'    => $deletemark,
 153                      'delall'    => $deleteall,
 154                      'mark'        => $marked,
 155                      'st'        => $sort_days,
 156                      'sk'        => $sort_key,
 157                      'sd'        => $sort_dir,
 158                      'i'            => $id,
 159                      'mode'        => $mode,
 160                      'action'    => request_var('action', array('' => ''))))
 161                  );
 162              }
 163          }
 164   
 165          // Sorting
 166          $limit_days = array(0 => $user->lang['ALL_ENTRIES'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 365 => $user->lang['1_YEAR']);
 167          $sort_by_text = array('u' => $user->lang['SORT_USERNAME'], 't' => $user->lang['SORT_DATE'], 'i' => $user->lang['SORT_IP'], 'o' => $user->lang['SORT_ACTION']);
 168          $sort_by_sql = array('u' => 'u.username_clean', 't' => 'l.log_time', 'i' => 'l.log_ip', 'o' => 'l.log_operation');
 169   
 170          $s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = '';
 171          gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);
 172   
 173          // Define where and sort sql for use in displaying logs
 174          $sql_where = ($sort_days) ? (time() - ($sort_days * 86400)) : 0;
 175          $sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
 176   
 177          $keywords = utf8_normalize_nfc(request_var('keywords', '', true));
 178          $keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(htmlspecialchars_decode($keywords)) : '';
 179   
 180          // Grab log data
 181          $log_data = array();
 182          $log_count = 0;
 183          $start = view_log('mod', $log_data, $log_count, $config['topics_per_page'], $start, $forum_list, $topic_id, 0, $sql_where, $sql_sort, $keywords);
 184   
 185          $base_url = $this->u_action . "&amp;$u_sort_param$keywords_param";
 186          $pagination->generate_template_pagination($base_url, 'pagination', 'start', $log_count, $config['topics_per_page'], $start);
 187   
 188          $template->assign_vars(array(
 189              'TOTAL'                => $user->lang('TOTAL_LOGS', (int) $log_count),
 190   
 191              'L_TITLE'            => $user->lang['MCP_LOGS'],
 192   
 193              'U_POST_ACTION'            => $this->u_action . "&amp;$u_sort_param$keywords_param&amp;start=$start",
 194              'S_CLEAR_ALLOWED'        => ($auth->acl_get('a_clearlogs')) ? true : false,
 195              'S_SELECT_SORT_DIR'        => $s_sort_dir,
 196              'S_SELECT_SORT_KEY'        => $s_sort_key,
 197              'S_SELECT_SORT_DAYS'    => $s_limit_days,
 198              'S_LOGS'                => ($log_count > 0),
 199              'S_KEYWORDS'            => $keywords,
 200              )
 201          );
 202   
 203          foreach ($log_data as $row)
 204          {
 205              $data = array();
 206   
 207              $checks = array('viewtopic', 'viewforum');
 208              foreach ($checks as $check)
 209              {
 210                  if (isset($row[$check]) && $row[$check])
 211                  {
 212                      $data[] = '<a href="' . $row[$check] . '">' . $user->lang['LOGVIEW_' . strtoupper($check)] . '</a>';
 213                  }
 214              }
 215   
 216              $template->assign_block_vars('log', array(
 217                  'USERNAME'        => $row['username_full'],
 218                  'IP'            => $row['ip'],
 219                  'DATE'            => $user->format_date($row['time']),
 220                  'ACTION'        => $row['action'],
 221                  'DATA'            => (sizeof($data)) ? implode(' | ', $data) : '',
 222                  'ID'            => $row['id'],
 223                  )
 224              );
 225          }
 226      }
 227  }
 228