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