diff --git a/pool/page_workers.php b/pool/page_workers.php index 9f2d92fc..938aee9a 100644 --- a/pool/page_workers.php +++ b/pool/page_workers.php @@ -15,9 +15,14 @@ function worktitle($data, $user) return $pg; } # +function workhashorder($a, $b) +{ + return $b['w_uhr'] - $a['w_uhr']; +} +# function workuser($data, $user, &$offset, &$totshare, &$totdiff, &$totinvalid, &$totrate, &$blockacc, - &$blockreward, $old = false) + &$blockreward, $old = false, $srt = false) { $ans = getWorkers($user); @@ -28,6 +33,7 @@ function workuser($data, $user, &$offset, &$totshare, &$totdiff, $blockacc = $ans['blockacc']; if (isset($ans['blockreward'])) $blockreward = $ans['blockreward']; + $all = array(); $count = $ans['rows']; for ($i = 0; $i < $count; $i++) { @@ -35,48 +41,69 @@ function workuser($data, $user, &$offset, &$totshare, &$totdiff, if ($old !== false && $lst > $old) continue; + if ($ans['w_elapsed:'.$i] > 3600) + $uhr = $ans['w_hashrate1hr:'.$i]; + else + $uhr = $ans['w_hashrate5m:'.$i]; + + $all[] = array('workername' => $ans['workername:'.$i], + 'w_lastshare' => $ans['w_lastshare:'.$i], + 'w_lastdiff' => $ans['w_lastdiff:'.$i], + 'w_shareacc' => $ans['w_shareacc:'.$i], + 'w_diffacc' => $ans['w_diffacc:'.$i], + 'w_diffinv' => $ans['w_diffinv:'.$i], + 'w_lastdiff' => $ans['w_lastdiff:'.$i], + 'w_uhr' => $uhr); + } + + if ($srt) + usort($all, 'workhashorder'); + + for ($i = 0; $i < $count; $i++) + { + $lst = $ans['STAMP'] - $all[$i]['w_lastshare']; + if ($old !== false && $lst > $old) + continue; + if ((($offset) % 2) == 0) $row = 'even'; else $row = 'odd'; $pg .= ""; - $pg .= ''.htmlspecialchars($ans['workername:'.$i]).''; - if ($ans['w_lastdiff:'.$i] > 0) - $ld = difffmt($ans['w_lastdiff:'.$i]); + $pg .= ''.htmlspecialchars($all[$i]['workername']).''; + if ($all[$i]['w_lastdiff'] > 0) + $ld = difffmt($all[$i]['w_lastdiff']); else $ld = ' '; $pg .= "$ld"; $pg .= ''.howlongago($lst).''; - $shareacc = number_format($ans['w_shareacc:'.$i], 0); - $totshare += $ans['w_shareacc:'.$i]; - $diffacc = number_format($ans['w_diffacc:'.$i], 0); - $totdiff += $ans['w_diffacc:'.$i]; + $shareacc = number_format($all[$i]['w_shareacc'], 0); + $totshare += $all[$i]['w_shareacc']; + $diffacc = number_format($all[$i]['w_diffacc'], 0); + $totdiff += $all[$i]['w_diffacc']; $pg .= "$shareacc"; $pg .= "$diffacc"; - $dtot = $ans['w_diffacc:'.$i] + $ans['w_diffinv:'.$i]; + $dtot = $all[$i]['w_diffacc'] + $all[$i]['w_diffinv']; if ($dtot > 0) - $rej = number_format(100.0 * $ans['w_diffinv:'.$i] / $dtot, 3); + $rej = number_format(100.0 * $all[$i]['w_diffinv'] / $dtot, 3); else $rej = '0'; - $totinvalid += $ans['w_diffinv:'.$i]; + $totinvalid += $all[$i]['w_diffinv']; $pg .= "$rej%"; if ($blockacc <= 0) $blkpct = ' '; else - $blkpct = number_format(100.0 * $ans['w_diffacc:'.$i] / $blockacc, 3) . '%'; + $blkpct = number_format(100.0 * $all[$i]['w_diffacc'] / $blockacc, 3) . '%'; $pg .= "$blkpct"; - if ($ans['w_elapsed:'.$i] > 3600) - $uhr = $ans['w_hashrate1hr:'.$i]; - else - $uhr = $ans['w_hashrate5m:'.$i]; + $uhr = $all[$i]['w_uhr']; if ($uhr == '?') $uhr = '?GHs'; else @@ -138,7 +165,7 @@ function doworker($data, $user) $pg .= worktitle($data, $user); $pg .= workuser($data, $user, $offset, $totshare, $totdiff, $totinvalid, - $totrate, $blockacc, $blockreward, false); + $totrate, $blockacc, $blockreward, false, true); $pg .= worktotal($offset, $totshare, $totdiff, $totinvalid, $totrate, $blockacc, $blockreward);