示例#1
0
 /**
  * save post changes
  * @return array
  */
 public function postPostsave()
 {
     User::onlyHas('feedpost-edit');
     $id = Input::get('id');
     $response = array();
     // update Post record
     $general = Input::get('post');
     if ($general && $id) {
         $response['Post'] = 1;
         $post = Post::findTax($id, $this->taxonomy->id);
         $post->created_at = $general['created_at'];
         $post->to_home = isset($general['to_home']) ? 1 : 0;
         $post->show_pcomment = isset($general['show_pcomment']) ? 1 : 0;
         $post->have_comments = isset($general['have_comments']) ? 1 : 0;
         $post->have_socials = isset($general['have_socials']) ? 1 : 0;
         $post->is_alert = isset($general['is_alert']) ? 1 : 0;
         $post->alert_expire = $general['alert_expire'];
         if ($post->is_alert) {
             Post::where('is_alert', 1)->update(['is_alert' => 1]);
         }
         $post->save();
         Log::info("Edit Post (article) #{$id}");
     }
     // update FeedPost records
     $feedposts = Input::get('feed_post');
     if ($feedposts && is_array($feedposts) && $id) {
         $response['FeedPost'] = 1;
         FeedPost::where('post_id', $id)->delete();
         foreach ($feedposts as $feedpost) {
             if ($feedpost) {
                 $fpost = new FeedPost();
                 $fpost->post_id = $id;
                 $fpost->feed_id = $feedpost;
                 $fpost->save();
             }
         }
     }
     // update dinamic post fields
     $dinamic_post_fields = Input::get('dinamic_post');
     FeedFieldValue::where('post_id', $id)->where('lang_id', 0)->delete();
     if ($dinamic_post_fields) {
         foreach ($dinamic_post_fields as $field_id => $field_value) {
             $field = FeedField::find($field_id);
             $fieldValue = new FeedFieldValue();
             $fieldValue->feed_field_id = $field_id;
             $fieldValue->post_id = $id;
             if ($field->check_filter && method_exists('DinamicFields', $field->check_filter)) {
                 $fieldValue->value = call_user_func(array('DinamicFields', $field->check_filter), $field_value);
             } else {
                 $fieldValue->value = $field_value;
             }
             $fieldValue->save();
         }
     }
     return $response;
 }