} elseif ($_REQUEST['list'] == 'archives') { $listMode = 'archives'; } elseif ($_REQUEST['list'] == 'tags') { $listMode = 'tags'; } elseif ($_REQUEST['list'] == 'category') { $listMode = 'category'; } else { exit; } $article = new bwArticle(); $view = new bwView(); $article->alterPerPage(50000); $view->setActiveNav($listMode); $groupedArticles = array(); if ($listMode == 'archives') { $article->getArticleList(); $allStatURL = array(); foreach ($article->articleList as $oneArticle) { $YYYY = substr($oneArticle['aTime'], 0, 4); $groupedArticles[$YYYY][] = $oneArticle; $columnName[$YYYY] = $YYYY; $columnID[$YYYY] = $YYYY; isset($columnCount[$YYYY]) ? $columnCount[$YYYY]++ : ($columnCount[$YYYY] = 1); $allStatURL[$oneArticle['aID']] = "{$conf['siteURL']}/{$conf['linkPrefixArticle']}/{$oneArticle['aID']}/"; } file_put_contents(P . 'conf/allAIDs.php', "<?php\r\n\$lf=" . var_export($allStatURL, true) . ";"); krsort($groupedArticles); } if ($listMode == 'tags') { $allTags = bw::$db->getRows('SELECT tValue, tCount FROM tags ORDER BY tCount DESC'); foreach ($allTags as $aTag) {
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)); } }