/* This file is part of CMS Made Simple module: Tourney. Copyright (C) 2014-2015 Tom Phane <*****@*****.**> Refer to licence and other details at the top of file Tourney.module.php More info at http://dev.cmsmadesimple.org/projects/tourney */ if (!$this->CheckAccess('admod')) { $this->Redirect($id, 'defaultadmin', '', array('tmt_message' => $this->PrettyMessage('lackpermission', FALSE))); } $bid = $params['bracket_id']; $pref = cms_db_prefix(); $sql = 'SELECT type FROM ' . $pref . 'module_tmt_brackets WHERE bracket_id=?'; $type = $db->GetOne($sql, array($bid)); if ($type !== FALSE) { $sch = new tmtSchedule(); switch (intval($type)) { case Tourney::DETYPE: $res = $sch->InitDEMatches($this, $bid); break; case Tourney::RRTYPE: $res = $sch->NextRRMatches($this, $bid); break; default: //case Tourney::KOTYPE: $res = $sch->InitKOMatches($this, $bid); break; } unset($sch); $newparms = $this->GetEditParms($params, 'matchestab'); if ($res === TRUE) {
} $db->Execute($sql, array($name, $row['seeding'], $row['contactall'], $order, $tid)); $order++; $contact = $row['contact']; if ($contact != $pcontact) { $funcs->UpdateFirstPlayer($tid, FALSE, $contact); } //update contact in people table $db->Execute($sql2, array($tid)); $db->Execute($sql3, array($tid)); } unset($row); } if ($newtype) { if (!$sch) { $sch = new tmtSchedule(); } $sch->ScheduleMatches($this, $bracket_id); } if ($newtype || $matches || $results) { $sql = 'UPDATE ' . $pref . 'module_tmt_brackets SET chartbuild=1 WHERE bracket_id=?'; $db->Execute($sql, array($bracket_id)); } } $message = $res ? '' : $this->PrettyMessage('err_save', FALSE); } elseif (!empty($data->errmsg)) { $message = $data->errmsg; } if (isset($params['apply'])) { if (isset($params['newbracket'])) { unset($params['newbracket']);
$val = $params['bracket_id']; } elseif (!empty($params['alias'])) { $sql = 'SELECT * FROM ' . $pref . 'module_tmt_brackets WHERE alias=?'; $val = $params['alias']; } else { DisplayErrorPage($this, $smarty, $db, $params, TRUE, $this->Lang('err_tag')); return; } $bdata = $db->GetRow($sql, array($val)); if (!$bdata) { DisplayErrorPage($this, $smarty, $db, $params, TRUE, $this->Lang('err_missing')); return; } $bracket_id = $bdata['bracket_id']; //refresh the matches table,if necessary $sch = new tmtSchedule(); switch ($bdata['type']) { case Tourney::DETYPE: $res = $sch->UpdateDEMatches($this, $bracket_id); break; case Tourney::RRTYPE: $res = $sch->NextRRMatches($this, $bracket_id); break; default: // case Tourney:KOTYPE: $res = $sch->UpdateKOMatches($this, $bracket_id); break; } if ($res === TRUE) { $bdata['chartbuild'] = 1; }
$sql = 'INSERT INTO ' . $pref . 'module_tmt_people (' . implode(',', $fields) . ') VALUES (' . $fillers . ')'; $db->Execute($sql, $values); } } if (!empty($bracketdata['matches']) && is_array($bracketdata['matches'])) { $fields = array_keys($bracketdata['matches'][0]); $fixer = array_search('bracket_id', $fields); $fixer2 = array_search('match_id', $fields); if ($fixer !== FALSE && $fixer2 !== FALSE) { //TODO flag 'added' $fixer3 = array_search('nextm', $fields); //irrelevant for RR $fixer4 = array_search('nextlm', $fields); //ditto and for KO $mc = count($bracketdata['matches']); $sch = new tmtSchedule(); $mid = $sch->ReserveMatches($db, $pref, $mc); $offset = $mid - $bracketdata['matches'][0]['match_id']; //lowest match-no. is sorted 1st foreach ($bracketdata['matches'] as $thisone) { $values = array_values($thisone); $values[$fixer] = $bid; $values[$fixer2] = $mid; if ($fixer3 !== FALSE) { if ($values[$fixer3]) { $values[$fixer3] += $offset; } } if ($fixer4 !== FALSE) { if ($values[$fixer4]) { $values[$fixer4] += $offset;
$to = $params['real_action'] == 'moveup' ? $from - 1 : $from + 1; if ($to > 0) { $sql = 'UPDATE ' . $pref . 'module_tmt_teams SET displayorder=' . $from . ' WHERE bracket_id=? AND displayorder=' . $to; $db->Execute($sql, array($bid)); $sql = 'UPDATE ' . $pref . 'module_tmt_teams SET displayorder=' . $to . ' WHERE bracket_id=? AND team_id=?'; $db->Execute($sql, array($bid, (int) $movetid)); } } $params['real_action'] = 'edit'; break; default: //refresh matches if appropriate $pref = cms_db_prefix(); $sql = 'SELECT COUNT(match_id) AS num FROM ' . $pref . 'module_tmt_matches WHERE bracket_id=? AND flags=0'; if ($db->GetOne($sql, array($bid))) { $sch = new tmtSchedule(); $sql = 'SELECT type FROM ' . $pref . 'module_tmt_brackets WHERE bracket_id=?'; $type = $db->GetOne($sql, array($bid)); switch ($type) { case Tourney::DETYPE: $sch->UpdateDEMatches($this, $bid); break; case Tourney::RRTYPE: $sch->NextRRMatches($this, $bid); break; default: //case Tourney::KOTYPE: $sch->UpdateKOMatches($this, $bid); break; } unset($sch);
if ($errmsg) { $msg .= '<br />' . $errmsg; } } if ($save) { $sql = 'UPDATE ' . $pref . 'module_tmt_matches SET playwhen=?, score=?, status=? WHERE match_id=?'; $db->Execute($sql, array($when, $score, $res, $params['match'])); $t = $db->GenID($pref . 'module_tmt_history_seq'); if ($params['sender']) { $by = $params['sender']; } $dt->modify('now'); $when = strftime('%F %T', $dt->getTimestamp()); $sql = 'INSERT INTO ' . $pref . 'module_tmt_history (history_id,bracket_id,changer,changewhen,olddata,newdata,comment VALUES (?,?,?,?,?,?,?)'; $db->Execute($sql, array($t, $bracket_id, $by, $when, NULL, $tres, $this->Lang('match_added', $params['match']))); $funcs = new tmtSchedule(); $funcs->ScheduleMatches($this, $bracket_id); } $params = array('bracket_id' => $bracket_id, 'view' => $params['view'], 'message' => $msg); $this->RedirectForFrontEnd($id, $returnid, 'default', $params); } else { $key = 'err_noresult2'; } } else { $key = 'err_nomatch'; } } else { $key = 'err_captcha'; } $smarty->assign('message', $this->Lang($key)); //fall into repeat presentation