%PDF- %PDF-
Direktori : /home/dordingu/www/taflan/old/stk/tools/admin/ |
Current File : /home/dordingu/www/taflan/old/stk/tools/admin/profile_list.php |
<?php /** * * @package Support Toolkit - Profile List * @version $Id$ * @copyright (c) 2009 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** * @ignore */ if (!defined('IN_PHPBB')) { exit; } class profile_list { function display_options() { global $db, $template, $user; page_header($user->lang['PROFILE_LIST']); if (!class_exists('phpbb_db_tools')) { include(PHPBB_ROOT_PATH . 'includes/db/db_tools.' . PHP_EXT); } $db_tools = new phpbb_db_tools($db); $user->add_lang('memberlist'); // Handle delete if (isset($_REQUEST['sa'])) { $uids = request_var('marked_user_id', array(0, 0)); if (confirm_box(true)) { if (!function_exists('user_delete')) { require PHPBB_ROOT_PATH . 'includes/functions_user.' . PHP_EXT; } // Delete them all foreach ($uids as $uid) { user_delete('remove', $uid); } trigger_error('USERS_DELETE_SUCCESSFULL'); } else { $hidden = build_hidden_fields(array('marked_user_id' => $uids)); confirm_box(false, 'USERS_DELETE', $hidden, 'confirm_body.html', STK_DIR_NAME . '/index.' . PHP_EXT . '?c=admin&t=profile_list&sa=' . true); } } $display = request_var('display', ''); $start = request_var('start', 0); $limit = request_var('limit', 20); $order_by = request_var('order', ''); $order_dir = (request_var('dir', 'DESC') == 'DESC') ? 'DESC' : 'ASC'; $empty_only = (!isset($_GET['go']) || isset($_POST['empty_only']) || isset($_GET['empty_only'])) ? true : false; // Build Pagination URL $base_url = 't=profile_list&go=1'; $base_url .= ($display) ? '&display=' . $display : ''; $base_url .= ($empty_only) ? '&empty_only=1' : ''; $base_url .= ($limit != 20) ? '&limit=' . $limit : ''; $base_url .= ($order_by) ? '&order=' . $order_by : ''; $base_url .= ($order_dir != 'DESC') ? '&dir=ASC' : ''; $base_url = append_sid(STK_INDEX, $base_url); /* * Filter stuff */ $options = array( 'user_icq' => 'ICQ', 'user_aim' => 'AIM', 'user_yim' => 'YIM', 'user_msnm' => 'MSNM', 'user_jabber' => 'JABBER', 'user_website' => 'WEBSITE', 'user_occ' => 'OCCUPATION', 'user_interests' => 'INTERESTS', 'user_from' => 'LOCATION', 'user_sig' => 'SIGNATURE', ); $profile_where = ''; foreach ($options as $option => $lang_key) { $template->assign_block_vars('options', array( 'OPTION' => $option, 'LANG' => $user->lang[$lang_key], 'SELECTED' => ($display == $option) ? true : false, )); if ($empty_only) { $profile_where .= (($profile_where == '') ? ' AND (' : ' OR '); switch ($db_tools->sql_layer) { case 'mssql' : case 'mssqlnative' : if ($option == 'user_sig') { $profile_where .= "DATALENGTH({$option}) > 0"; } else { $profile_where .= "{$option} <> ''"; } break; default: $profile_where .= "{$option} <> ''"; } } } if ($empty_only) { $profile_where .= ' ) '; } if (isset($options[$display])) { if ($empty_only) { $profile_where = ' AND ' . $display . ' <> \'\''; } } /* * Order stuff */ $order = array( 'user_regdate' => 'JOINED', 'username_clean' => 'USERNAME', 'user_lastvisit' => 'LAST_VISIT', 'user_lastpost_time' => 'LAST_POST', 'user_warnings' => 'WARNINGS', 'user_posts' => 'POSTS', ); $timestamps = array('user_regdate', 'user_lastvisit', 'user_lastpost_time'); foreach ($order as $option => $lang_key) { $template->assign_block_vars('order', array( 'OPTION' => $option, 'LANG' => $user->lang[$lang_key], 'SELECTED' => ($order_by == $option) ? true : false, )); } $order_sql = ' ORDER BY user_regdate DESC'; if (isset($order[$order_by])) { $order_sql = ' ORDER BY ' . $order_by . ' ' . $order_dir; } else { $order_by = 'user_regdate'; } /* * Main stuff... */ $sql = 'SELECT COUNT(user_id) AS cnt FROM ' . USERS_TABLE . ' WHERE user_type <> ' . USER_IGNORE . $profile_where; $db->sql_query($sql); $count = $db->sql_fetchfield('cnt'); $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE user_type <> ' . USER_IGNORE . $profile_where . $order_sql; $result = $db->sql_query_limit($sql, $limit, $start); while ($row = $db->sql_fetchrow($result)) { $inactive_reason = $user->lang['INACTIVE_REASON_UNKNOWN']; switch ($row['user_inactive_reason']) { case INACTIVE_REGISTER: $inactive_reason = $user->lang['INACTIVE_REASON_REGISTER']; break; case INACTIVE_PROFILE: $inactive_reason = $user->lang['INACTIVE_REASON_PROFILE']; break; case INACTIVE_MANUAL: $inactive_reason = $user->lang['INACTIVE_REASON_MANUAL']; break; case INACTIVE_REMIND: $inactive_reason = $user->lang['INACTIVE_REASON_REMIND']; break; } $template->assign_block_vars('users', array( 'AIM' => $row['user_aim'], 'EMAIL' => $row['user_email'], 'ICQ' => $row['user_icq'], 'INTERESTS' => $row['user_interests'], 'JABBER' => $row['user_jabber'], 'JOINED' => $user->format_date($row['user_regdate']), 'LOCATION' => $row['user_from'], 'MSNM' => $row['user_msnm'], 'OCCUPATION' => $row['user_occ'], 'POSTS' => $row['user_posts'], 'SIGNATURE' => ((!isset($options[$display]) || $display == 'user_sig') && $row['user_sig']) ? generate_text_for_display($row['user_sig'], $row['user_sig_bbcode_uid'], $row['user_sig_bbcode_bitfield'], 7) : '', 'USERID' => ($user->data['user_id'] == $row['user_id']) ? false : $row['user_id'], 'USERNAME' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']), 'VISITED' => ($row['user_lastvisit']) ? $user->format_date($row['user_lastvisit']) : 0, 'WARNINGS' => $row['user_warnings'], 'WEBSITE' => $row['user_website'], 'YIM' => $row['user_yim'], 'OPTION_SECTION' => (isset($options[$display])) ? $row[$display] : '', 'ORDER_SECTION' => (in_array($order_by, $timestamps)) ? (($row[$order_by]) ? $user->format_date($row[$order_by]) : $user->lang['NEVER']) : $row[$order_by], 'USER_INACTIVE_REASON' => $inactive_reason, 'U_USER_ADMIN' => append_sid(PHPBB_ROOT_PATH . 'adm/index.' . PHP_EXT, 'i=users&mode=overview&u=' . $row['user_id'], true, $user->session_id), 'S_USER_INACTIVE' => ($row['user_inactive_reason']) ? true : false, )); } $db->sql_freeresult($result); $template->assign_vars(array( 'U_DISPLAY_ACTION' => append_sid(STK_INDEX, 't=profile_list&go=1'), 'U_SELECTED_ACTION' => append_sid(STK_INDEX, array('c' => 'admin', 't' => 'profile_list', 'sa' => true)), 'LIMIT' => $limit, 'OPTION_SECTION' => (isset($options[$display]) && $display != 'user_sig') ? $user->lang[$options[$display]] : '', 'ORDER_SECTION' => ($order_by == 'username_clean') ? '' : ((isset($order[$order_by])) ? $user->lang[$order[$order_by]] : $user->lang['JOINED']), 'PAGINATION' => generate_pagination($base_url, $count, $limit, $start, true), 'S_DESC' => ($order_dir == 'DESC') ? true : false, 'S_DISPLAY_ALL' => (!isset($options[$display])) ? true : false, 'S_DISPLAY_SIG' => ($display == 'user_sig') ? true : false, 'S_EMPTY_CHECKED' => $empty_only, )); $template->set_filenames(array( 'body' => 'tools/profile_list.html', )); page_footer(); } }