Mercurial > hg > fapweb
changeset 327:995400521822
Fix results display.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 28 Nov 2013 00:10:27 +0200 |
parents | 64c28792ae08 |
children | 6dd62c3204aa |
files | results.inc.php |
diffstat | 1 files changed, 45 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/results.inc.php Wed Nov 27 23:36:33 2013 +0200 +++ b/results.inc.php Thu Nov 28 00:10:27 2013 +0200 @@ -7,6 +7,8 @@ $useASCII = stGetSetting("showResultsASCII"); $showResults = stGetSetting("showResults"); $showAuthors = stGetSetting("showResAuthors"); +$voteKeyMode = stGetSetting("voteKeyMode"); + function stGetNumberSuffix($val) { @@ -28,9 +30,9 @@ if (stAdmSessionAuth()) { if (!$showResults) - echo "<p>Results hidden from normal users.</p>"; + echo "<p class=\"notice\">Results hidden from normal users.</p>"; if (!$showAuthors) - echo "<p>Entry authors hidden from normal users.</p>"; + echo "<p class=\"notice\">Entry authors hidden from normal users.</p>"; $showResults = $showAuthors = TRUE; } @@ -53,15 +55,44 @@ if (($nentries = stFetchSQLColumn($sql)) !== FALSE && $nentries > 0) { - // Get voting results - $sql = - "SELECT entries.*,SUM(votes.value) AS votesum FROM entries ". - "LEFT JOIN votes ON votes.entry_id=entries.id ". - "WHERE entries.compo_id=".$compo["id"]." ". - "GROUP BY entries.id ". - "ORDER BY votesum DESC"; + // Get voting results by mode + switch ($voteKeyMode) + { + case VOTE_FREELY: + $sql = + "SELECT entries.*,SUM(votes.value) AS votesum FROM entries ". + "LEFT JOIN votes ON votes.entry_id=entries.id ". + "WHERE entries.compo_id=".$compo["id"]." ". + "GROUP BY entries.id ". + "ORDER BY votesum DESC"; + break; - $entries = stExecSQL($sql); + case VOTE_ACTIVATE: + $sql = + "SELECT entries.*,SUM(votes.value) AS votesum FROM entries ". + "LEFT JOIN votes ON votes.entry_id=entries.id ". + "LEFT JOIN votekeys ON votes.key_id=votekeys.id ". + "WHERE entries.compo_id=".$compo["id"]." ". + "AND votekeys.active<>0 ". + "GROUP BY entries.id ". + "ORDER BY votesum DESC"; + break; + + case VOTE_ASSIGN: + $sql = + "SELECT entries.*,SUM(votes.value) AS votesum FROM entries ". + "LEFT JOIN votes ON votes.entry_id=entries.id ". + "LEFT JOIN attendees ON votes.key_id=attendees.key_id ". + "WHERE entries.compo_id=".$compo["id"]." ". + "AND attendees.key_id<>0 ". + "GROUP BY entries.id ". + "ORDER BY votesum DESC"; + break; + } + + // List results + $prev = FALSE; + $index = 0; if ($useASCII) { @@ -70,18 +101,15 @@ "<b> ".chentities($compo["name"])." </b>\n". str_repeat("=", strlen($compo["name"]) + 2)."-- - .\n\n"; - foreach ($entries as $entry) + foreach (stExecSQL($sql) as $entry) { - $index = 0; - $prev = FALSE; - - if ($entry["votesum"] != $prev) + if ($entry["votesum"] !== $prev) { $index++; printf("%3d%s.", $index, stGetNumberSuffix($index)); } else - echo " "; + echo " -''-"; printf(" %s by %s (%d pts)\n", chentities(stStrChop($entry["name"], 30)), @@ -104,8 +132,7 @@ " <th>Author</th>\n". " </tr>\n"; - $index = 0; - foreach ($fres as $entry) + foreach (stExecSQL($sql) as $entry) { if ($entry["votesum"] != $prev) $index++;