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(); }