Commit 18d47b6c by pupi1985

Add newest users page

parent 8ff4bddf
......@@ -1308,12 +1308,15 @@
$moderatorPlus = qa_get_logged_in_level() >= QA_USER_LEVEL_MODERATOR;
$showSpecialUsersPage = !qa_user_permit_error('permit_view_special_users_page');
if ($moderatorPlus || $showSpecialUsersPage) { // We want to show this item when more than one item should be displayed
$menuItems['users$'] = array(
'url' => qa_path_html('users'),
'label' => qa_lang_html('main/highest_users'),
'url' => qa_path_html('users'),
);
$menuItems['users/newest'] = array(
'label' => qa_lang_html('main/newest_users'),
'url' => qa_path_html('users/newest'),
);
}
if ($showSpecialUsersPage) {
$menuItems['users/special'] = array(
......
......@@ -1307,6 +1307,24 @@
}
function qa_db_newest_users_selectspec($start, $count = null)
/*
Return the selectspec to get the newest users. Return $count (if null, a default is used) users starting from the
offset $start. This query must not be run when using external users
*/
{
$count = isset($count) ? min($count, QA_DB_RETRIEVE_USERS) : QA_DB_RETRIEVE_USERS;
return array(
'columns' => array('userid', 'handle', 'flags', 'email', 'created' => 'UNIX_TIMESTAMP(created)', 'avatarblobid' => 'BINARY avatarblobid', 'avatarwidth', 'avatarheight'),
'source' => '^users ORDER BY created DESC, userid DESC LIMIT #,#',
'arguments' => array($start, $count),
'sortdesc' => 'created',
'sortdesc_2' => 'userid',
);
}
function qa_db_users_from_level_selectspec($level)
/*
Return the selectspec to get information about users at a certain privilege level or higher
......
......@@ -122,6 +122,7 @@
'nav_unanswered' => 'Unanswered',
'nav_updates' => 'My Updates',
'nav_users' => 'Users',
'newest_users' => 'Newest users',
'no_active_users' => 'No active users found',
'no_answers_found' => 'No answers found',
'no_answers_in_x' => 'No answers in ^',
......
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/pages/users-newest.php
Description: Controller for newest users page
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
More about this license: http://www.question2answer.org/license.php
*/
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/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 all users
$start = qa_get_start();
$users = qa_db_select_with_pending(qa_db_newest_users_selectspec($start, qa_opt_if_loaded('page_size_users')));
$userCount = qa_opt('cache_userpointscount');
$pageSize = qa_opt('page_size_users');
$users = array_slice($users, 0, $pageSize);
$usersHtml = qa_userids_handles_html($users);
// Prepare content for theme
$qa_content = qa_content_prepare();
$qa_content['title'] = qa_lang_html('main/newest_users');
$qa_content['ranking'] = array(
'items' => array(),
'rows' => ceil($pageSize / qa_opt('columns_users')),
'type' => 'newest-users',
);
if (!empty($users)) {
foreach ($users as $user) {
$avatarHtml = qa_get_user_avatar_html($user['flags'], $user['email'], $user['handle'],
$user['avatarblobid'], $user['avatarwidth'], $user['avatarheight'], qa_opt('avatar_users_size'), true);
$when = qa_when_to_html($user['created'], 7);
$qa_content['ranking']['items'][] = array(
'avatar' => $avatarHtml,
'label' => $usersHtml[$user['userid']],
'score' => $when['data'],
'raw' => $user,
);
}
} else {
$qa_content['title'] = qa_lang_html('main/no_active_users');
}
// set the canonical url based on possible pagination
$qa_content['canonical'] = qa_path_html(qa_request(), ($start > 0 ? array('start' => $start) : null), qa_opt('site_url'));
$qa_content['page_links'] = qa_html_page_links(qa_request(), $start, $pageSize, $userCount, qa_opt('pages_prev_next'));
$qa_content['navigation']['sub'] = qa_users_sub_navigation();
return $qa_content;
......@@ -444,6 +444,7 @@
'user/' => 'pages/user.php',
'users' => 'pages/users.php',
'users/blocked' => 'pages/users-blocked.php',
'users/newest' => 'pages/users-newest.php',
'users/special' => 'pages/users-special.php',
);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment