protected function insertPost($post) { static $post_model; if (!$post_model) { $post_model = new blogPostModel(); } if (empty($post['contact_id'])) { $post['contact_id'] = $this->settings['contact']; } $method = __METHOD__; $this->log(var_export(compact('method', 'post'), true)); $post['blog_id'] = $this->settings['blog']; $post['blog_status'] = $this->settings['blog_status']; $post['text'] = $this->userReplace($post['text']); $post_model->ping(); switch ($field = $this->settings['mode']) { case 'title': if ($p = $post_model->getByField(array($field => $post[$field], 'blog_id' => $post['blog_id']))) { $this->log("Post with timestamp [{$post['timestamp']}] skipped because there was a duplicate (id={$p['id']})", self::LOG_NOTICE); $this->log("Post raw data " . var_export($post, true), self::LOG_DEBUG); return false; } break; } if ($post['blog_status'] == blogBlogModel::STATUS_PUBLIC) { $post['url'] = $post_model->genUniqueUrl(empty($post['url']) ? $post['title'] : $post['url']); } elseif (!empty($post['url'])) { $post['url'] = $post_model->genUniqueUrl($post['url']); } else { $post['url'] = ''; } $post['id'] = $post_model->updateItem(null, $post); return $post; }