/**
  * Prepare for saving posted post and return it
  *
  * @return array prepared post
  *
  */
 private function getPreparedPost()
 {
     $post = array('id' => waRequest::post('post_id', null, waRequest::TYPE_INT), 'title' => substr(waRequest::post('title', '', waRequest::TYPE_STRING_TRIM), 0, 255), 'text' => waRequest::post('text'), 'blog_id' => waRequest::post('blog_id'), 'contact_id' => waRequest::post('contact_id'), 'datetime' => waRequest::post('datetime'), 'url' => waRequest::post('url', '', waRequest::TYPE_STRING_TRIM), 'draft' => waRequest::post('draft'), 'comments_allowed' => max(0, min(1, waRequest::post('comments_allowed', 0, waRequest::TYPE_INT))), 'public' => waRequest::post('public'), 'schedule_datetime' => waRequest::post('schedule_datetime'));
     $this->inline = waRequest::post('inline', false);
     if (waRequest::post('scheduled') && !empty($post['schedule_datetime'])) {
         $post['datetime'] = $post['schedule_datetime'];
     }
     if (!is_null($post['datetime'])) {
         $post['datetime'] = (array) $post['datetime'];
         if (count($post['datetime']) == 3) {
             $post['datetime'][1] = (int) $post['datetime'][1];
             $post['datetime'][2] = (int) $post['datetime'][2];
             $date_time = $post['datetime'][0] . ' ' . $post['datetime'][1] . ':' . $post['datetime'][2];
         } else {
             $date_time = implode(' ', $post['datetime']);
         }
         $post['datetime'] = $date_time;
     }
     if (waRequest::post('draft')) {
         $post['status'] = blogPostModel::STATUS_DRAFT;
         $this->operation = self::OPERATION_SAVE_DRAFT;
     } else {
         if (waRequest::post('deadline')) {
             if ($post['datetime']) {
                 $post['status'] = blogPostModel::STATUS_DEADLINE;
                 $this->operation = self::OPERATION_SET_DEADLINE;
             } else {
                 $post['status'] = blogPostModel::STATUS_DRAFT;
                 $this->operation = self::OPERATION_SAVE_DRAFT;
             }
         } else {
             if (waRequest::post('scheduled')) {
                 $post['status'] = blogPostModel::STATUS_SCHEDULED;
             } else {
                 if (waRequest::post('published')) {
                     $post['status'] = blogPostModel::STATUS_PUBLISHED;
                     $this->operation = self::OPERATION_PUBLISH;
                 } else {
                     if (waRequest::post('unpublish')) {
                         $post['status'] = blogPostModel::STATUS_DRAFT;
                         $this->operation = self::OPERATION_UNPUBLISH;
                     } else {
                         if ($post['id'] && waRequest::issetPost('delete')) {
                             $this->operation = self::OPERATION_DELETE;
                         } else {
                             if (waRequest::issetPost("schedule_cancel")) {
                                 $this->operation = self::OPERATION_CANCEL_SCHEDULE;
                             }
                         }
                     }
                 }
             }
         }
     }
     if (!isset($post['status'])) {
         if ($post['id']) {
             $post['status'] = $this->post_model->select('status')->where('id = i:id', array('id' => $post['id']))->fetchField('status');
         } else {
             $post['status'] = blogPostModel::STATUS_DRAFT;
         }
     }
     $blog_model = new blogBlogModel();
     $blog = $blog_model->getById($post['blog_id']);
     $post['blog_status'] = $blog['status'];
     $post['plugin'] = (array) waRequest::post('plugin', null);
     foreach ($post['plugin'] as $k => &$plugin_data) {
         if (!is_array($plugin_data)) {
             $plugin_data = trim($plugin_data);
         }
     }
     return $post;
 }