set_filenames(array(
"body" => "admin/logs_body.tpl")
);
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
if ( isset($HTTP_POST_VARS['order']) )
{
$sort_order = ($HTTP_POST_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
}
else if ( isset($HTTP_GET_VARS['order']) )
{
$sort_order = ($HTTP_GET_VARS['order'] == 'ASC') ? 'ASC' : 'DESC';
}
else
{
$sort_order = 'ASC';
}
if ( file_exists($phpbb_root_path . 'log_actions_db_update.' . $phpEx) )
{
message_die(GENERAL_MESSAGE, $lang['File_not_deleted']);
}
$sql = "SELECT config_value AS all_admin
FROM " . LOGS_CONFIG_TABLE . "
WHERE config_name = 'all_admin' ";
if(!$result = $db->sql_query($sql))
{
message_die(CRITICAL_ERROR, "Could not query log config informations", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$all_admin_authorized = $row['all_admin'];
//if ( $all_admin_authorized == '0' && $userdata['user_id'] <> '2' && $userdata['user_view_log'] <> '1' )
//{
// message_die(GENERAL_MESSAGE, $lang['Admin_not_authorized']);
//}
//
// Logs sorting
//
$mode_types_text = array('Time', 'Member', 'Action', 'Id');
$mode_types = array('time', 'username', 'mode', 'id');
$select_sort_mode = '';
$select_sort_order = '';
$template->assign_vars(array(
'L_LOG_ACTIONS_TITLE' => $lang['Log_action_title'],
'L_LOG_ACTION_EXPLAIN' => $lang['Log_action_explain'],
'L_CHOOSE_SORT' => $lang['Choose_sort_method'],
'L_ORDER' => $lang['Order'],
'L_GO' => $lang['Go'],
'L_CANCEL' => $lang['Cancel'],
'L_DELETE' => $lang['Delete'],
'L_DELETE_LOG' => $lang['Choose_log'],
'L_ID_LOG' => $lang['Id_log'],
'L_ACTION' => $lang['Action'],
'L_TOPIC' => $lang['Topic'],
'L_DONE_BY' => $lang['Done_by'],
'L_USER_IP' => $lang['User_ip'],
'L_DATE' => $lang['Date'],
'L_MARK_ALL' => $lang['Select_all'],
'L_UNMARK_ALL' => $lang['Unselect_all'],
'S_MODE_SELECT' => $select_sort_mode,
'S_ORDER_SELECT' => $select_sort_order,
'S_MODE_ACTION' => append_sid("admin_logs.$phpEx"),
'S_CANCEL_ACTION' => append_sid("admin_logs.$phpEx"))
);
if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
$mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
switch( $mode )
{
case 'mode' :
$order_by = "mode $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;
case 'username' :
$order_by = "username $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;
case 'time' :
$order_by = "time $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;
case 'id' :
$order_by = "id_log $sort_order LIMIT $start, " . $board_config['topics_per_page'];
break;
default:
$order_by = "time DESC LIMIT $start, " . $board_config['topics_per_page'];
break;
}
}
else
{
$order_by = "time DESC LIMIT $start, " . $board_config['topics_per_page'];
}
$sql = "SELECT *
FROM " . LOGS_TABLE . "
ORDER BY $order_by ";
if(!$result = $db->sql_query($sql))
{
message_die(CRITICAL_ERROR, "Could not query log informations", "", __LINE__, __FILE__, $sql);
}
$rows = $db->sql_fetchrowset($result);
$numrows = $db->sql_numrows($result);
for ($i = 0; $i < $numrows; $i++)
{
$id_log = $rows[$i]['id_log'];
$action = ucfirst($rows[$i]['mode']);
$topic = $rows[$i]['topic_id'];
$user_id = $rows[$i]['user_id'];
$username = $rows[$i]['username'];
$user_ip = decode_ip($rows[$i]['user_ip']);
$date = $rows[$i]['time'];
$sql = "SELECT user_level
FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if(!$result = $db->sql_query($sql))
{
message_die(CRITICAL_ERROR, "Could not query user_level informations", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$level = $row['user_level'];
$style_color = '';
if ( $level == ADMIN )
{
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if ( $level == MOD )
{
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}
$temp_url = append_sid('admin_users.'.$phpEx.'?mode=edit&u=' . $user_id);
$temp2_url = ('./../../../modules.php?name=Forums&file=viewtopic&t=' . $topic);
$template->assign_block_vars('record_row', array(
'ID_LOG' => $id_log,
'ACTION' => $action,
'TOPIC' => $topic,
'TOPIC_IMG' => '',
'USER_ID' => $user_id,
'USERNAME' => '' . $username . '',
'USER_IP' => $user_ip,
'U_WHOIS_IP' => 'http://network-tools.com/default.asp?prog=express&Netnic=whois.arin.net&host=' . $user_ip,
'DATE' => create_date($board_config['default_dateformat'], $date, $board_config['board_timezone']))
);
}
$db->sql_freeresult($result);
$log_list = ( isset($HTTP_POST_VARS['log_list']) ) ? $HTTP_POST_VARS['log_list'] : array();
$delete = ( isset($HTTP_POST_VARS['delete']) ) ? TRUE : FALSE ;
$log_list_sql = implode(', ', $log_list);
if ( $log_list_sql != '' )
{
if ( $delete )
{
$sql = "DELETE
FROM " . LOGS_TABLE . "
WHERE id_log IN (" . $log_list_sql . ")";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, 'Could not delete Logs', '', __LINE__, __FILE__, $sql);
}
else
{
$redirect_page = append_sid("admin_logs.$phpEx");
$l_redirect = sprintf($lang['Click_return_admin_log'], '', '');
message_die(GENERAL_MESSAGE, $lang['Log_delete'] . '
' . $l_redirect);
}
}
}
if ( $board_config['topics_per_page'] > 10 )
{
$sql = "SELECT count(*) AS total
FROM " . LOGS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error getting total informations for logs', '', __LINE__, __FILE__, $sql);
}
if ( $total = $db->sql_fetchrow($result) )
{
$total_records = $total['total'];
$pagination = generate_pagination("admin_logs.$phpEx?mode=$mode&order=$sort_order", $total_records, $board_config['topics_per_page'], $start). ' ';
}
}
else
{
$pagination = ' ';
$total_records = 10;
}
$template->assign_vars(array(
'PAGINATION' => $pagination,
'PAGE_NUMBER' => ( $total_records == '0' ) ? ' ' : sprintf($lang['Page_of'], ( floor( $start / $board_config['topics_per_page'] ) + 1 ), ceil( $total_records / $board_config['topics_per_page'] )),
'L_GOTO_PAGE' => $lang['Goto_page'],
'L_WHOSONLINE_ADMIN' => sprintf($lang['Admin_online_color'], '', ''),
'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '', ''),)
);
$template->pparse("body");
include('./page_footer_admin.'.$phpEx);
?>