diff --git a/app/Caches/ModerationStat.php b/app/Caches/ModerationStat.php index 518b76f3..db625365 100644 --- a/app/Caches/ModerationStat.php +++ b/app/Caches/ModerationStat.php @@ -24,10 +24,14 @@ class ModerationStat extends Cache $statRepo = new StatRepo(); $articleCount = $statRepo->countPendingArticles(); + $questionCount = $statRepo->countPendingQuestions(); + $answerCount = $statRepo->countPendingAnswers(); $commentCount = $statRepo->countPendingComments(); return [ 'article_count' => $articleCount, + 'question_count' => $questionCount, + 'answer_count' => $answerCount, 'comment_count' => $commentCount, ]; } diff --git a/app/Http/Admin/Services/Article.php b/app/Http/Admin/Services/Article.php index 3ccb3aef..c8b96086 100644 --- a/app/Http/Admin/Services/Article.php +++ b/app/Http/Admin/Services/Article.php @@ -127,14 +127,12 @@ class Article extends Service $validator = new ArticleValidator(); - $category = $validator->checkCategory($post['category_id']); $title = $validator->checkTitle($post['title']); $article = new ArticleModel(); $article->published = ArticleModel::PUBLISH_APPROVED; $article->owner_id = $user->id; - $article->category_id = $category->id; $article->title = $title; $article->create(); diff --git a/app/Http/Admin/Services/Index.php b/app/Http/Admin/Services/Index.php index bb529fb8..4749042a 100644 --- a/app/Http/Admin/Services/Index.php +++ b/app/Http/Admin/Services/Index.php @@ -2,11 +2,11 @@ namespace App\Http\Admin\Services; -use App\Caches\ModerationStat; use App\Caches\SiteGlobalStat; use App\Caches\SiteTodayStat; use App\Library\AppInfo; use App\Library\Utils\ServerInfo; +use App\Repos\Stat as StatRepo; use GuzzleHttp\Client; class Index extends Service @@ -56,9 +56,19 @@ class Index extends Service public function getModerationStat() { - $cache = new ModerationStat(); + $statRepo = new StatRepo(); - return $cache->get(); + $articleCount = $statRepo->countPendingArticles(); + $questionCount = $statRepo->countPendingQuestions(); + $answerCount = $statRepo->countPendingAnswers(); + $commentCount = $statRepo->countPendingComments(); + + return [ + 'article_count' => $articleCount, + 'question_count' => $questionCount, + 'answer_count' => $answerCount, + 'comment_count' => $commentCount, + ]; } public function getReleases() diff --git a/app/Http/Admin/Views/index/main_mod_stat.volt b/app/Http/Admin/Views/index/main_mod_stat.volt index 60c96ce2..f9c5a1ba 100644 --- a/app/Http/Admin/Views/index/main_mod_stat.volt +++ b/app/Http/Admin/Views/index/main_mod_stat.volt @@ -14,7 +14,7 @@
提问
- 0 + {{ mod_stat.question_count }}
@@ -22,7 +22,7 @@
回答
- 0 + {{ mod_stat.answer_count }}
diff --git a/app/Http/Home/Controllers/ArticleController.php b/app/Http/Home/Controllers/ArticleController.php index 72cf8c46..9ca70d0c 100644 --- a/app/Http/Home/Controllers/ArticleController.php +++ b/app/Http/Home/Controllers/ArticleController.php @@ -64,10 +64,13 @@ class ArticleController extends Controller $this->seo->prependTitle('写文章'); + $referer = $this->request->getHTTPReferer(); + $this->view->pick('article/edit'); $this->view->setVar('source_types', $sourceTypes); - $this->view->setVar('article', $article); $this->view->setVar('xm_tags', $xmTags); + $this->view->setVar('article', $article); + $this->view->setVar('referer', $referer); } /** diff --git a/app/Repos/Stat.php b/app/Repos/Stat.php index 127e7a76..ae8aa260 100644 --- a/app/Repos/Stat.php +++ b/app/Repos/Stat.php @@ -2,12 +2,14 @@ namespace App\Repos; +use App\Models\Answer as AnswerModel; use App\Models\Article as ArticleModel; use App\Models\Comment as CommentModel; use App\Models\Online as OnlineModel; use App\Models\Order as OrderModel; use App\Models\OrderStatus as OrderStatusModel; use App\Models\PointRedeem as PointRedeemModel; +use App\Models\Question as QuestionModel; use App\Models\Refund as RefundModel; use App\Models\User as UserModel; use Phalcon\Mvc\Model\Resultset; @@ -24,6 +26,22 @@ class Stat extends Repository ]); } + public function countPendingQuestions() + { + return (int)ArticleModel::count([ + 'conditions' => 'published = :published: AND deleted = 0', + 'bind' => ['published' => QuestionModel::PUBLISH_PENDING], + ]); + } + + public function countPendingAnswers() + { + return (int)AnswerModel::count([ + 'conditions' => 'published = :published: AND deleted = 0', + 'bind' => ['published' => AnswerModel::PUBLISH_PENDING], + ]); + } + public function countPendingComments() { return (int)CommentModel::count([