示例#1
0
 /**
  * Редактирование данных команды в таблице 
  * 
  * @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');
 }