コード例 #1
0
function get_page_rows($mentoring_round)
{
    global $pguser;
    $pages = array();
    $mentored_round = $mentoring_round->mentee_round;
    $projects = get_mentoring_projects($mentoring_round);
    $mentoring_user_column = $mentoring_round->user_column_name;
    $mentored_user_column = $mentored_round->user_column_name;
    $mentored_time_column = $mentored_round->time_column_name;
    $round_tallyboard = new TallyBoard($mentored_round->id, 'U');
    list($join_clause, $count_column) = $round_tallyboard->get_sql_joinery_for_current_tallies('u.u_id');
    foreach ($projects as $project) {
        $sql = "SELECT\n                    p.projectid,\n                    p.nameofwork AS title,\n                    p.authorsname AS author,\n                    pg.fileid,\n                    pg.image,\n                    u.u_privacy AS privacy,\n                    u.u_id,\n                    {$count_column} AS total_count,\n                    pg.{$mentored_user_column} AS mentored_username,\n                    pg.{$mentored_time_column} AS unixtime,\n                    pg.{$mentoring_user_column} AS mentor_username,\n                    FROM_UNIXTIME(pg.{$mentored_time_column}) AS time1,\n                    pg.state AS page_state\n                FROM\n                    projects AS p,\n                    {$project->projectid} AS pg\n                JOIN users AS u ON pg.{$mentored_user_column} = u.username\n                {$join_clause}\n                WHERE \n                    p.projectid = '{$project->projectid}'\n                    AND ( pg.state = '{$mentoring_round->page_avail_state}'\n                          OR (\n                            pg.{$mentoring_user_column} = '{$pguser}'\n                            AND pg.state IN ( '{$mentoring_round->page_out_state}',\n                                              '{$mentoring_round->page_temp_state}'\n                                            )\n                            )\n                    )\n                ORDER BY\n                    mentored_username,\n                    unixtime";
        $rows = _sql_rows($sql);
        $pages = $pages + $rows;
    }
    return $pages;
}
コード例 #2
0
include_once $relPath . 'prefs_options.inc';
// PRIVACY_*
include_once $relPath . 'theme.inc';
include_once $relPath . 'user_is.inc';
include_once $relPath . 'page_tally.inc';
require_login();
$valid_tally_names = array_keys($page_tally_names);
$tally_name = get_enumerated_param($_GET, 'tally_name', null, $valid_tally_names);
$title = sprintf(_('Top 100 Proofreaders for Round %s'), $tally_name);
output_header($title);
echo "<br><h2>{$title}</h2>\n";
echo "<br>\n";
echo "<br>\n";
// the
$sql_anonymous = mysql_real_escape_string(_("Anonymous"));
if (isset($GLOBALS['pguser'])) {
    // hide names of users who don't want even logged on people to see their names
    $proofreader_expr = "IF(u_privacy = " . PRIVACY_ANONYMOUS . ",'{$sql_anonymous}', username)";
} else {
    // hide names of users who don't want unlogged on people to see their names
    $proofreader_expr = "IF(u_privacy != " . PRIVACY_PUBLIC . ",'{$sql_anonymous}', username)";
}
$subtitle = sprintf(_('Users with the Highest Number of Pages Saved-as-Done in Round %s'), $tally_name);
echo "<h3>{$subtitle}</h3>\n";
$users_tallyboard = new TallyBoard($tally_name, 'U');
list($joined_with_user_page_tallies, $user_page_tally_column) = $users_tallyboard->get_sql_joinery_for_current_tallies('users.u_id');
$sql_upt_column_name = mysql_real_escape_string(sprintf(_("%s Pages Completed"), $tally_name));
dpsql_dump_themed_query("\n        SELECT\n            {$proofreader_expr} AS '" . mysql_real_escape_string(_("Proofreader")) . "',\n            {$user_page_tally_column} AS '{$sql_upt_column_name}'\n        FROM users {$joined_with_user_page_tallies}\n        WHERE {$user_page_tally_column} > 0\n        ORDER BY 2 DESC, 1 ASC\n        LIMIT 100\n    ", 1, DPSQL_SHOW_RANK);
echo "<br>\n";
echo "<br>\n";
// vim: sw=4 ts=4 expandtab
コード例 #3
0
function page_summary_sql($mentored_round, $projectid)
{
    global $code_url;
    $round_tallyboard = new TallyBoard($mentored_round->id, 'U');
    list($joined_with_user_page_tallies, $user_page_tally_column) = $round_tallyboard->get_sql_joinery_for_current_tallies('u.u_id');
    return "\n        SELECT\n            CASE WHEN u.u_privacy = " . PRIVACY_ANONYMOUS . " THEN 'Anonymous'\n            ELSE CONCAT('<a href=\"" . $code_url . "/stats/members/mdetail.php?&id=',u.u_id,\n                '\">',u.username,'</a>')\n            END AS '" . mysql_real_escape_string(_("Proofreader")) . "',\n            COUNT(1) AS '" . mysql_real_escape_string(_("Pages this project")) . "',\n            {$user_page_tally_column} AS '" . mysql_real_escape_string(sprintf(_("Total %s Pages"), $mentored_round->id)) . "',\n            DATE_FORMAT(FROM_UNIXTIME(u.date_created),'%M-%d-%y') AS '" . mysql_real_escape_string(_("Joined")) . "'\n        FROM {$projectid}  AS p\n            INNER JOIN users AS u ON p.{$mentored_round->user_column_name} = u.username\n            {$joined_with_user_page_tallies}\n        GROUP BY p.{$mentored_round->user_column_name}";
}