示例#1
0
 /**
  * Delete advertisement: Delete
  * @todo move to model ad
  */
 public function action_delete()
 {
     $id = $this->request->param('id');
     $format_id = explode('_', $id);
     $auth_user = Auth::instance();
     $nb_Ads_Deleted = 0;
     foreach ($format_id as $id) {
         if (isset($id) and $id !== '') {
             $ad = new Model_Ad($id);
             if ($ad->loaded()) {
                 try {
                     $ad->delete();
                     $nb_Ads_Deleted++;
                 } catch (Exception $e) {
                     Alert::set(Alert::ERROR, sprintf(__('Warning, something went wrong while deleting Ad with id %u'), $id) . ':<br>' . $e->getMessage());
                     //throw HTTP_Exception::factory(500,$e->getMessage());
                 }
             }
         }
     }
     $level_Alert = $nb_Ads_Deleted > 0 ? Alert::SUCCESS : Alert::INFO;
     if ($nb_Ads_Deleted == 1) {
         $nb_Ads_Deleted = __('Advertisement has been permanently deleted');
     } elseif ($nb_Ads_Deleted >= 2) {
         $nb_Ads_Deleted = sprintf(__('%u advertisements have been permanently deleted'), $nb_Ads_Deleted);
     } else {
         $nb_Ads_Deleted = __('None (0) advertisement has been deleted');
     }
     Alert::set($level_Alert, $nb_Ads_Deleted);
     $param_current_url = Core::get('current_url');
     if ($param_current_url == Model_Ad::STATUS_NOPUBLISHED and in_array(core::config('general.moderation'), Model_Ad::$moderation_status)) {
         HTTP::redirect(Route::url('oc-panel', array('controller' => 'ad', 'action' => 'moderate')));
     } elseif ($param_current_url == Model_Ad::STATUS_PUBLISHED) {
         HTTP::redirect(Route::url('oc-panel', array('controller' => 'ad', 'action' => 'index')));
     } else {
         HTTP::redirect(Route::url('oc-panel', array('controller' => 'ad', 'action' => 'index')) . '?status=' . $param_current_url);
     }
 }