public function getBlogPostsForAuthor()
{
$auth_bp = $this->blueprint('Author');
$blog_bp = $this->blueprint('Blog');
if (IDE_HACKS) {
$db = \Airship\get_database();
$auth_bp = new Author($db);
$blog_bp = new Blog($db);
}
if (empty($_POST['author'])) {
\Airship\json_response(['status' => 'ERROR', 'message' => \__('No author selected.')]);
}
$authorId = (int) ($_POST['author'] ?? 0);
if (!$this->isSuperUser()) {
$authors = $auth_bp->getAuthorIdsForUser($this->getActiveUserId());
if (!\in_array($authorId, $authors)) {
\Airship\json_response(['status' => 'ERROR', 'message' => \__('You do not have permission to access this author\'s posts.')]);
}
}
$existing = $_POST['existing'] ?? [];
if (!\is1DArray($existing)) {
\Airship\json_response(['status' => 'ERROR', 'message' => \__('One-dimensional array expected')]);
}
foreach ($existing as $i => $e) {
$existing[$i] = (int) $e;
}
$response = ['status' => 'OK'];
if (!empty($_POST['add'])) {
$newBlogPost = $blog_bp->getBlogPostById($_POST['add'] + 0);
if (!empty($newBlogPost)) {
if ($newBlogPost['author'] === $authorId) {
$existing[] = (int) ($_POST['add'] ?? 0);
$response['new_item'] = $this->getLensAsText('ajax/bridge_blog_series_item', ['item' => ['name' => $newBlogPost['title'], 'post' => $newBlogPost['postid'], 'data-id' => null]]);
}
}
}
$series = $blog_bp->listPostsForAuthor($authorId, $existing);
$response['options'] = $this->getLensAsText('ajax/bridge_blog_series_select_blogpost', ['items' => $series]);
\Airship\json_response($response);
}