require_once QA_INCLUDE_DIR . 'db/admin.php'; require_once QA_INCLUDE_DIR . 'db/selects.php'; require_once QA_INCLUDE_DIR . 'app/format.php'; // Find recently hidden questions, answers, comments $userid = qa_get_logged_in_userid(); list($hiddenquestions, $hiddenanswers, $hiddencomments) = qa_db_select_with_pending(qa_db_qs_selectspec($userid, 'created', 0, null, null, 'Q_HIDDEN', true), qa_db_recent_a_qs_selectspec($userid, 0, null, null, 'A_HIDDEN', true), qa_db_recent_c_qs_selectspec($userid, 0, null, null, 'C_HIDDEN', true)); // Check admin privileges (do late to allow one DB query) if (qa_user_maximum_permit_error('permit_hide_show') && qa_user_maximum_permit_error('permit_delete_hidden')) { $qa_content = qa_content_prepare(); $qa_content['error'] = qa_lang_html('users/no_permission'); return $qa_content; } // Check to see if any have been reshown or deleted $pageerror = qa_admin_check_clicks(); // Combine sets of questions and remove those this user has no permissions for $questions = qa_any_sort_by_date(array_merge($hiddenquestions, $hiddenanswers, $hiddencomments)); if (qa_user_permit_error('permit_hide_show') && qa_user_permit_error('permit_delete_hidden')) { // not allowed to see all hidden posts foreach ($questions as $index => $question) { if (qa_user_post_permit_error('permit_hide_show', $question) && qa_user_post_permit_error('permit_delete_hidden', $question)) { unset($questions[$index]); } } } // Get information for users $usershtml = qa_userids_handles_html(qa_any_get_userids_handles($questions)); // Create list of actual hidden postids and see which ones have dependents $qhiddenpostid = array(); foreach ($questions as $key => $question) { $qhiddenpostid[$key] = isset($question['opostid']) ? $question['opostid'] : $question['postid']; }
qa_redirect(qa_request()); } if (qa_clicked('dohideall') && !qa_user_maximum_permit_error('permit_hide_show')) { // allow moderator in one category to hide posts across all categories if they are identified via IP page require_once QA_INCLUDE_DIR . 'qa-db-admin.php'; require_once QA_INCLUDE_DIR . 'qa-app-posts.php'; $postids = qa_db_get_ip_visible_postids($ip); foreach ($postids as $postid) { qa_post_set_hidden($postid, true, $userid); } qa_redirect(qa_request()); } } } // Combine sets of questions and get information for users $questions = qa_any_sort_by_date(array_merge($qs, $qs_queued, $qs_hidden, $a_qs, $a_queued_qs, $a_hidden_qs, $c_qs, $c_queued_qs, $c_hidden_qs, $edit_qs)); $usershtml = qa_userids_handles_html(qa_any_get_userids_handles($questions)); $hostname = gethostbyaddr($ip); // Prepare content for theme $qa_content = qa_content_prepare(); $qa_content['title'] = qa_lang_html_sub('main/ip_address_x', qa_html($ip)); $qa_content['error'] = @$pageerror; $qa_content['form'] = array('tags' => 'method="post" action="' . qa_self_html() . '"', 'style' => 'wide', 'fields' => array('host' => array('type' => 'static', 'label' => qa_lang_html('misc/host_name'), 'value' => qa_html($hostname))), 'hidden' => array('code' => qa_get_form_security_code('ip-' . $ip))); if ($blockable) { require_once QA_INCLUDE_DIR . 'qa-app-limits.php'; $blockipclauses = qa_block_ips_explode(qa_opt('block_ips_write')); $matchclauses = array(); foreach ($blockipclauses as $blockipclause) { if (qa_block_ip_match($ip, $blockipclause)) { $matchclauses[] = $blockipclause; }
require_once QA_INCLUDE_DIR . 'app/admin.php'; require_once QA_INCLUDE_DIR . 'db/selects.php'; require_once QA_INCLUDE_DIR . 'app/format.php'; // Find queued questions, answers, comments $userid = qa_get_logged_in_userid(); list($queuedquestions, $queuedanswers, $queuedcomments) = qa_db_select_with_pending(qa_db_qs_selectspec($userid, 'created', 0, null, null, 'Q_QUEUED', true), qa_db_recent_a_qs_selectspec($userid, 0, null, null, 'A_QUEUED', true), qa_db_recent_c_qs_selectspec($userid, 0, null, null, 'C_QUEUED', true)); // Check admin privileges (do late to allow one DB query) if (qa_user_maximum_permit_error('permit_moderate')) { $qa_content = qa_content_prepare(); $qa_content['error'] = qa_lang_html('users/no_permission'); return $qa_content; } // Check to see if any were approved/rejected here $pageerror = qa_admin_check_clicks(); // Combine sets of questions and remove those this user has no permission to moderate $questions = qa_any_sort_by_date(array_merge($queuedquestions, $queuedanswers, $queuedcomments)); if (qa_user_permit_error('permit_moderate')) { // if user not allowed to moderate all posts foreach ($questions as $index => $question) { if (qa_user_post_permit_error('permit_moderate', $question)) { unset($questions[$index]); } } } // Get information for users $usershtml = qa_userids_handles_html(qa_any_get_userids_handles($questions)); // Prepare content for theme $qa_content = qa_content_prepare(); $qa_content['title'] = qa_lang_html('admin/recent_approve_title'); $qa_content['error'] = isset($pageerror) ? $pageerror : qa_admin_page_error(); $qa_content['q_list'] = array('form' => array('tags' => 'method="post" action="' . qa_self_html() . '"', 'hidden' => array('code' => qa_get_form_security_code('admin/click'))), 'qs' => array());
qa_redirect($qa_request); } if (qa_clicked('dohideall') && !qa_user_permit_error('permit_hide_show')) { require_once QA_INCLUDE_DIR . 'qa-db-admin.php'; require_once QA_INCLUDE_DIR . 'qa-app-posts.php'; $postids = qa_db_get_user_visible_postids($userid); foreach ($postids as $postid) { qa_post_set_hidden($postid, true, $qa_login_userid); } qa_redirect($qa_request); } } } // Get information on user references in answers and other stuff need for page $pagesize = qa_opt('page_size_user_posts'); $questions = qa_any_sort_by_date(array_merge($questions, $answerquestions, $commentquestions)); $questions = array_slice($questions, 0, $pagesize); $usershtml = qa_userids_handles_html(qa_any_get_userids_handles($questions)); $usershtml[$userid] = $userhtml; // Prepare content for theme $qa_content = qa_content_prepare(true); $qa_content['title'] = qa_lang_html_sub('profile/user_x', $userhtml); // General information about the user, only available if we're using internal user management if (!QA_FINAL_EXTERNAL_USERS) { $qa_content['form_profile'] = array('tags' => 'METHOD="POST" ACTION="' . qa_self_html() . '"', 'style' => 'wide', 'fields' => array('avatar' => array('type' => 'image', 'style' => 'tall', 'label' => '', 'html' => qa_get_user_avatar_html($useraccount['flags'], $useraccount['email'], $useraccount['handle'], $useraccount['avatarblobid'], $useraccount['avatarwidth'], $useraccount['avatarheight'], qa_opt('avatar_profile_size'))), 'duration' => array('type' => 'static', 'label' => qa_lang_html('users/member_for'), 'value' => qa_html(qa_time_to_string(qa_opt('db_time') - $useraccount['created']))), 'level' => array('type' => 'static', 'label' => qa_lang_html('users/member_type'), 'tags' => 'NAME="level"', 'value' => qa_html(qa_user_level_string($useraccount['level'])), 'note' => $useraccount['flags'] & QA_USER_FLAGS_USER_BLOCKED && isset($maxlevelassign) ? qa_lang_html('users/user_blocked') : ''))); if (empty($qa_content['form_profile']['fields']['avatar']['html'])) { unset($qa_content['form_profile']['fields']['avatar']); } // Private message form if (qa_opt('allow_private_messages') && isset($qa_login_userid) && $qa_login_userid != $userid && !($useraccount['flags'] & QA_USER_FLAGS_NO_MESSAGES)) { $qa_content['form_profile']['fields']['level']['value'] .= strtr(qa_lang_html('profile/send_private_message'), array('^1' => '<A HREF="' . qa_path_html('message/' . $handle) . '">', '^2' => '</A>'));