Exemple #1
0
 /**
  * action: EDIT
  */
 public function action_create()
 {
     $type = $this->request->query('type');
     $site = $type == 'page' ? __('Page') : __('Email');
     Breadcrumbs::add(Breadcrumb::factory()->set_title(__('Create') . ' ' . $site));
     $content = new Model_Content();
     $languages = i18n::get_languages();
     $this->template->content = View::factory('oc-panel/pages/content/create', array('locale' => $languages, 'type' => $type));
     if ($p = $this->request->post()) {
         foreach ($p as $name => $value) {
             if ($name != 'submit') {
                 $content->{$name} = $value;
             }
         }
         // if status is not checked, it is not set as POST response
         $content->status = isset($p['status']) ? 1 : 0;
         $content->seotitle = $content->gen_seotitle($this->request->post('title'));
         try {
             $content->save();
             Cache::instance()->delete_all();
             Alert::set(Alert::SUCCESS, $this->request->post('type') . ' ' . __('is created'));
             Request::current()->redirect(Route::url('oc-panel', array('controller' => 'content', 'action' => 'list')) . '?type=' . $p['type'] . '&locale_select=' . $p['locale']);
         } catch (Exception $e) {
             Alert::set(Alert::ERROR, $e->getMessage());
             Request::current()->redirect(Route::url('oc-panel', array('controller' => 'content', 'action' => 'list')) . '?type=' . $p['type'] . '&locale_select=' . $p['locale']);
         }
     }
 }
 /**
  * action: EDIT
  */
 public function action_create()
 {
     $type = core::get('type');
     $site = self::translate_type($type);
     Breadcrumbs::add(Breadcrumb::factory()->set_title($site)->set_url(Route::url('oc-panel', array('controller' => 'content', 'action' => $type))));
     Breadcrumbs::add(Breadcrumb::factory()->set_title(__('Create') . ' ' . $site));
     $content = new Model_Content();
     $languages = i18n::get_languages();
     $this->template->content = View::factory('oc-panel/pages/content/create', array('locale' => $languages, 'type' => $type));
     if ($p = $this->request->post()) {
         foreach ($p as $name => $value) {
             //for description we accept the HTML as comes...a bit risky but only admin can
             if ($name == 'description') {
                 $content->description = Kohana::$_POST_ORIG['description'];
             } elseif ($name != 'submit') {
                 $content->{$name} = $value;
             }
         }
         // if status is not checked, it is not set as POST response
         $content->status = isset($p['status']) ? 1 : 0;
         if (!isset($p['seotitle'])) {
             $content->seotitle = $content->gen_seotitle($this->request->post('title'));
         } else {
             $content->seotitle = $p['seotitle'];
         }
         try {
             $content->save();
             Alert::set(Alert::SUCCESS, $this->request->post('type') . ' ' . __('is created') . '. ' . __('Please to see the changes delete the cache') . '<br><a class="btn btn-primary btn-mini" href="' . Route::url('oc-panel', array('controller' => 'tools', 'action' => 'cache')) . '?force=1">' . __('Delete All') . '</a>');
         } catch (Exception $e) {
             Alert::set(Alert::ERROR, $e->getMessage());
         }
         HTTP::redirect(Route::url('oc-panel', array('controller' => 'content', 'action' => $p['type'])) . '?locale_select=' . $p['locale']);
     }
 }