public function execute(HTTPRequestCustom $request)
 {
     $id = $request->get_getint('id', 0);
     if (!empty($id)) {
         try {
             $this->weblink = WebService::get_weblink('WHERE web.id = :id', array('id' => $id));
         } catch (RowNotFoundException $e) {
             $error_controller = PHPBoostErrors::unexisting_page();
             DispatchManager::redirect($error_controller);
         }
     }
     if ($this->weblink !== null && !DownloadAuthorizationsService::check_authorizations($this->weblink->get_id_category())->read()) {
         $error_controller = PHPBoostErrors::user_not_authorized();
         DispatchManager::redirect($error_controller);
     } else {
         if ($this->weblink !== null && $this->weblink->is_visible()) {
             $this->weblink->set_number_views($this->weblink->get_number_views() + 1);
             WebService::update_number_views($this->weblink);
             WebCache::invalidate();
             AppContext::get_response()->redirect($this->weblink->get_url()->absolute());
         } else {
             $error_controller = PHPBoostErrors::unexisting_page();
             DispatchManager::redirect($error_controller);
         }
     }
 }
 public function execute(HTTPRequestCustom $request)
 {
     AppContext::get_session()->csrf_get_protect();
     $this->get_weblink($request);
     $this->check_authorizations();
     WebService::delete('WHERE id=:id', array('id' => $this->weblink->get_id()));
     WebService::get_keywords_manager()->delete_relations($this->weblink->get_id());
     PersistenceContext::get_querier()->delete(DB_TABLE_EVENTS, 'WHERE module=:module AND id_in_module=:id', array('module' => 'web', 'id' => $this->weblink->get_id()));
     CommentsService::delete_comments_topic_module('web', $this->weblink->get_id());
     NotationService::delete_notes_id_in_module('web', $this->weblink->get_id());
     Feed::clear_cache('web');
     WebCache::invalidate();
     AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : WebUrlBuilder::home(), StringVars::replace_vars(LangLoader::get_message('web.message.success.delete', 'common', 'web'), array('name' => $this->weblink->get_name())));
 }
Ejemplo n.º 3
0
 private function save()
 {
     $weblink = $this->get_weblink();
     $weblink->set_name($this->form->get_value('name'));
     $weblink->set_rewrited_name(Url::encode_rewrite($weblink->get_name()));
     $weblink->set_id_category($this->form->get_value('id_category')->get_raw_value());
     $weblink->set_url(new Url($this->form->get_value('url')));
     $weblink->set_contents($this->form->get_value('contents'));
     $weblink->set_short_contents($this->form->get_value('short_contents_enabled') ? $this->form->get_value('short_contents') : '');
     $weblink->set_partner($this->form->get_value('partner'));
     $weblink->set_partner_picture(new Url($this->form->get_value('partner_picture')));
     $weblink->set_privileged_partner($this->form->get_value('privileged_partner'));
     if ($this->is_contributor_member()) {
         if ($weblink->get_id() === null) {
             $weblink->set_creation_date(new Date());
         }
         $weblink->set_approbation_type(WebLink::NOT_APPROVAL);
         $weblink->clean_start_and_end_date();
     } else {
         $weblink->set_creation_date($this->form->get_value('creation_date'));
         $weblink->set_approbation_type($this->form->get_value('approbation_type')->get_raw_value());
         if ($weblink->get_approbation_type() == WebLink::APPROVAL_DATE) {
             $weblink->set_start_date($this->form->get_value('start_date'));
             if ($this->form->get_value('end_date_enable')) {
                 $weblink->set_end_date($this->form->get_value('end_date'));
             } else {
                 $weblink->clean_end_date();
             }
         } else {
             $weblink->clean_start_and_end_date();
         }
     }
     if ($weblink->get_id() === null) {
         $id = WebService::add($weblink);
     } else {
         $id = $weblink->get_id();
         WebService::update($weblink);
     }
     $this->contribution_actions($weblink, $id);
     WebService::get_keywords_manager()->put_relations($id, $this->form->get_value('keywords'));
     Feed::clear_cache('web');
     WebCache::invalidate();
 }
 private function save()
 {
     $this->config->set_items_number_per_page($this->form->get_value('items_number_per_page'));
     $this->config->set_categories_number_per_page($this->form->get_value('categories_number_per_page'));
     $this->config->set_columns_number_per_line($this->form->get_value('columns_number_per_line'));
     $this->config->set_category_display_type($this->form->get_value('category_display_type')->get_raw_value());
     if ($this->config->get_category_display_type() != WebConfig::DISPLAY_ALL_CONTENT) {
         if ($this->form->get_value('display_descriptions_to_guests')) {
             $this->config->display_descriptions_to_guests();
         } else {
             $this->config->hide_descriptions_to_guests();
         }
     }
     if ($this->form->get_value('comments_enabled')) {
         $this->config->enable_comments();
     } else {
         $this->config->disable_comments();
     }
     if ($this->form->get_value('notation_enabled')) {
         $this->config->enable_notation();
         $this->config->set_notation_scale($this->form->get_value('notation_scale'));
         if ($this->form->get_value('notation_scale') != $this->config->get_notation_scale()) {
             NotationService::update_notation_scale('web', $this->config->get_notation_scale(), $this->form->get_value('notation_scale'));
         }
     } else {
         $this->config->disable_notation();
     }
     $this->config->set_root_category_description($this->form->get_value('root_category_description'));
     $this->config->set_sort_type($this->form->get_value('sort_type')->get_raw_value());
     $this->config->set_sort_mode($this->form->get_value('sort_mode')->get_raw_value());
     $this->config->set_partners_number_in_menu($this->form->get_value('partners_number_in_menu'));
     $this->config->set_authorizations($this->form->get_value('authorizations')->build_auth_array());
     WebConfig::save();
     WebService::get_categories_manager()->regenerate_cache();
     WebCache::invalidate();
 }