public function reCalculate() { $this->clearPoints(); $users = array(); foreach ($this->GetIdNameTournament() as $t_id => $name) { foreach ($this->GetMatches(array("tournament_id" => $t_id, 'calculate' => 1)) as $m_id => $matche) { if ($rates = $this->GetRate(array("matche_id" => $m_id))) { foreach ($rates as $rate) { $point = intval(GetPoint($matche['points_1'], $matche['points_2'], $rate['rpoints_1'], $rate['rpoints_2'])); if (empty($users[$rate['user_id']])) { $users[$rate['user_id']] = 0; } $users[$rate['user_id']] += $point; } } } } foreach ($users as $id => $points) { $this->db->query("UPDATE " . PREFIX . "_users SET points={$points} WHERE user_id=" . $id); } clear_cache(); }
Данный код защищен авторскими правами ===================================================== */ if (!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } $per_page = 50; $start = intval($_REQUEST['start']) ? intval($_REQUEST['start']) : 0; if ($rates = $total->GetRate('', $start, $per_page, array("date_rate" => "DESC"))) { $tpl->OpenTable(); $tpl->OpenSubtable("Ставки"); $tpl->OTable(array("Пользователь", "Турнир", "Матч", "Балы")); $i = $start; foreach ($rates as $rate) { if ($rate['calculate']) { $point = GetPoint($rate['mpoints_1'], $rate['mpoints_2'], $rate['rpoints_1'], $rate['rpoints_2']); } else { $point = "n/a"; } $archive = $rate['archive'] ? 'style="color:gray;" align="center"' : 'align="center"'; $tpl->row(array($rate['username'], $archive => $rate['tname'], $rate['komanda1'] . " " . $rate['rpoints_1'] . " - " . $rate['rpoints_2'] . " " . $rate['komanda2'], $point)); $i++; } $tpl->echo = FALSE; if ($nav = $tpl->navigation($start, $per_page, $i, $total->GetCount('', "rates"), $PHP_SELF . "?mod=totalizator&action=rates")) { echo $tpl->row($nav, true, true); } $tpl->echo = TRUE; $tpl->CTable(); $tpl->CloseSubtable(); $tpl->CloseTable();
$tpl->load_template("totalizator/totalizator.tpl"); if ($matche || $stats || $user) { $tpl->set_block('#\\[matches\\](.*?)\\[/matches\\]#si', ""); $tpl->set_block('#\\[rates\\](.*?)\\[/rates\\]#si', "\\1"); $tpl->set_block("#\\[user_page\\](.*?)\\[/user_page\\]#si", ""); foreach ($array as $value) { $j++; preg_match("'\\[rates_row\\](.*?)\\[/rates_row\\]'si", $tpl->copy_template, $matches); $point = $total_conf['allow_view_points'] || $value['calculate'] ? $value['rpoints_1'] . " - " . $value['rpoints_2'] : $lang_total['wait_result']; if ($matche || $user) { if ($user && isset($_GET['tor'])) { $point = $value['name']; $points = $value['points']; } else { if ($value['calculate']) { $points = "+" . GetPoint($value['mpoints_1'], $value['mpoints_2'], $value['rpoints_1'], $value['rpoints_2']); if ($user) { $point = $value['komanda1'] . " " . $value['rpoints_1'] . " - " . $value['rpoints_2'] . " " . $value['komanda2']; } } else { $points = $lang_total['wait_result']; if ($user) { $point = $value['komanda1'] . " " . ($total_conf['allow_view_points'] ? $value['rpoints_1'] . " - " . $value['rpoints_2'] : '') . " " . $value['komanda2']; } } } } else { $points = $value['points']; } $replace = array("{user}" => "<a " . GetUrl("user", $value['username']) . " >" . $value['username'] . "</a>", "{point}" => $point, "{points}" => $points, "{i}" => $j); $tpl->copy_template = strtr($tpl->copy_template, $replace);
$id = intval($id); if (!$id) { $error[] = "Не указан матч"; } elseif ($matche = $total->GetMatches(array("matche_id" => $id), 0, 1)) { if ($matche['points_1'] == "" || $matche['points_2'] == "") { $error[] = "Не уазан счёт в этом матче"; $hidden_array['subaction'] = "doedit"; $hidden_array['id'] = $id; $button = "Сохранить"; $title = "Редактирование матча"; } else { clear_cache(); $good = 0; if ($rates = $total->GetRate(array("matche_id" => $id))) { foreach ($rates as $rate) { $point = intval(GetPoint($matche['points_1'], $matche['points_2'], $rate['rpoints_1'], $rate['rpoints_2'])); if ($point) { $total->db->query("UPDATE " . PREFIX . "_users SET points=points+{$point} WHERE user_id='{$rate['user_id']}'"); $good++; } } $total->UpdateMatche(array("rates_right" => $good, "calculate" => 1), array("matche_id" => $id)); $tpl->msg("Подсчёт очков", "Подсчёт отчков завершён. Из {$matche['rates']} ставок, правильно продугадали исход матча {$good}", $PHP_SELF, false); } else { $total->UpdateMatche(array("calculate" => 1), array("matche_id" => $id)); $tpl->msg("Подсчёт очков", "Ставок на этот матч не было", $PHP_SELF, false); } } } else { $error[] = "Такого матча не существует"; }