Frontend\Modules\Blog\Engine\Model::getAll PHP Method

getAll() public static method

Get all items (at least a chunk)
public static getAll ( integer $limit = 10, integer $offset ) : array
$limit integer The number of items to get.
$offset integer The offset.
return array
    public static function getAll($limit = 10, $offset = 0)
    {
        $items = (array) FrontendModel::getContainer()->get('database')->getRecords('SELECT i.id, i.revision_id, i.language, i.title, i.introduction, i.text, i.num_comments AS comments_count,
             c.title AS category_title, m2.url AS category_url, i.image,
             UNIX_TIMESTAMP(i.publish_on) AS publish_on, i.user_id, i.allow_comments,
             m.url
             FROM blog_posts AS i
             INNER JOIN blog_categories AS c ON i.category_id = c.id
             INNER JOIN meta AS m ON i.meta_id = m.id
             INNER JOIN meta AS m2 ON c.meta_id = m2.id
             WHERE i.status = ? AND i.language = ? AND i.hidden = ? AND i.publish_on <= ?
             ORDER BY i.publish_on DESC, i.id DESC
             LIMIT ?, ?', array('active', LANGUAGE, 'N', FrontendModel::getUTCDate('Y-m-d H:i'), (int) $offset, (int) $limit), 'id');
        // no results?
        if (empty($items)) {
            return array();
        }
        // init var
        $link = FrontendNavigation::getURLForBlock('Blog', 'Detail');
        $categoryLink = FrontendNavigation::getURLForBlock('Blog', 'Category');
        $folders = FrontendModel::getThumbnailFolders(FRONTEND_FILES_PATH . '/Blog/Images', true);
        // loop
        foreach ($items as $key => $row) {
            // URLs
            $items[$key]['full_url'] = $link . '/' . $row['url'];
            $items[$key]['category_full_url'] = $categoryLink . '/' . $row['category_url'];
            // comments
            if ($row['comments_count'] > 0) {
                $items[$key]['comments'] = true;
            }
            if ($row['comments_count'] > 1) {
                $items[$key]['comments_multiple'] = true;
            }
            // allow comments as boolean
            $items[$key]['allow_comments'] = $row['allow_comments'] == 'Y';
            // reset allow comments
            if (!FrontendModel::get('fork.settings')->get('Blog', 'allow_comments')) {
                $items[$key]['allow_comments'] = false;
            }
            // image?
            if (isset($row['image'])) {
                foreach ($folders as $folder) {
                    $items[$key]['image_' . $folder['dirname']] = $folder['url'] . '/' . $folder['dirname'] . '/' . $row['image'];
                }
            }
        }
        // get all tags
        $tags = FrontendTagsModel::getForMultipleItems('Blog', array_keys($items));
        // loop tags and add to correct item
        foreach ($tags as $postId => $data) {
            if (isset($items[$postId])) {
                $items[$postId]['tags'] = $data;
            }
        }
        // return
        return $items;
    }

Usage Example

Example #1
0
 /**
  * Parse
  */
 private function parse()
 {
     // get RSS-link
     $rssTitle = $this->get('fork.settings')->get('Blog', 'rss_title_' . FRONTEND_LANGUAGE);
     $rssLink = FrontendNavigation::getURLForBlock('Blog', 'Rss');
     // add RSS-feed into the metaCustom
     $this->header->addRssLink($rssTitle, $rssLink);
     // assign comments
     $this->tpl->assign('widgetBlogRecentArticlesList', FrontendBlogModel::getAll($this->get('fork.settings')->get('Blog', 'recent_articles_list_num_items', 5)));
     $this->tpl->assign('widgetBlogRecentArticlesFullRssLink', $rssLink);
 }
All Usage Examples Of Frontend\Modules\Blog\Engine\Model::getAll