예제 #1
0
파일: admin.mod.php 프로젝트: bo-blog/bw
         stopError($conf['l']['admin:msg:NoData']);
     }
     if (isset($_REQUEST['ispage'])) {
         $_REQUEST['smt']['aCateURLName'] = '_page';
     }
     if (isset($_REQUEST['autosave'])) {
         $_REQUEST['smt']['aCateURLName'] = '_trash';
     }
     $article->updateArticle($_REQUEST['smt']);
     ajaxSuccess(isset($_REQUEST['autosave']) ? $conf['l']['admin:msg:AutoSaved'] : $conf['l']['admin:msg:ChangeSaved']);
 } elseif ($canonical->currentArgs['subAction'] == 'modify') {
     $admin->checkCSRFCode('navibar');
     if (!isset($_REQUEST['aID'])) {
         stopError($conf['l']['admin:msg:NotExist']);
     }
     $article->fetchArticle($_REQUEST['aID'], true);
     $view->setMaster('admin');
     $view->setPassData($article->articleList[$_REQUEST['aID']]);
     $view->setPassData(array('writermode' => $article->articleList[$_REQUEST['aID']]['aCateURLName'] != '_page' ? 'article' : 'singlepage', 'admincatelist' => bw::$cateList, 'upCSRFCode' => $admin->getCSRFCode('upload'), 'articleCSRFCode' => $admin->getCSRFCode('articlesave'), 'cateCSRFCode' => $admin->getCSRFCode('category')));
     loadServices();
     if ($conf['qiniuBucket'] && $conf['qiniuUpload'] == '1') {
         require_once P . "inc/script/qiniu/QiniuClient.php";
         $qiniuClient = new qiniuClient(QINIU_AK, QINIU_SK);
         $fStoreName = 'storage/' . substr(md5(rand(1, 99999) . time()), 10, 8);
         $flags = array('scope' => $conf['qiniuBucket'] . ':' . $fStoreName, 'deadline' => 3600 + time(), 'returnUrl' => "{$conf['siteURL']}/{$conf['linkPrefixAdmin']}/articles/qiniuuploader/", 'returnBody' => json_encode(array('fname' => '$(key)')));
         $qiniuFileToken = $qiniuClient->uploadToken($flags);
         $view->setPassData(array('qiniuFileToken' => $qiniuFileToken, 'qiniuKey' => $fStoreName));
         $uploader = 'adminqiniuupload';
     } elseif ($conf['qiniuUpload'] == '2') {
         $uploader = 'adminaliyunupload';
         $policy = '{"expiration": "2120-01-01T12:00:00.000Z","conditions":[{"bucket": "' . bw::$conf['aliyunBucket'] . '" },["content-length-range", 0, 104857600]]}';
예제 #2
0
파일: api.inc.php 프로젝트: bo-blog/bw
 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));
     }
 }
예제 #3
0
파일: article.mod.php 프로젝트: bo-blog/bw
<?php

/**
* 
* @link http://bw.bo-blog.com
* @copyright (c) 2014 bW Development Team
* @license MIT
*/
if (!defined('P')) {
    die('Access Denied.');
}
$article = new bwArticle();
$article->fetchArticle($canonical->currentArgs['aID']);
$view = new bwView();
$view->setPageTitle($article->articleList[$canonical->currentArgs['aID']]['aTitle']);
$view->setMetaData($article->articleList[$canonical->currentArgs['aID']]['aTags']);
$aCateURLName = $article->articleList[$canonical->currentArgs['aID']]['aCateURLName'];
$view->setActiveNav($aCateURLName);
if (bw::$cateList[$aCateURLName]['aCateTheme']) {
    $view->setTheme(bw::$cateList[$aCateURLName]['aCateTheme']);
}
$view->setPassData($article->articleList[$canonical->currentArgs['aID']]);
$view->setPassData(array('navigation' => bw::$cateList, 'sociallink' => bw::getSocialLinks(), 'externallink' => bw::getExternalLinks(), 'tagClound' => bw::getTagCloud()));
$view->setMaster('page');
if ($conf['commentOpt'] != 0) {
    loadServices();
    if ($conf['commentOpt'] == 1 || $conf['commentOpt'] == 2) {
        //Build-in comment
        //Discarded on 2016/6/22
        $view->setWorkFlow(array('nocommentarea', 'article', 'page'));
        /*