| [ Index ] |
PHP Cross Reference of MyBB 1.6.5 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * MyBB 1.6 4 * Copyright 2010 MyBB Group, All Rights Reserved 5 * 6 * Website: http://mybb.com 7 * License: http://mybb.com/about/license 8 * 9 * $Id: modlog.php 5453 2011-04-21 23:58:33Z jammerx2 $ 10 */ 11 12 // Disallow direct access to this file for security reasons 13 if(!defined("IN_MYBB")) 14 { 15 die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); 16 } 17 18 $page->add_breadcrumb_item($lang->mod_logs, "index.php?module=tools-modlog"); 19 20 $sub_tabs['mod_logs'] = array( 21 'title' => $lang->mod_logs, 22 'link' => "index.php?module=tools-modlog", 23 'description' => $lang->mod_logs_desc 24 ); 25 $sub_tabs['prune_mod_logs'] = array( 26 'title' => $lang->prune_mod_logs, 27 'link' => "index.php?module=tools-modlog&action=prune", 28 'description' => $lang->prune_mod_logs_desc 29 ); 30 31 $plugins->run_hooks("admin_tools_modlog_begin"); 32 33 if($mybb->input['action'] == 'prune') 34 { 35 $plugins->run_hooks("admin_tools_modlog_prune"); 36 37 if($mybb->request_method == 'post') 38 { 39 $where = 'dateline < '.(TIME_NOW-(intval($mybb->input['older_than'])*86400)); 40 41 // Searching for entries by a particular user 42 if($mybb->input['uid']) 43 { 44 $where .= " AND uid='".intval($mybb->input['uid'])."'"; 45 } 46 47 // Searching for entries in a specific module 48 if($mybb->input['fid'] > 0) 49 { 50 $where .= " AND fid='".$db->escape_string($mybb->input['fid'])."'"; 51 } 52 53 $db->delete_query("moderatorlog", $where); 54 $num_deleted = $db->affected_rows(); 55 56 $plugins->run_hooks("admin_tools_modlog_prune_commit"); 57 58 if(!is_array($forum_cache)) 59 { 60 $forum_cache = cache_forums(); 61 } 62 63 // Log admin action 64 log_admin_action($mybb->input['older_than'], $mybb->input['uid'], $mybb->input['fid'], $num_deleted, $forum_cache[$mybb->input['fid']]['name']); 65 66 flash_message($lang->success_pruned_mod_logs, 'success'); 67 admin_redirect("index.php?module=tools-modlog"); 68 } 69 $page->add_breadcrumb_item($lang->prune_mod_logs, "index.php?module=tools-modlog&action=prune"); 70 $page->output_header($lang->prune_mod_logs); 71 $page->output_nav_tabs($sub_tabs, 'prune_mod_logs'); 72 73 // Fetch filter options 74 $sortbysel[$mybb->input['sortby']] = 'selected="selected"'; 75 $ordersel[$mybb->input['order']] = 'selected="selected"'; 76 77 $user_options[''] = $lang->all_moderators; 78 $user_options['0'] = '----------'; 79 80 $query = $db->query(" 81 SELECT DISTINCT l.uid, u.username 82 FROM ".TABLE_PREFIX."moderatorlog l 83 LEFT JOIN ".TABLE_PREFIX."users u ON (l.uid=u.uid) 84 ORDER BY u.username ASC 85 "); 86 while($user = $db->fetch_array($query)) 87 { 88 $user_options[$user['uid']] = $user['username']; 89 } 90 91 $form = new Form("index.php?module=tools-modlog&action=prune", "post"); 92 $form_container = new FormContainer($lang->prune_moderator_logs); 93 $form_container->output_row($lang->forum, "", $form->generate_forum_select('fid', $mybb->input['fid'], array('id' => 'fid', 'main_option' => $lang->all_forums)), 'fid'); 94 $form_container->output_row($lang->forum_moderator, "", $form->generate_select_box('uid', $user_options, $mybb->input['uid'], array('id' => 'uid')), 'uid'); 95 if(!$mybb->input['older_than']) 96 { 97 $mybb->input['older_than'] = '30'; 98 } 99 $form_container->output_row($lang->date_range, "", $lang->older_than.$form->generate_text_box('older_than', $mybb->input['older_than'], array('id' => 'older_than', 'style' => 'width: 30px')).' '.$lang->days, 'older_than'); 100 $form_container->end(); 101 $buttons[] = $form->generate_submit_button($lang->prune_moderator_logs); 102 $form->output_submit_wrapper($buttons); 103 $form->end(); 104 105 $page->output_footer(); 106 } 107 108 if(!$mybb->input['action']) 109 { 110 $plugins->run_hooks("admin_tools_modlog_start"); 111 112 $page->output_header($lang->mod_logs); 113 114 $page->output_nav_tabs($sub_tabs, 'mod_logs'); 115 116 $perpage = intval($mybb->input['perpage']); 117 if(!$perpage) 118 { 119 $perpage = $mybb->settings['threadsperpage']; 120 } 121 122 $where = 'WHERE 1=1'; 123 124 // Searching for entries by a particular user 125 if($mybb->input['uid']) 126 { 127 $where .= " AND l.uid='".intval($mybb->input['uid'])."'"; 128 } 129 130 // Searching for entries in a specific forum 131 if($mybb->input['fid'] > 0) 132 { 133 $where .= " AND l.fid='".intval($mybb->input['fid'])."'"; 134 } 135 136 // Order? 137 switch($mybb->input['sortby']) 138 { 139 case "username": 140 $sortby = "u.username"; 141 break; 142 case "forum": 143 $sortby = "f.name"; 144 break; 145 case "thread": 146 $sortby = "t.subject"; 147 break; 148 default: 149 $sortby = "l.dateline"; 150 } 151 $order = $mybb->input['order']; 152 if($order != "asc") 153 { 154 $order = "desc"; 155 } 156 157 $query = $db->query(" 158 SELECT COUNT(l.dateline) AS count 159 FROM ".TABLE_PREFIX."moderatorlog l 160 {$where} 161 "); 162 $rescount = $db->fetch_field($query, "count"); 163 164 // Figure out if we need to display multiple pages. 165 if($mybb->input['page'] != "last") 166 { 167 $pagecnt = intval($mybb->input['page']); 168 } 169 170 $postcount = intval($rescount); 171 $pages = $postcount / $perpage; 172 $pages = ceil($pages); 173 174 if($mybb->input['page'] == "last") 175 { 176 $pagecnt = $pages; 177 } 178 179 if($pagecnt > $pages) 180 { 181 $pagecnt = 1; 182 } 183 184 if($pagecnt) 185 { 186 $start = ($pagecnt-1) * $perpage; 187 } 188 else 189 { 190 $start = 0; 191 $pagecnt = 1; 192 } 193 194 $table = new Table; 195 $table->construct_header($lang->username, array('width' => '10%')); 196 $table->construct_header($lang->date, array("class" => "align_center", 'width' => '15%')); 197 $table->construct_header($lang->action, array("class" => "align_center", 'width' => '35%')); 198 $table->construct_header($lang->information, array("class" => "align_center", 'width' => '30%')); 199 $table->construct_header($lang->ipaddress, array("class" => "align_center", 'width' => '10%')); 200 201 $query = $db->query(" 202 SELECT l.*, u.username, u.usergroup, u.displaygroup, t.subject AS tsubject, f.name AS fname, p.subject AS psubject 203 FROM ".TABLE_PREFIX."moderatorlog l 204 LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=l.uid) 205 LEFT JOIN ".TABLE_PREFIX."threads t ON (t.tid=l.tid) 206 LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=l.fid) 207 LEFT JOIN ".TABLE_PREFIX."posts p ON (p.pid=l.pid) 208 {$where} 209 ORDER BY {$sortby} {$order} 210 LIMIT {$start}, {$perpage} 211 "); 212 while($logitem = $db->fetch_array($query)) 213 { 214 $information = ''; 215 $logitem['action'] = $logitem['action']; 216 $logitem['dateline'] = date("jS M Y, G:i", $logitem['dateline']); 217 $trow = alt_trow(); 218 $username = format_name($logitem['username'], $logitem['usergroup'], $logitem['displaygroup']); 219 $logitem['profilelink'] = build_profile_link($username, $logitem['uid'], "_blank"); 220 if($logitem['tsubject']) 221 { 222 $information = "<strong>{$lang->thread}</strong> <a href=\"../".get_thread_link($logitem['tid'])."\" target=\"_blank\">".htmlspecialchars_uni($logitem['tsubject'])."</a><br />"; 223 } 224 if($logitem['fname']) 225 { 226 $information .= "<strong>{$lang->forum}</strong> <a href=\"../".get_forum_link($logitem['fid'])."\" target=\"_blank\">".htmlspecialchars_uni($logitem['fname'])."</a><br />"; 227 } 228 if($logitem['psubject']) 229 { 230 $information .= "<strong>{$lang->post}</strong> <a href=\"../".get_post_link($logitem['pid'])."#pid{$logitem['pid']}\" target=\"_blank\">".htmlspecialchars_uni($logitem['psubject'])."</a>"; 231 } 232 233 if(!$logitem['tsubject'] || !$logitem['fname'] || !$logitem['psubject']) 234 { 235 $data = unserialize($logitem['data']); 236 if($data['uid']) 237 { 238 $information = $lang->user_info." <a href=\"".get_profile_link($data['uid'])."\" target=\"_blank\">".htmlspecialchars_uni($data['username'])."</a>"; 239 } 240 } 241 242 $table->construct_cell($logitem['profilelink']); 243 $table->construct_cell($logitem['dateline'], array("class" => "align_center")); 244 $table->construct_cell($logitem['action'], array("class" => "align_center")); 245 $table->construct_cell($information); 246 $table->construct_cell($logitem['ipaddress'], array("class" => "align_center")); 247 $table->construct_row(); 248 } 249 250 if($table->num_rows() == 0) 251 { 252 $table->construct_cell($lang->no_modlogs, array("colspan" => "5")); 253 $table->construct_row(); 254 } 255 256 $table->output($lang->mod_logs); 257 258 // Do we need to construct the pagination? 259 if($rescount > $perpage) 260 { 261 echo draw_admin_pagination($pagecnt, $perpage, $rescount, "index.php?module=tools-modlog&perpage=$perpage&uid={$mybb->input['uid']}&fid={$mybb->input['fid']}&sortby={$mybb->input['sortby']}&order={$order}")."<br />"; 262 } 263 264 // Fetch filter options 265 $sortbysel[$mybb->input['sortby']] = "selected=\"selected\""; 266 $ordersel[$mybb->input['order']] = "selected=\"selected\""; 267 268 $user_options[''] = $lang->all_moderators; 269 $user_options['0'] = '----------'; 270 271 $query = $db->query(" 272 SELECT DISTINCT l.uid, u.username 273 FROM ".TABLE_PREFIX."moderatorlog l 274 LEFT JOIN ".TABLE_PREFIX."users u ON (l.uid=u.uid) 275 ORDER BY u.username ASC 276 "); 277 while($user = $db->fetch_array($query)) 278 { 279 $selected = ''; 280 if($mybb->input['uid'] == $user['uid']) 281 { 282 $selected = "selected=\"selected\""; 283 } 284 $user_options[$user['uid']] = $user['username']; 285 } 286 287 $sort_by = array( 288 'dateline' => $lang->date, 289 'username' => $lang->username, 290 'forum' => $lang->forum_name, 291 'thread' => $lang->thread_subject 292 ); 293 294 $order_array = array( 295 'asc' => $lang->asc, 296 'desc' => $lang->desc 297 ); 298 299 $form = new Form("index.php?module=tools-modlog", "post"); 300 $form_container = new FormContainer($lang->filter_moderator_logs); 301 $form_container->output_row($lang->forum, "", $form->generate_forum_select('fid', $mybb->input['fid'], array('id' => 'fid', 'main_option' => $lang->all_forums)), 'fid'); 302 $form_container->output_row($lang->forum_moderator, "", $form->generate_select_box('uid', $user_options, $mybb->input['uid'], array('id' => 'uid')), 'uid'); 303 $form_container->output_row($lang->sort_by, "", $form->generate_select_box('sortby', $sort_by, $mybb->input['sortby'], array('id' => 'sortby'))." {$lang->in} ".$form->generate_select_box('order', $order_array, $order, array('id' => 'order'))." {$lang->order}", 'order'); 304 $form_container->output_row($lang->results_per_page, "", $form->generate_text_box('perpage', $perpage, array('id' => 'perpage')), 'perpage'); 305 306 $form_container->end(); 307 $buttons[] = $form->generate_submit_button($lang->filter_moderator_logs); 308 $form->output_submit_wrapper($buttons); 309 $form->end(); 310 311 $page->output_footer(); 312 } 313 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Sun Dec 11 14:16:27 2011 | Cross-referenced by PHPXref 0.7.1 |