Ejemplo n.º 1
0
 public function post_paintings_new()
 {
     $input = Input::all();
     if (!empty($input['hidden-tags'])) {
         $input['tags'] = explode(',', $input['hidden-tags']);
     }
     try {
         $validator = new Services\Dashboard\Paintings\Add\Validator($input, 'new');
         $validator->publish();
     } catch (ValidateException $errors) {
         return Redirect::to(URL::to_route('dashboard.paintings.new'))->with_input()->with_errors($errors->get());
     }
     $errors = new Laravel\Messages();
     $extension = File::extension($input['painting_image']['name']);
     $directory = path('public') . 'uploads/paintings/' . sha1($input['name']);
     $filename = "original.{$extension}";
     $upload_success = ImageUtils::upload('painting_image', $directory, $filename);
     $image_path = URL::base() . '/uploads/paintings/' . sha1($input['name']);
     if ($upload_success) {
         $painting = Painting::create(array('name' => $input['name'], 'dimensions' => $input['dimensions'], 'type' => $input['type'], 'painter' => $input['painter'], 'year' => $input['year'], 'comment' => array_get($input, 'comment', null), 'image_path' => $image_path));
         if ($painting) {
             if (!empty($input['tags'])) {
                 $painting->tag($input['tags']);
             }
             return Redirect::to(URL::to_route('dashboard.paintings'))->with('status_success', __('application.painting_added'));
         } else {
             $errors->add('errors', __('application.generic_error'));
             return Redirect::to(URL::to_route('dashboard.paintings.new'))->with_input()->with_errors($errors);
         }
     } else {
         $errors->add('errors', __('application.upload_error'));
         return Redirect::to(URL::to_route('dashboard.paintings.new'))->with_input()->with_errors($errors);
     }
 }