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

acp_logs.php

Zuletzt modifiziert: 09.10.2024, 12:52 - Dateigröße: 5.34 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  class acp_logs
 023  {
 024      var $u_action;
 025   
 026      function main($id, $mode)
 027      {
 028          global $db, $user, $auth, $template, $cache, $phpbb_container;
 029          global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
 030          global $request;
 031   
 032          $user->add_lang('mcp');
 033   
 034          // Set up general vars
 035          $action        = request_var('action', '');
 036          $forum_id    = request_var('f', 0);
 037          $topic_id    = request_var('t', 0);
 038          $start        = request_var('start', 0);
 039          $deletemark = $request->variable('delmarked', false, false, \phpbb\request\request_interface::POST);
 040          $deleteall    = $request->variable('delall', false, false, \phpbb\request\request_interface::POST);
 041          $marked        = request_var('mark', array(0));
 042   
 043          // Sort keys
 044          $sort_days    = request_var('st', 0);
 045          $sort_key    = request_var('sk', 't');
 046          $sort_dir    = request_var('sd', 'd');
 047   
 048          $this->tpl_name = 'acp_logs';
 049          $this->log_type = constant('LOG_' . strtoupper($mode));
 050          $pagination = $phpbb_container->get('pagination');
 051   
 052          // Delete entries if requested and able
 053          if (($deletemark || $deleteall) && $auth->acl_get('a_clearlogs'))
 054          {
 055              if (confirm_box(true))
 056              {
 057                  $conditions = array();
 058   
 059                  if ($deletemark && sizeof($marked))
 060                  {
 061                      $conditions['log_id'] = array('IN' => $marked);
 062                  }
 063   
 064                  if ($deleteall)
 065                  {
 066                      if ($sort_days)
 067                      {
 068                          $conditions['log_time'] = array('>=', time() - ($sort_days * 86400));
 069                      }
 070   
 071                      $keywords = utf8_normalize_nfc(request_var('keywords', '', true));
 072                      $conditions['keywords'] = $keywords;
 073                  }
 074   
 075                  $phpbb_log = $phpbb_container->get('log');
 076                  $phpbb_log->delete($mode, $conditions);
 077              }
 078              else
 079              {
 080                  confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array(
 081                      'f'            => $forum_id,
 082                      'start'        => $start,
 083                      'delmarked'    => $deletemark,
 084                      'delall'    => $deleteall,
 085                      'mark'        => $marked,
 086                      'st'        => $sort_days,
 087                      'sk'        => $sort_key,
 088                      'sd'        => $sort_dir,
 089                      'i'            => $id,
 090                      'mode'        => $mode,
 091                      'action'    => $action))
 092                  );
 093              }
 094          }
 095   
 096          // Sorting
 097          $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']);
 098          $sort_by_text = array('u' => $user->lang['SORT_USERNAME'], 't' => $user->lang['SORT_DATE'], 'i' => $user->lang['SORT_IP'], 'o' => $user->lang['SORT_ACTION']);
 099          $sort_by_sql = array('u' => 'u.username_clean', 't' => 'l.log_time', 'i' => 'l.log_ip', 'o' => 'l.log_operation');
 100   
 101          $s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = '';
 102          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);
 103   
 104          // Define where and sort sql for use in displaying logs
 105          $sql_where = ($sort_days) ? (time() - ($sort_days * 86400)) : 0;
 106          $sql_sort = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
 107   
 108          $keywords = utf8_normalize_nfc(request_var('keywords', '', true));
 109          $keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(htmlspecialchars_decode($keywords)) : '';
 110   
 111          $l_title = $user->lang['ACP_' . strtoupper($mode) . '_LOGS'];
 112          $l_title_explain = $user->lang['ACP_' . strtoupper($mode) . '_LOGS_EXPLAIN'];
 113   
 114          $this->page_title = $l_title;
 115   
 116          // Define forum list if we're looking @ mod logs
 117          if ($mode == 'mod')
 118          {
 119              $forum_box = '<option value="0">' . $user->lang['ALL_FORUMS'] . '</option>' . make_forum_select($forum_id);
 120   
 121              $template->assign_vars(array(
 122                  'S_SHOW_FORUMS'            => true,
 123                  'S_FORUM_BOX'            => $forum_box)
 124              );
 125          }
 126   
 127          // Grab log data
 128          $log_data = array();
 129          $log_count = 0;
 130          $start = view_log($mode, $log_data, $log_count, $config['topics_per_page'], $start, $forum_id, 0, 0, $sql_where, $sql_sort, $keywords);
 131   
 132          $base_url = $this->u_action . "&amp;$u_sort_param$keywords_param";
 133          $pagination->generate_template_pagination($base_url, 'pagination', 'start', $log_count, $config['topics_per_page'], $start);
 134   
 135          $template->assign_vars(array(
 136              'L_TITLE'        => $l_title,
 137              'L_EXPLAIN'        => $l_title_explain,
 138              'U_ACTION'        => $this->u_action . "&amp;$u_sort_param$keywords_param&amp;start=$start",
 139   
 140              'S_LIMIT_DAYS'    => $s_limit_days,
 141              'S_SORT_KEY'    => $s_sort_key,
 142              'S_SORT_DIR'    => $s_sort_dir,
 143              'S_CLEARLOGS'    => $auth->acl_get('a_clearlogs'),
 144              'S_KEYWORDS'    => $keywords,
 145              )
 146          );
 147   
 148          foreach ($log_data as $row)
 149          {
 150              $data = array();
 151   
 152              $checks = array('viewtopic', 'viewlogs', 'viewforum');
 153              foreach ($checks as $check)
 154              {
 155                  if (isset($row[$check]) && $row[$check])
 156                  {
 157                      $data[] = '<a href="' . $row[$check] . '">' . $user->lang['LOGVIEW_' . strtoupper($check)] . '</a>';
 158                  }
 159              }
 160   
 161              $template->assign_block_vars('log', array(
 162                  'USERNAME'            => $row['username_full'],
 163                  'REPORTEE_USERNAME'    => ($row['reportee_username'] && $row['user_id'] != $row['reportee_id']) ? $row['reportee_username_full'] : '',
 164   
 165                  'IP'                => $row['ip'],
 166                  'DATE'                => $user->format_date($row['time']),
 167                  'ACTION'            => $row['action'],
 168                  'DATA'                => (sizeof($data)) ? implode(' | ', $data) : '',
 169                  'ID'                => $row['id'],
 170                  )
 171              );
 172          }
 173      }
 174  }
 175