public function execute(HTTPRequestCustom $request) { AppContext::get_session()->csrf_get_protect(); $news = $this->get_news($request); if (!$news->is_authorized_to_delete()) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); } if (AppContext::get_current_user()->is_readonly()) { $controller = PHPBoostErrors::user_in_read_only(); DispatchManager::redirect($controller); } NewsService::delete('WHERE id=:id', array('id' => $news->get_id())); NewsService::get_keywords_manager()->delete_relations($news->get_id()); PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module=:module AND id_in_module=:id', array('module' => 'news', 'id' => $news->get_id())); CommentsService::delete_comments_topic_module('news', $news->get_id()); Feed::clear_cache('news'); AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : NewsUrlBuilder::home(), StringVars::replace_vars(LangLoader::get_message('news.message.success.delete', 'common', 'news'), array('name' => $news->get_name()))); }
public function uninstall() { $this->drop_tables(); ConfigManager::delete('news', 'config'); NewsService::get_keywords_manager()->delete_module_relations(); }
private function get_keyword() { if ($this->keyword === null) { $rewrited_name = AppContext::get_request()->get_getstring('tag', ''); if (!empty($rewrited_name)) { try { $this->keyword = NewsService::get_keywords_manager()->get_keyword('WHERE rewrited_name=:rewrited_name', array('rewrited_name' => $rewrited_name)); } catch (RowNotFoundException $e) { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } else { $error_controller = PHPBoostErrors::unexisting_page(); DispatchManager::redirect($error_controller); } } return $this->keyword; }
private function save() { $news = $this->get_news(); $news->set_name($this->form->get_value('name')); $news->set_id_cat($this->form->get_value('id_cat')->get_raw_value()); $news->set_contents($this->form->get_value('contents')); $news->set_short_contents($this->form->get_value('enable_short_contents') ? $this->form->get_value('short_contents') : ''); $news->set_picture(new Url($this->form->get_value('picture'))); $news->set_sources($this->form->get_value('sources')); if ($this->is_contributor_member()) { if ($news->get_id() === null) { $news->set_creation_date(new Date()); } $news->set_rewrited_name(Url::encode_rewrite($news->get_name())); $news->set_approbation_type(News::NOT_APPROVAL); $news->clean_start_and_end_date(); } else { $news->set_creation_date($this->form->get_value('creation_date')); $rewrited_name = $this->form->get_value('rewrited_name', ''); $rewrited_name = $this->form->get_value('personalize_rewrited_name') && !empty($rewrited_name) ? $rewrited_name : Url::encode_rewrite($news->get_name()); $news->set_rewrited_name($rewrited_name); $news->set_top_list_enabled($this->form->get_value('top_list')); $news->set_approbation_type($this->form->get_value('approbation_type')->get_raw_value()); if ($news->get_approbation_type() == News::APPROVAL_DATE) { $news->set_start_date($this->form->get_value('start_date')); if ($this->form->get_value('end_date_enable')) { $news->set_end_date($this->form->get_value('end_date')); } else { $news->clean_end_date(); } } else { $news->clean_start_and_end_date(); } } if ($news->get_id() === null) { $news->set_author_user(AppContext::get_current_user()); $id_news = NewsService::add($news); } else { $id_news = $news->get_id(); NewsService::update($news); } $this->contribution_actions($news, $id_news); NewsService::get_keywords_manager()->put_relations($id_news, $this->form->get_value('keywords')); Feed::clear_cache('news'); }
public function get_keywords() { if ($this->keywords === null) { $this->keywords = NewsService::get_keywords_manager()->get_keywords($this->id); } return $this->keywords; }