Example #1
0
 public function action_new($countrySlug = null)
 {
     $country = null;
     /* @var $country Model_Country */
     if ($countrySlug) {
         $country = Model_Country::getBySlug($countrySlug);
         if (!$country instanceof Model_Country) {
             Response::redirect('/admin/404');
         }
     }
     $session = Session::instance();
     $validationErrors = array();
     $view = $this->setDefaultValiesToView('admin/partners/partners/new.html.twig');
     if (Input::post('action')) {
         try {
             /* Validates form */
             $validationErrors = $this->validateItem();
             if ($validationErrors) {
                 throw new Exception('Form validation failed');
             }
             // Creates partner model, adds values and saves
             $partner = Model_Partner::forge();
             $this->assignValuesFromPost($partner);
             $partner->save();
             // Adds terms and conditions
             foreach (self::$languages as $language) {
                 $terms = Model_Translation_PartnerTerm::forge();
                 $terms->set('parent', $partner->get('id'));
                 $terms->set('locale', $language);
                 // In case translation for current language is missing, copies EN translation by default
                 if (Input::post('terms_' . $language)) {
                     $terms->set('translation', Input::post('terms_' . $language));
                 } else {
                     $terms->set('translation', Input::post('terms_en'));
                 }
                 $terms->save();
             }
             // Redirects to edit partner page
             $session->set($this->createdKey, true);
             Response::redirect('admin/partners/edit/' . $partner->get('id'));
         } catch (Exception $e) {
             Log::error($e->getMessage());
             $view->set('post', Input::post());
         }
     }
     $view->set('pageTitle', 'Create New Partner');
     $view->set('countries', Model_Country::findAll(null, 'en'));
     $view->set('country', $country);
     $view->set('currencies', Model_Currency::find('all'));
     $view->set('validationErrors', $validationErrors);
     return $view;
 }