liquidRenderer = $liquidRenderer; } /** * Display a listing of the pages. * * @return \Illuminate\Http\Response */ public function list() { abort('404'); $cacheKey = "page_list_dist_" . getDistId() . "_page_" . request()->get('page', 1); $pages = SitePage::paginate(10)->where('dist_id', getDistId())->where('status', '1'); // 每页显示10个页面 return $this->liquidRenderer->render('pages_list', ['pages' => $pages],$cacheKey); } /** * Display the specified page. * * @param string $slug * @return \Illuminate\Http\Response */ public function detail($slug) { $recent_pages=null; $page = SitePage::where('status', '1')->where('dist_id', getDistId())->where('slug', $slug)->orWhere('id', $slug)->first(); // 如果没有找到且是数字,通过 id 获取页面 if (!$page) { if (is_numeric($slug)) { $page = SitePage::where('status', '1')->where('dist_id', getDistId())->where('id', $slug)->firstOrFail(); } else{ abort(403); } } if($page->page_type==0) { $previousPage = SitePage::where('dist_id', getDistId()) ->where('status', '1') ->where('id', '<', $page->id) ->where('page_type',0) ->orderBy('id', 'desc') ->first(); $nextPage = SitePage::where('dist_id', getDistId()) ->where('status', '1') ->where('id', '>', $page->id) ->where('page_type',0) ->orderBy('id', 'asc') ->first(); // 创建分页数据结构 $paginator = [ 'previous_page' => $previousPage ? true : false, // 是否有上一页 'previous_page_url' => $previousPage ? "/pages/" . ($previousPage->slug ?: $previousPage->id) : null, // 上一页的 URL 'previous_page_title' => $previousPage ? $previousPage->title : null, // 上一页的标题 'next_page' => $nextPage ? true : false, // 是否有下一页 'next_page_url' => $nextPage ? "/pages/" . ($nextPage->slug ?: $nextPage->id) : null, // 下一页的 URL 'next_page_title' => $nextPage ? $nextPage->title : null, // 下一页的标题 ]; //Recent post //获取最近的文章 数量有限制,当前文章不要放进去 $recent_pages_limit=10; $recent_pages = SitePage::where('dist_id', getDistId()) ->where('status', '1') ->where('id', '!=', $page->id) ->where('page_type',0) ->orderBy('id', 'desc') ->limit($recent_pages_limit) ->get(); } else{ $paginator = []; } // 构建导航数据 开始 $breadcrumbs = [ [ 'url' => '/', 'name' => 'Home', ] ]; if ($page->tags->isNotEmpty()) { $tag = $page->tags->first(); $breadcrumbs[] = [ 'url' => $tag->slug ? "/collections/{$tag->slug}" : "/collections/{$tag->id}", 'name' => $tag->name, ]; } $breadcrumbs[] = [ 'url' => '#', 'name' => $page->title, ]; // 构建导航数据 结束 $template_file ='pages_detail.liquid'; if(!empty($page->template_file )) { //查找当前外观是否存在这文件,找不到就用默认的 $dist=app('dist'); $appearanceId = $dist->appearance->id; if (DistAppearanceTemplate::hasFileName($page->template_file,getDistId(),$appearanceId) == true) { $template_file=$page->template_file; } } return $this->liquidRenderer->render($template_file, [ 'page' => $page, 'recent_pages' => $recent_pages, 'breadcrumbs' => $breadcrumbs, 'paginator' => $paginator, 'csrf_token' => csrf_token(), ]); } }