CollectionController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Services\LiquidRenderer;
  4. use Illuminate\Http\Request;
  5. use App\Models\SitePage;
  6. use App\Models\SitePageTag;
  7. class CollectionController extends Controller
  8. {
  9. protected $liquidRenderer;
  10. public function __construct(LiquidRenderer $liquidRenderer)
  11. {
  12. $this->liquidRenderer = $liquidRenderer;
  13. }
  14. public function index()
  15. {
  16. //模板支持多级目录,需要目录符号
  17. $output = LiquidRenderer::render('collection_list.liquid', [
  18. ]);
  19. return response($output);
  20. }
  21. public function detail($slug)
  22. {
  23. // Find the tag by either slug or id
  24. $tag = SitePageTag::where('dist_id', getDistId())
  25. ->where(function ($query) use ($slug) {
  26. $query->where('slug', $slug)
  27. ->orWhere('id', $slug);
  28. })
  29. ->first();
  30. if (!$tag) {
  31. return response()->json(['message' => '标签未找到'], 404);
  32. }
  33. // 获取关联的 pages
  34. $pages = $tag->pages()->get();
  35. // 构建导航数据 开始
  36. $breadcrumbs = [
  37. [
  38. 'url' => '/',
  39. 'name' => 'Home',
  40. ]
  41. ];
  42. $breadcrumbs[] = [
  43. 'url' => '#',
  44. 'name' => $tag->name,
  45. ];
  46. // 构建导航数据 结束
  47. //模板支持多级目录,需要目录符号
  48. $output = LiquidRenderer::render('collection_list.liquid', [
  49. 'tag' => $tag,
  50. 'pages' => $pages,
  51. 'breadcrumbs' => $breadcrumbs,
  52. ]);
  53. return response($output);
  54. }
  55. }