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_notes.php

Zuletzt modifiziert: 09.10.2024, 12:52 - Dateigröße: 7.53 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_notes
024  * Displays notes about a user
025  */
026  class mcp_notes
027  {
028      var $p_master;
029      var $u_action;
030   
031      function mcp_notes(&$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;
040   
041          $action = request_var('action', array('' => ''));
042   
043          if (is_array($action))
044          {
045              list($action, ) = each($action);
046          }
047   
048          $this->page_title = 'MCP_NOTES';
049   
050          switch ($mode)
051          {
052              case 'front':
053                  $template->assign_vars(array(
054                      'U_FIND_USERNAME'    => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&amp;form=mcp&amp;field=username&amp;select_single=true'),
055                      'U_POST_ACTION'        => append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=notes&amp;mode=user_notes'),
056   
057                      'L_TITLE'            => $user->lang['MCP_NOTES'],
058                  ));
059   
060                  $this->tpl_name = 'mcp_notes_front';
061              break;
062   
063              case 'user_notes':
064                  $user->add_lang('acp/common');
065   
066                  $this->mcp_notes_user_view($action);
067                  $this->tpl_name = 'mcp_notes_user';
068              break;
069          }
070      }
071   
072      /**
073      * Display user notes
074      */
075      function mcp_notes_user_view($action)
076      {
077          global $phpEx, $phpbb_root_path, $config;
078          global $template, $db, $user, $auth, $phpbb_container;
079   
080          $user_id = request_var('u', 0);
081          $username = request_var('username', '', true);
082          $start = request_var('start', 0);
083          $st    = request_var('st', 0);
084          $sk    = request_var('sk', 'b');
085          $sd    = request_var('sd', 'd');
086          $pagination = $phpbb_container->get('pagination');
087   
088          add_form_key('mcp_notes');
089   
090          $sql_where = ($user_id) ? "user_id = $user_id" : "username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
091   
092          $sql = 'SELECT *
093              FROM ' . USERS_TABLE . "
094              WHERE $sql_where";
095          $result = $db->sql_query($sql);
096          $userrow = $db->sql_fetchrow($result);
097          $db->sql_freeresult($result);
098   
099          if (!$userrow)
100          {
101              trigger_error('NO_USER');
102          }
103   
104          $user_id = $userrow['user_id'];
105   
106          // Populate user id to the currently active module (this module)
107          // The following method is another way of adjusting module urls. It is the easy variant if we want
108          // to directly adjust the current module url based on data retrieved within the same module.
109          if (strpos($this->u_action, "&amp;u=$user_id") === false)
110          {
111              $this->p_master->adjust_url('&amp;u=' . $user_id);
112              $this->u_action .= "&amp;u=$user_id";
113          }
114   
115          $deletemark = ($action == 'del_marked') ? true : false;
116          $deleteall    = ($action == 'del_all') ? true : false;
117          $marked        = request_var('marknote', array(0));
118          $usernote    = utf8_normalize_nfc(request_var('usernote', '', true));
119   
120          // Handle any actions
121          if (($deletemark || $deleteall) && $auth->acl_get('a_clearlogs'))
122          {
123              $where_sql = '';
124              if ($deletemark && $marked)
125              {
126                  $sql_in = array();
127                  foreach ($marked as $mark)
128                  {
129                      $sql_in[] = $mark;
130                  }
131                  $where_sql = ' AND ' . $db->sql_in_set('log_id', $sql_in);
132                  unset($sql_in);
133              }
134   
135              if ($where_sql || $deleteall)
136              {
137                  if (check_form_key('mcp_notes'))
138                  {
139                      $sql = 'DELETE FROM ' . LOG_TABLE . '
140                          WHERE log_type = ' . LOG_USERS . "
141                              AND reportee_id = $user_id
142                              $where_sql";
143                      $db->sql_query($sql);
144   
145                      add_log('admin', 'LOG_CLEAR_USER', $userrow['username']);
146   
147                      $msg = ($deletemark) ? 'MARKED_NOTES_DELETED' : 'ALL_NOTES_DELETED';
148                  }
149                  else
150                  {
151                      $msg = 'FORM_INVALID';
152                  }
153                  $redirect = $this->u_action . '&amp;u=' . $user_id;
154                  meta_refresh(3, $redirect);
155                  trigger_error($user->lang[$msg] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>'));
156              }
157          }
158   
159          if ($usernote && $action == 'add_feedback')
160          {
161              if (check_form_key('mcp_notes'))
162              {
163                  add_log('admin', 'LOG_USER_FEEDBACK', $userrow['username']);
164                  add_log('mod', 0, 0, 'LOG_USER_FEEDBACK', $userrow['username']);
165   
166                  add_log('user', $user_id, 'LOG_USER_GENERAL', $usernote);
167                  $msg = $user->lang['USER_FEEDBACK_ADDED'];
168              }
169              else
170              {
171                  $msg = $user->lang['FORM_INVALID'];
172              }
173              $redirect = $this->u_action;
174              meta_refresh(3, $redirect);
175   
176              trigger_error($msg .  '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>'));
177          }
178   
179          // Generate the appropriate user information for the user we are looking at
180   
181          $rank_title = $rank_img = '';
182          $avatar_img = phpbb_get_user_avatar($userrow);
183   
184          $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']);
185          $sort_by_text = array('a' => $user->lang['SORT_USERNAME'], 'b' => $user->lang['SORT_DATE'], 'c' => $user->lang['SORT_IP'], 'd' => $user->lang['SORT_ACTION']);
186          $sort_by_sql = array('a' => 'u.username_clean', 'b' => 'l.log_time', 'c' => 'l.log_ip', 'd' => 'l.log_operation');
187   
188          $s_limit_days = $s_sort_key = $s_sort_dir = $u_sort_param = '';
189          gen_sort_selects($limit_days, $sort_by_text, $st, $sk, $sd, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);
190   
191          // Define where and sort sql for use in displaying logs
192          $sql_where = ($st) ? (time() - ($st * 86400)) : 0;
193          $sql_sort = $sort_by_sql[$sk] . ' ' . (($sd == 'd') ? 'DESC' : 'ASC');
194   
195          $keywords = utf8_normalize_nfc(request_var('keywords', '', true));
196          $keywords_param = !empty($keywords) ? '&amp;keywords=' . urlencode(htmlspecialchars_decode($keywords)) : '';
197   
198          $log_data = array();
199          $log_count = 0;
200          $start = view_log('user', $log_data, $log_count, $config['topics_per_page'], $start, 0, 0, $user_id, $sql_where, $sql_sort, $keywords);
201   
202          if ($log_count)
203          {
204              $template->assign_var('S_USER_NOTES', true);
205   
206              foreach ($log_data as $row)
207              {
208                  $template->assign_block_vars('usernotes', array(
209                      'REPORT_BY'        => $row['username_full'],
210                      'REPORT_AT'        => $user->format_date($row['time']),
211                      'ACTION'        => $row['action'],
212                      'IP'            => $row['ip'],
213                      'ID'            => $row['id'])
214                  );
215              }
216          }
217   
218          $base_url = $this->u_action . "&amp;$u_sort_param$keywords_param";
219          $pagination->generate_template_pagination($base_url, 'pagination', 'start', $log_count, $config['topics_per_page'], $start);
220   
221          $template->assign_vars(array(
222              'U_POST_ACTION'            => $this->u_action,
223              'S_CLEAR_ALLOWED'        => ($auth->acl_get('a_clearlogs')) ? true : false,
224              'S_SELECT_SORT_DIR'        => $s_sort_dir,
225              'S_SELECT_SORT_KEY'        => $s_sort_key,
226              'S_SELECT_SORT_DAYS'    => $s_limit_days,
227              'S_KEYWORDS'            => $keywords,
228   
229              'L_TITLE'            => $user->lang['MCP_NOTES_USER'],
230   
231              'TOTAL_REPORTS'        => $user->lang('LIST_REPORTS', (int) $log_count),
232   
233              'RANK_TITLE'        => $rank_title,
234              'JOINED'            => $user->format_date($userrow['user_regdate']),
235              'POSTS'                => ($userrow['user_posts']) ? $userrow['user_posts'] : 0,
236              'WARNINGS'            => ($userrow['user_warnings']) ? $userrow['user_warnings'] : 0,
237   
238              'USERNAME_FULL'        => get_username_string('full', $userrow['user_id'], $userrow['username'], $userrow['user_colour']),
239              'USERNAME_COLOUR'    => get_username_string('colour', $userrow['user_id'], $userrow['username'], $userrow['user_colour']),
240              'USERNAME'            => get_username_string('username', $userrow['user_id'], $userrow['username'], $userrow['user_colour']),
241              'U_PROFILE'            => get_username_string('profile', $userrow['user_id'], $userrow['username'], $userrow['user_colour']),
242   
243              'AVATAR_IMG'        => $avatar_img,
244              'RANK_IMG'            => $rank_img,
245              )
246          );
247      }
248   
249  }
250