/** * Редактирование данных команды в таблице * * @param int $table_id id таблицы * @param int $team_id id команды */ public function action_edit_result($table_id = null, $team_id = null) { (is_null($table_id) or is_null($team_id)) and \Response::redirect_back('admin/competitions/tables'); // Проверяем существует ли такая таблица if (!($table = \Model_Table::find($table_id))) { \Session::set_flash('error', 'Таблица не найдена.'); \Response::redirect_back('admin/competitions/tables'); } // Проверяем существует ли такая команда в ней $results = json_decode($table->results_json); foreach ($results as $key => $item) { if ($item->id == $team_id) { $key_num = $key; break; } } if (!isset($key_num)) { \Session::set_flash('error', 'Запись в таблице не найдена.'); \Response::redirect_back('admin/competitions/tables/edit/' . $table_id); } $val = \Model_Table::validate_result_item('edit'); if ($val->run()) { $results[$key_num]->games = \Input::post('games'); $results[$key_num]->wins = \Input::post('wins'); $results[$key_num]->draws = \Input::post('draws'); $results[$key_num]->loss = \Input::post('loss'); $results[$key_num]->goals_out = \Input::post('goals_out'); $results[$key_num]->goals_in = \Input::post('goals_in'); $results[$key_num]->points = \Input::post('points'); $table->results_json = json_encode($results); if ($table->save()) { \Session::set_flash('success', 'Запись обновлена.'); \Response::redirect_back('admin/competitions/tables/edit/' . $table_id); } else { \Session::set_flash('error', 'Could not update item id=' . $team_id); } } else { if (\Input::method() == 'POST') { \Session::set_flash('error', $val->error()); } // Передаём данные в вид $this->template->set_global('data', $results[$key_num], false); $this->template->set_global('table_id', $table_id, false); } $this->template->content = \View::forge('competitions/tables/edit_result'); }