/** * 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); } }