private function get_articles() { $this->check(); if ($this->subAPI == 1) { //Get articles list $howmany = isset($this->partial['num']) ? max(1, floor($this->partial['num'])) : 5; $startTime = isset($this->partial['since']) ? strtotime($this->partial['since']) : false; $pageNum = isset($this->partial['p']) ? max(1, floor($this->partial['p'])) : 1; $article = new bwArticle(); if ($startTime) { //Get articles later than this time $article->setSinceTime($startTime); } $article->alterPageNum($pageNum); $article->alterPerPage($howmany); $article->getArticleList(); $outputs = array(); $i = 0; $totalPages = ceil($article->totalArticles / $howmany); if ($pageNum > $totalPages) { $this->throwError(404, 'Page number does not exist.'); } $extraHeader = "Link: <" . bw::$conf['siteURL'] . "/api.php/articles?num={$howmany}&p=1>; rel=\"first\", "; $extraHeader .= "<" . bw::$conf['siteURL'] . "/api.php/articles?num={$howmany}&p={$totalPages}>; rel=\"last\""; if ($pageNum + 1 <= $totalPages) { $extraHeader .= ", <" . bw::$conf['siteURL'] . "/api.php/articles?num={$howmany}&p=" . ($pageNum + 1) . ">; rel=\"next\""; } if ($pageNum > 1) { $extraHeader .= ", <" . bw::$conf['siteURL'] . "/api.php/articles?num={$howmany}&p=" . ($pageNum - 1) . ">; rel=\"prev\""; } foreach ($article->articleList as $item) { $outputs[$i]['ID'] = $item['aID']; $outputs[$i]['title'] = $item['aTitle']; $outputs[$i]['date'] = $item['aTime']; $outputs[$i]['content'] = bwView::textFormatter(str_replace('+++', '', $item['aContent'])); $outputs[$i]['category'] = $item['aCateDispName']; $item['aTags'] && ($outputs[$i]['tags'] = @explode(',', $item['aTags'])); $outputs[$i]['permal-link'] = bw::$conf['siteURL'] . '/' . bw::$conf['linkPrefixArticle'] . "/{$item['aID']}/"; $outputs[$i]['author'] = bw::$conf['authorName']; $outputs[$i]['about'] = bw::$conf['authorIntro']; $outputs[$i]['homepage'] = bw::$conf['siteURL']; $i++; } $this->done(200, array("articles" => $outputs), $extraHeader); } else { $article = new bwArticle(); $article->fetchArticle($this->subAPI); $item = $article->articleList[$this->subAPI]; $outputs = array(); $i = 0; $outputs[$i]['title'] = $item['aTitle']; $outputs[$i]['date'] = $item['aTime']; $outputs[$i]['content'] = bwView::textFormatter(str_replace('+++', '', $item['aContent'])); $outputs[$i]['category'] = $item['aCateDispName']; $item['aTags'] && ($outputs[$i]['tags'] = @explode(',', $item['aTags'])); $outputs[$i]['permal-link'] = bw::$conf['siteURL'] . '/' . bw::$conf['linkPrefixArticle'] . "/{$item['aID']}/"; $outputs[$i]['author'] = bw::$conf['authorName']; $outputs[$i]['about'] = bw::$conf['authorIntro']; $outputs[$i]['homepage'] = bw::$conf['siteURL']; $this->done(200, array("articles" => $outputs)); } }