|
@@ -4,7 +4,7 @@ namespace App\Http\Controllers;
|
|
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Request;
|
|
use App\Services\LiquidRenderer;
|
|
use App\Services\LiquidRenderer;
|
|
-use App\Models\DistPages;
|
|
|
|
|
|
+use App\Models\SitePage;
|
|
class PageController extends Controller
|
|
class PageController extends Controller
|
|
{
|
|
{
|
|
|
|
|
|
@@ -22,7 +22,7 @@ class PageController extends Controller
|
|
*/
|
|
*/
|
|
public function list()
|
|
public function list()
|
|
{
|
|
{
|
|
- $pages = DistPages::paginate(10)->where('dist_id', getDistId())->where('status', '1'); // 每页显示10个页面
|
|
|
|
|
|
+ $pages = SitePage::paginate(10)->where('dist_id', getDistId())->where('status', '1'); // 每页显示10个页面
|
|
return $this->liquidRenderer->render('pages.list', ['pages' => $pages]);
|
|
return $this->liquidRenderer->render('pages.list', ['pages' => $pages]);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -35,19 +35,76 @@ class PageController extends Controller
|
|
public function detail($slug)
|
|
public function detail($slug)
|
|
{
|
|
{
|
|
|
|
|
|
- $page = DistPages::where('status', '1')->where('dist_id', getDistId())->where('slug', $slug)->first();
|
|
|
|
|
|
+
|
|
|
|
+ $page = SitePage::where('status', '1')->where('dist_id', getDistId())->where('slug', $slug)->orWhere('id', $slug)->first();
|
|
|
|
+
|
|
|
|
|
|
// 如果没有找到且是数字,通过 id 获取页面
|
|
// 如果没有找到且是数字,通过 id 获取页面
|
|
if (!$page) {
|
|
if (!$page) {
|
|
if (is_numeric($slug))
|
|
if (is_numeric($slug))
|
|
{
|
|
{
|
|
- $page = DistPages::where('status', '1')->where('id', $slug)->firstOrFail();
|
|
|
|
|
|
+ $page = SitePage::where('status', '1')->where('dist_id', getDistId())->where('id', $slug)->firstOrFail();
|
|
}
|
|
}
|
|
else{
|
|
else{
|
|
abort(404);
|
|
abort(404);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- return $this->liquidRenderer->render('pages_detail.liquid', ['page' => $page]);
|
|
|
|
|
|
+ $previousPage = SitePage::where('dist_id', getDistId())
|
|
|
|
+ ->where('status', '1')
|
|
|
|
+ ->where('id', '<', $page->id)
|
|
|
|
+ ->orderBy('id', 'desc')
|
|
|
|
+ ->first();
|
|
|
|
+
|
|
|
|
+ $nextPage = SitePage::where('dist_id', getDistId())
|
|
|
|
+ ->where('status', '1')
|
|
|
|
+ ->where('id', '>', $page->id)
|
|
|
|
+ ->orderBy('id', 'asc')
|
|
|
|
+ ->first();
|
|
|
|
+
|
|
|
|
+ // 创建分页数据结构
|
|
|
|
+ $paginator = [
|
|
|
|
+ 'previous_page' => $previousPage ? true : false, // 是否有上一页
|
|
|
|
+ 'previous_page_url' => $previousPage ? "/pages/" . ($previousPage->slug ?: $previousPage->id) : null, // 上一页的 URL
|
|
|
|
+ 'next_page' => $nextPage ? true : false, // 是否有下一页
|
|
|
|
+ 'next_page_url' => $nextPage ? "/pages/" . ($nextPage->slug ?: $nextPage->id) : null // 下一页的 URL
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 构建导航数据 开始
|
|
|
|
+ $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(!epmty($page->template_file ))
|
|
|
|
+ {
|
|
|
|
+ $template_file=$page->template_file;
|
|
|
|
+ }
|
|
|
|
+ return $this->liquidRenderer->render('pages_detail.liquid',
|
|
|
|
+ [
|
|
|
|
+ 'page' => $page,
|
|
|
|
+ 'breadcrumbs' => $breadcrumbs,
|
|
|
|
+ 'paginator' => $paginator,
|
|
|
|
+
|
|
|
|
+ ]);
|
|
}
|
|
}
|
|
}
|
|
}
|