function Contest_Save($id, $clear = false) { global $noarchive; $contest = WT_contest_by_id($id); $name = FormPOSTValue('name', 'ContestSettings'); if (trim($name) == '') { add_info('Название контеста не может быть пустым.'); return false; } $settings = $contest['settings']; $settings['rules'] = atoi(FormPOSTValue('rules', 'ContestSettings')); $settings['duration'] = atoi(FormPOSTValue('duration', 'ContestSettings')); $settings['freezetime'] = atoi(FormPOSTValue('freezetime', 'ContestSettings')); $settings['penalty'] = atoi(FormPOSTValue('penalty', 'ContestSettings')); $settings['trycount'] = atoi(FormPOSTValue('trycount', 'ContestSettings')); $settings['unfrozen'] = atoi(FormPOSTValue('unfrozen', 'ContestSettings')); $settings['viewdetail'] = atoi(FormPOSTValue('viewdetail', 'ContestSettings')); $settings['show_last_accepted'] = atoi(FormPOSTValue('show_last_accepted', 'ContestSettings')); $settings['ignore_ce'] = atoi(FormPOSTValue('ignore_ce', 'ContestSettings')); $settings['autostart'] = $_POST['contest_autostart']; if ($settings['autostart']) { $date = new CDCDate(); $date->Init(); $date->ReceiveValue('contest_autostart_date'); $settings['autostart.date'] = $date->GetValue(); $time = new CDCDate(); $time->Init(); $time->ReceiveValue('contest_autostart_time'); $settings['autostart.time'] = $time->GetValue(); } if (!$noarchive) { if ($_FILES['archive']['name'] != '') { file_unlink_encrypted($settings['archive']); $data = $_FILES['archive']; if (WT_contest_running($id) || WT_contest_finished($id)) { $blocked = 0; } else { $blocked = 1; } $settings['archive'] = file_store_encrypted($data, 1, $blocked); } } else { file_unlink_encrypted($settings['archive']); $settings['archive'] = ''; } $update = array('name' => db_html_string($name), 'settings' => db_string(serialize($settings))); db_update('tester_contests', $update, "`id`={$id}"); return true; }
function Contest_Save($id, $clear = false) { global $noarchive; if (!$this->GetAllowed('CONTEST.MANAGE')) { return; } $contest = WT_contest_by_id($id); $name = FormPOSTValue('name', 'ContestSettings'); if (trim($name) == '') { add_info('Название контеста не может быть пустым.'); return false; } $settings = $contest['settings']; $settings['duration'] = atoi(FormPOSTValue('duration', 'ContestSettings')); $settings['timelimit'] = atoi(FormPOSTValue('timelimit', 'ContestSettings')); $settings['trycount'] = atoi(FormPOSTValue('trycount', 'ContestSettings')); $settings['autostart'] = $_POST['contest_autostart']; if ($settings['autostart']) { $date = new CDCDate(); $date->Init(); $date->ReceiveValue('contest_autostart_date'); $settings['autostart.date'] = $date->GetValue(); $time = new CDCDate(); $time->Init(); $time->ReceiveValue('contest_autostart_time'); $settings['autostart.time'] = $time->GetValue(); } $update = array('name' => db_html_string($name), 'settings' => db_string(serialize($settings))); db_update('tester_contests', $update, "`id`={$id}"); return true; }