public function execute() { $id = $this->post('id', true); if (!is_array($id)) { if (strpos($id, ',') !== false) { $id = array_map('intval', explode(',', $id)); } else { $id = array($id); } } $user_id = wa()->getUser()->getId(); $comment_model = new blogCommentModel(); $post_model = new blogPostModel(); $comments = $comment_model->getByField('id', $id, 'id'); $post_ids = array(); foreach ($comments as $comment) { $post_ids[] = $comment['post_id']; } $post_ids = array_unique($post_ids); $posts = $post_model->getByField('id', $post_ids, 'id'); $available = array(); foreach ($comments as $comment) { try { $rights = blogHelper::checkRights($comment['blog_id'], $user_id, blogRightConfig::RIGHT_READ_WRITE); } catch (Exception $e) { continue; } if ($rights == blogRightConfig::RIGHT_READ_WRITE && $user_id != $posts[$comment['post_id']]['contact_id']) { continue; } if ($comment['status'] == blogCommentModel::STATUS_DELETED) { continue; } $available[] = $comment['id']; } $comment_model->updateById($available, array('status' => blogCommentModel::STATUS_DELETED)); $this->response = true; }
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; }