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