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; }
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
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}"; }