NewsInfo.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Web\Components\Blog;
  3. use App\Exceptions\ApiException;
  4. use App\Web\Facades\BlogRenderFacade;
  5. use App\Web\Facades\WebFacade;
  6. use App\Web\Services\WebService;
  7. use Illuminate\View\Component;
  8. class NewsInfo extends Component
  9. {
  10. protected $viewFile; //视图地址
  11. protected $blogId;
  12. protected $router_path;
  13. /**
  14. * @throws ApiException
  15. */
  16. public function __construct($viewFile = '', $params = [], $blogId = 0, $routerPath= '')
  17. {
  18. if (empty($viewFile)) {
  19. throw new ApiException('common.page_none', '您访问的地址不存在~');
  20. }
  21. $this->blogId = $params['blog_id'] ?? $blogId;
  22. $this->router_path = $params['router_path'] ?? $routerPath;
  23. $this->viewFile = $viewFile;
  24. }
  25. /**
  26. * 资讯详情页组件
  27. */
  28. public function render()
  29. {
  30. $retData = [
  31. 'recent_news_list' => []
  32. ];
  33. $retData['news_info'] = BlogRenderFacade::getPublishedBlogInfo($this->blogId);
  34. $retData['pre_news_info'] = BlogRenderFacade::getPreBlog($retData['news_info']['plate_id'], $this->blogId);
  35. $retData['next_news_info'] = BlogRenderFacade::getNextBlog($retData['news_info']['plate_id'], $this->blogId);
  36. $retData['plate_info'] = BlogRenderFacade::getPlateInfo($retData['news_info']['plate_id']);
  37. $recentNews = BlogRenderFacade::getPublishBlogList($retData['news_info']['plate_id'], '', 1, 3, ['is_hot']);
  38. if(!empty($recentNews['data'])) {
  39. $retData['recent_news_list'] = $recentNews['data'];
  40. }
  41. $retData['type_items'] = BlogRenderFacade::getPublishedTypeList($retData['news_info']['plate_id']);
  42. $retData['tag_items'] = BlogRenderFacade::getPublishedTagList($retData['news_info']['plate_id']);
  43. if (!empty($this->router_path)) {
  44. $pageContent = WebFacade::getStaticPageInfo(['route_path' => $this->router_path]);
  45. $retData['page_content'] = $pageContent['page_content'];
  46. }
  47. $retData['menu_data']=WebFacade::getWebMenu();
  48. //dd($retData);
  49. return view($this->viewFile, $retData);
  50. }
  51. }