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++;