--- syntax.orig.php 2010-04-12 18:08:48.000000000 +0200 +++ syntax.php 2010-06-06 21:48:50.000000000 +0200 @@ -151,6 +151,8 @@ if($save) { $poll['votes']++; $poll['ips'][] = $ip; + // CHANGE + $poll['time'] = time(); if($_SERVER['REMOTE_USER']) $poll['users'][] = $_SERVER['REMOTE_USER']; if($fh = fopen($pfile, 'w')) { fwrite($fh, serialize($poll)); @@ -158,7 +160,7 @@ } $voted = true; } - }elseif(in_array($ip, $poll['ips']) || ($_SERVER['REMOTE_USER'] && in_array($_SERVER['REMOTE_USER'], $poll['users']))) { + }elseif( (in_array($ip, $poll['ips']) /*CHANGE - one hour limit*/ && time()-$poll['time'] <= 60*60) || ($_SERVER['REMOTE_USER'] && in_array($_SERVER['REMOTE_USER'], $poll['users']))) { $voted = true; } @@ -188,11 +190,20 @@ foreach($questions as $question) { $ret .= '
'.$renderer->_xmlEntities($question['q']).'
'."\n"; $ret .= ' '."\n"; + // CHANGE - Find total number of votes for this question; note this might be different from $poll['votes'], + // since user might vote only for some questions and not for others + $total = 0; + foreach($question['a'] as $a) { + $s = isset($poll['results'][$q]) ? (isset($poll['results'][$q][$a]) ? $poll['results'][$q][$a] : 0) : 0; + $total += $s; + } foreach($question['a'] as $a) { $ret .= ' '."\n"; $a = $renderer->_xmlEntities($a); $s = isset($poll['results'][$q]) ? (isset($poll['results'][$q][$a]) ? $poll['results'][$q][$a] : 0) : 0; - $pct = sprintf('%3.1f', 100 * $s / $poll['votes']); + // CHANGE + // $pct = sprintf('%3.1f', 100 * $s / $poll['votes']); + $pct = sprintf('%3.1f', 100 * $s / $total); $ret .= ' '."\n"; $ret .= ' '."\n"; $ret .= ' '."\n"; @@ -209,7 +220,9 @@ global $lang; global $ID; - $ret = ''."\n"; + // CHANGE + // $ret = ''."\n"; + $ret = ''."\n"; $ret .= '
'."\n"; $ret .= ' '."\n"; $ret .= ' '."\n"; @@ -225,7 +238,8 @@ $ret .= ' '.$a.'
'."\n"; }else $ret .= ' '.$a.'
'."\n"; } - $ret .= '
'."\n"; + // CHANGE + $ret .= '


'."\n"; $q++; } $ret .= ' '."\n";
'.$a.'
'.($s ? '
 
' : '').'
'.$pct.'% ('.$s.')