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