예제 #1
0
 /**
  * 根据标签名称获取相关文章
  *
  * @param Request $request
  * @param Tags $tagModel
  * @param Post $postModel
  * @param SmpJsonView $jsonView
  *
  * @return SmpJsonView
  */
 public function relatedPostsAction(Request $request, Tags $tagModel, Post $postModel, SmpJsonView $jsonView)
 {
     $tags = $tagModel->getTagsByNames(explode(',', $request->get('tags', '')));
     $tag_ids = [];
     foreach ($tags as $tag) {
         $tag_ids[] = $tag['id'];
     }
     $posts = $postModel->getPostsInfoByTags($tag_ids, 10);
     $jsonView->assign('posts', $posts);
     $jsonView->assign('status', true);
     return $jsonView;
 }
예제 #2
0
 /**
  * 文章展示页
  *
  * @param Request $request
  * @param \Demo\Models\Post $postModel
  *
  * @return string
  */
 public function showAction(Request $request, \Demo\Models\Post $postModel, Tags $tagModel)
 {
     $id = intval($request->get('id'));
     $html = $this->getCache()->get("post_{$id}");
     if (false === $html) {
         $post = $postModel->getPostById($id);
         $tags = $tagModel->getTagsByPostId($id);
         $this->assign('post', $post);
         $this->assign('tags', $tags);
         $this->assign('parsedown', new \Parsedown());
         $this->assign('catModel', new Category());
         if (!empty($tags) && is_array($tags)) {
             $tagIds = [];
             foreach ($tags as $tag) {
                 $tagIds[] = $tag['id'];
             }
             $this->assign('relates', $postModel->getPostsInfoByTags($tagIds, 10));
         }
         $html = $this->view('post')->render();
         $this->getCache()->set("post_{$id}", $html);
     }
     return $html;
 }