/** * Действие для создания команды */ public function action_create() { if (\Input::method() == 'POST') { $val = \Model_Team::validate('create'); if ($val->run()) { // Валидация для фото $config = array('path' => DOCROOT . 'assets/img/teams', 'randomize' => true, 'ext_whitelist' => array('img', 'jpg', 'jpeg', 'gif', 'png')); \Upload::process($config); if (\Upload::is_valid() or \Upload::get_errors()[0]['errors'][0]['error'] == 4) { $team = \Model_Team::forge(array('value' => \Input::post('value'))); if (!\Upload::get_errors()) { // Сохраняем файл на диск \Upload::save(); // Меняем размер изображения на 50px * 50px $files = \Upload::get_files(); $path = $files[0]['saved_to'] . $files[0]['saved_as']; \Image::load($path)->resize(50, 50, true)->save($path); $team->logo_uri = $files[0]['saved_as']; } if ($team and $team->save()) { \Session::set_flash('success', 'Команда добавлена.'); \Response::redirect_back('admin/competitions/teams'); } else { \Session::set_flash('error', 'Could not save Team.'); } } } else { \Session::set_flash('error', $val->error()); } // Если есть ошибки при сохранении файла foreach (\Upload::get_errors() as $file) { if (isset($file['errors'][0]) and $file['errors'][0]['error'] != 4) { \Session::set_flash('error', $file['errors'][0]['message']); } } } $this->template->content = \View::forge('competitions/teams/create'); }
public function action_create() { \View::set_global('title', 'Add New'); if (\Input::post()) { $val = Model_Team::validate('create'); // Upload image and display errors if there are any $image = $this->upload_image(); if (!$image['exists'] && \Config::get('details.image.required', false) && empty($item->image)) { // No previous images and image is not selected and it is required \Messages::error('<strong>There was an error while trying to upload member image</strong>'); \Messages::error('You have to select image'); } elseif ($image['errors']) { \Messages::error('<strong>There was an error while trying to upload member image</strong>'); foreach ($image['errors'] as $error) { \Messages::error($error); } } if ($val->run() && $image['is_valid'] && !(!$image['exists'] && \Config::get('details.image.required', false))) { // Get POST values $insert = \Input::post(); // Prepare some values $insert['published_at'] = !empty($insert['published_at']) ? strtotime($insert['published_at']) : \Date::forge()->get_timestamp(); $insert['active_from'] = !empty($insert['active_from']) ? strtotime($insert['active_from']) : NULL; $insert['active_to'] = !empty($insert['active_to']) ? strtotime($insert['active_to']) : NULL; if ($insert['status'] != 2) { unset($insert['active_from']); unset($insert['active_to']); } $item = Model_Team::forge($insert); try { $item->save(); // Validate and insert team slug into SEO database table $val_seo = Model_Seo::validate('create_seo'); $insert_seo = array('content_id' => $item->id, 'slug' => \Inflector::friendly_title($item->name, '-', true)); while (!$val_seo->run($insert_seo)) { $insert_seo['slug'] = \Str::increment($insert_seo['slug'], 1, '-'); } $item_seo = Model_Seo::forge($insert_seo); $item_seo->save(); // END OF: SEO // Insert team images if ($this->_image_data) { $item_image = array(array('id' => 0, 'data' => array('content_id' => $item->id, 'image' => $this->_image_data[0]['saved_as'], 'alt_text' => \Input::post('alt_text', ''), 'cover' => 1, 'sort' => 1))); Model_Team::bind_images($item_image); } \Messages::success('Member successfully created.'); \Response::redirect(\Input::post('update', false) ? \Uri::create('admin/team/update/' . $item->id) : \Uri::admin('current')); } catch (\Database_Exception $e) { // show validation errors \Messages::error('<strong>There was an error while trying to create member</strong>'); // Uncomment lines below to show database errors $errors = $e->getMessage(); \Messages::error($errors); } } else { if ($val->error() != array()) { // show validation errors \Messages::error('<strong>There was an error while trying to create member</strong>'); foreach ($val->error() as $e) { \Messages::error($e->get_message()); } } } // Delete uploaded image if there is team saving error if (isset($this->_image_data)) { $this->delete_image($this->_image_data[0]['saved_as']); } } \Theme::instance()->set_partial('content', $this->view_dir . 'create'); }