Esempio n. 1
0
 public function action_edit($id)
 {
     $partner = Model_Partner::find($id);
     /* @var $partner Model_Partner */
     if (!$partner) {
         Response::redirect('/admin/404');
     }
     $validationErrors = array();
     $view = $this->setDefaultValiesToView('admin/partners/partners/edit.html.twig');
     if (Input::post()) {
         if (Input::post('delete')) {
             $url = 'admin/partners';
             $this->performItemDeletion($partner, $url);
         }
         if (Input::post('update')) {
             try {
                 $validationErrors = $this->validateItem();
                 if ($validationErrors) {
                     throw new Exception('Form validation failed');
                 }
                 // Updates item
                 $this->assignValuesFromPost($partner);
                 // Adds terms and conditions
                 foreach (self::$languages as $language) {
                     // In case translation for current language is missing, copies EN translation by default
                     if (Input::post('terms_' . $language)) {
                         $partner->setTerms(Input::post('terms_' . $language), $language);
                     } else {
                         $partner->setTerms(Input::post('terms_en'), $language);
                     }
                 }
                 $partner->save();
                 // Reloads page
                 $session = Session::instance();
                 $session->set($this->updatedKey, true);
                 Response::redirect('admin/partners/edit/' . $partner->get('id'));
             } catch (Exception $e) {
                 Log::debug($e->getMessage());
                 $view->set('post', Input::post());
             }
         }
     }
     $view->set('pageTitle', 'Edit Partner');
     $view->set('partner', $partner);
     $view->set('countries', Model_Country::findAll(null, 'en'));
     $view->set('country', Model_Country::find($partner->get('country')));
     $view->set('currencies', Model_Currency::find('all'));
     $view->set('validationErrors', $validationErrors);
     return $view;
 }