public function recentFullPosts(int $num = 20, int $offset = 0) : array
{
$posts = $this->db->run('SELECT
*
FROM
view_hull_blog_post
WHERE
status
AND published <= current_timestamp
ORDER BY published DESC
OFFSET ' . $offset . '
LIMIT ' . $num);
if (empty($posts)) {
return [];
}
foreach ($posts as $i => $post) {
$posts[$i] = $this->postProcess($post);
}
return $posts;
}
/** * The homepage for an Airship. * * @route / */ public function index() { $this->blog = $this->blueprint('Blog'); if (!\file_exists(ROOT . '/public/robots.txt')) { // Default robots.txt \file_put_contents(ROOT . '/public/robots.txt', "User-agent: *\nAllow: /"); } $blogRoll = $this->blog->recentFullPosts((int) ($this->config('homepage.blog-posts') ?? 5)); $mathJAX = false; foreach ($blogRoll as $i => $blog) { $blogRoll[$i] = $this->blog->getSnippet($blog); if (Binary::safeStrlen($blogRoll[$i]['snippet']) !== Binary::safeStrlen($blog['body'])) { $blogRoll[$i]['snippet'] = \rtrim($blogRoll[$i]['snippet'], "\n"); } $mathJAX |= \strpos($blog['body'], '$$') !== false; } $args = ['blogposts' => $blogRoll]; $this->config('blog.cachelists') ? $this->stasis('index', $args) : $this->lens('index', $args); }