示例#1
0
    header('Location: ../');
    exit;
}
require_once QA_INCLUDE_DIR . 'db/selects.php';
require_once QA_INCLUDE_DIR . 'app/format.php';
require_once QA_INCLUDE_DIR . 'app/favorites.php';
//	Check that we're logged in
$userid = qa_get_logged_in_userid();
if (!isset($userid)) {
    qa_redirect('login');
}
//	Get lists of favorites for this user
$pagesize_qs = qa_opt('page_size_qs');
$pagesize_users = qa_opt('page_size_users');
$pagesize_tags = qa_opt('page_size_tags');
list($numQs, $questions, $numUsers, $users, $numTags, $tags, $categories) = qa_db_select_with_pending(qa_db_selectspec_count(qa_db_user_favorite_qs_selectspec($userid)), qa_db_user_favorite_qs_selectspec($userid, $pagesize_qs), QA_FINAL_EXTERNAL_USERS ? null : qa_db_selectspec_count(qa_db_user_favorite_users_selectspec($userid)), QA_FINAL_EXTERNAL_USERS ? null : qa_db_user_favorite_users_selectspec($userid, $pagesize_users), qa_db_selectspec_count(qa_db_user_favorite_tags_selectspec($userid)), qa_db_user_favorite_tags_selectspec($userid, $pagesize_tags), qa_db_user_favorite_categories_selectspec($userid));
$usershtml = qa_userids_handles_html(QA_FINAL_EXTERNAL_USERS ? $questions : array_merge($questions, $users));
//	Prepare and return content for theme
$qa_content = qa_content_prepare(true);
$qa_content['title'] = qa_lang_html('misc/my_favorites_title');
//	Favorite questions
$qa_content['q_list'] = qa_favorite_q_list_view($questions, $usershtml);
$qa_content['q_list']['title'] = count($questions) ? qa_lang_html('main/nav_qs') : qa_lang_html('misc/no_favorite_qs');
if ($numQs['count'] > count($questions)) {
    $url = qa_path_html('favorites/questions', array('start' => $pagesize_qs));
    $qa_content['q_list']['footer'] = '<p class="qa-link-next"><a href="' . $url . '">' . qa_lang_html('misc/more_favorite_qs') . '</a></p>';
}
//	Favorite users
if (!QA_FINAL_EXTERNAL_USERS) {
    $qa_content['ranking_users'] = qa_favorite_users_view($users, $usershtml);
    $qa_content['ranking_users']['title'] = count($users) ? qa_lang_html('main/nav_users') : qa_lang_html('misc/no_favorite_users');
//	Data for functions to run
$favswitch = array('questions' => array('page_opt' => 'page_size_qs', 'fn_spec' => 'qa_db_user_favorite_qs_selectspec', 'fn_view' => 'qa_favorite_q_list_view', 'key' => 'q_list'), 'users' => array('page_opt' => 'page_size_users', 'fn_spec' => 'qa_db_user_favorite_users_selectspec', 'fn_view' => 'qa_favorite_users_view', 'key' => 'ranking_users'), 'tags' => array('page_opt' => 'page_size_tags', 'fn_spec' => 'qa_db_user_favorite_tags_selectspec', 'fn_view' => 'qa_favorite_tags_view', 'key' => 'ranking_tags'));
//	Check that we're logged in
$userid = qa_get_logged_in_userid();
if (!isset($userid)) {
    qa_redirect('login');
}
//	Get lists of favorites of this type
$favtype = qa_request_part(1);
$start = qa_get_start();
if (!array_key_exists($favtype, $favswitch) || $favtype === 'users' && QA_FINAL_EXTERNAL_USERS) {
    return include QA_INCLUDE_DIR . 'qa-page-not-found.php';
}
extract($favswitch[$favtype]);
// get switch variables
$pagesize = qa_opt($page_opt);
list($totalItems, $items) = qa_db_select_with_pending(qa_db_selectspec_count($fn_spec($userid)), $fn_spec($userid, $pagesize, $start));
$count = $totalItems['count'];
$usershtml = qa_userids_handles_html($items);
//	Prepare and return content for theme
$qa_content = qa_content_prepare(true);
$qa_content['title'] = qa_lang_html('misc/my_favorites_title');
$qa_content[$key] = $fn_view($items, $usershtml);
//	Sub navigation for account pages and suggestion
$qa_content['suggest_next'] = qa_lang_html_sub('misc/suggest_favorites_add', '<span class="qa-favorite-image">&nbsp;</span>');
$qa_content['page_links'] = qa_html_page_links(qa_request(), $start, $pagesize, $count, qa_opt('pages_prev_next'));
$qa_content['navigation']['sub'] = qa_user_sub_navigation(qa_get_logged_in_handle(), 'favorites', true);
return $qa_content;
/*
	Omit PHP closing tag to help avoid accidental output
*/
示例#3
0
    qa_fatal_error('User accounts are handled by external code');
}
if (!isset($loginUserId)) {
    $qa_content = qa_content_prepare();
    $qa_content['error'] = qa_insert_login_links(qa_lang_html('misc/message_must_login'), qa_request());
    return $qa_content;
}
if (!qa_opt('allow_private_messages') || !qa_opt('show_message_history')) {
    return include QA_INCLUDE_DIR . 'qa-page-not-found.php';
}
//	Find the messages for this user
$start = qa_get_start();
$pagesize = qa_opt('page_size_pms');
// get number of messages then actual messages for this page
$func = $showOutbox ? 'qa_db_messages_outbox_selectspec' : 'qa_db_messages_inbox_selectspec';
$pmSpecCount = qa_db_selectspec_count($func('private', $loginUserId, true));
$pmSpec = $func('private', $loginUserId, true, $start, $pagesize);
list($numMessages, $userMessages) = qa_db_select_with_pending($pmSpecCount, $pmSpec);
$count = $numMessages['count'];
//	Prepare content for theme
$qa_content = qa_content_prepare();
$qa_content['title'] = qa_lang_html($showOutbox ? 'misc/pm_outbox_title' : 'misc/pm_inbox_title');
$qa_content['script_rel'][] = 'qa-content/qa-user.js?' . QA_VERSION;
$qa_content['message_list'] = array('tags' => 'id="privatemessages"', 'messages' => array(), 'form' => array('tags' => 'name="pmessage" method="post" action="' . qa_self_html() . '"', 'style' => 'tall', 'hidden' => array('qa_click' => '', 'handle' => qa_html($loginUserHandle), 'start' => qa_html($start), 'code' => qa_get_form_security_code('pm-' . $loginUserHandle))));
$htmlDefaults = qa_message_html_defaults();
if ($showOutbox) {
    $htmlDefaults['towhomview'] = true;
}
foreach ($userMessages as $message) {
    $msgFormat = qa_message_html_fields($message, $htmlDefaults);
    $replyHandle = $showOutbox ? $message['tohandle'] : $message['fromhandle'];
示例#4
0
if (!defined('QA_VERSION')) {
    // don't allow this page to be requested directly from browser
    header('Location: ../');
    exit;
}
require_once QA_INCLUDE_DIR . 'db/selects.php';
require_once QA_INCLUDE_DIR . 'app/users.php';
require_once QA_INCLUDE_DIR . 'app/format.php';
//	Check we're not using single-sign on integration
if (QA_FINAL_EXTERNAL_USERS) {
    qa_fatal_error('User accounts are handled by external code');
}
//	Get list of blocked users
$start = qa_get_start();
$pagesize = qa_opt('page_size_users');
$userSpecCount = qa_db_selectspec_count(qa_db_users_with_flag_selectspec(QA_USER_FLAGS_USER_BLOCKED));
$userSpec = qa_db_users_with_flag_selectspec(QA_USER_FLAGS_USER_BLOCKED, $start, $pagesize);
list($numUsers, $users) = qa_db_select_with_pending($userSpecCount, $userSpec);
$count = $numUsers['count'];
//	Check we have permission to view this page (moderator or above)
if (qa_get_logged_in_level() < QA_USER_LEVEL_MODERATOR) {
    $qa_content = qa_content_prepare();
    $qa_content['error'] = qa_lang_html('users/no_permission');
    return $qa_content;
}
//	Get userids and handles of retrieved users
$usershtml = qa_userids_handles_html($users);
//	Prepare content for theme
$qa_content = qa_content_prepare();
$qa_content['title'] = $count > 0 ? qa_lang_html('users/blocked_users') : qa_lang_html('users/no_blocked_users');
$qa_content['ranking'] = array('items' => array(), 'rows' => ceil(count($users) / qa_opt('columns_users')), 'type' => 'users');