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