This commit is contained in:
make
2025-04-18 22:20:35 +08:00
parent 0b83e04b34
commit ed4a97bc19
21 changed files with 487 additions and 341 deletions

View File

@@ -9,9 +9,9 @@ use app\services\SiteContext;
use think\facade\Route;
Route::get('/article/fenlei/:category', function (\think\Request $Request, SiteContext $SiteContext) {
return view($SiteContext->getHomeView());
});
// Route::get('/article/fenlei/:category', function (\think\Request $Request, SiteContext $SiteContext) {
// return view($SiteContext->getHomeView());
// });
@@ -161,53 +161,70 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
case 'latest':
//最新章节
Route::get($strRoute, [Novel::class, 'getNovelLatestChapter'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]);
break;
case 'chapter':
//章节
Route::get($strRoute, [Novel::class, 'getNovelChapter'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'intChapterSort' => '\d+', 'intChapterPage' => '\d+']);
break;
case 'kan-novel':
//伪造小说详情
Route::get($strRoute, [Novel::class, 'getKanNovelInfo'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['n_id' => '\d+', 'n_forge_id' => '\d+', 'name' => '[\w-]+',]);
break;
case 'novel':
//小说详情
Route::get($strRoute, [Novel::class, 'getNovelInfo'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]);
$strView = 'pc/getNovelInfo.html';
if ($platform == 'h5') {
$strView = 'novel/getNovelInfo.html';
}
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]);
break;
case 'catalog':
//目录
Route::get($strRoute, [Novel::class, 'getNovelCatalog'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'strOrder' => 'zheng|dao', 'intPage' => '\d+']);
$strView = 'pc/getNovelCatalog.html';
if ($platform == 'h5') {
$strView = 'novel/getNovelCatalog.html';
}
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'strOrder' => 'zheng|dao', 'intPage' => '\d+']);
break;
case 'library':
//书库/分类 /shuku/all/xuanhuan-xiuzhen/all/all/page1
Route::get($strRoute, [Novel::class, 'getLibrary'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern([
//'strGender' => 'all|nansheng-xiaoshuo|boys-novel|nansheng-shu|man-read|nansheng-book|male-novels|nvsheng-xiaoshuo|girls-novel|nvsheng-shu|woman-read|nvsheng-book|female-novels',
'strGender' => '[a-z\-]+',
'strCategory' => '[a-z\-]+',
'strStatus' => 'all|lianzai|wanjie',
// 'strOrder' => '[a-z\-]+',
'intPage' => '\d+'
]);
$strView = 'pc/getLibrary.html';
if ($platform == 'h5') {
$strView = 'novel/getLibrary.html';
}
//书库/分类
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
->pattern([
// 'strGender' => '[a-z\-]+',
'strCategory' => '[a-z\-]+',
'strStatus' => 'all|lianzai|wanjie',
// 'strOrder' => '[a-z\-]+',
'intPage' => '\d+'
]);
break;
case 'library-index':
//书库/分类首页
Route::get($strRoute, [Novel::class, 'getLibrary'])->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, [Novel::class, 'getLibrary']);
break;
case 'rank':
//排行榜
Route::get($strRoute, [Novel::class, 'getNovelRank'])->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, [Novel::class, 'getNovelRank']);
break;
case 'boys':
//男生
@@ -219,26 +236,30 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
break;
case 'search':
//搜素
Route::get($strRoute, [Novel::class, 'getSearchNovel'])->ext('html')->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, [Novel::class, 'getSearchNovel'])->ext('html');
break;
case 'user':
//用户中心
Route::get($strRoute, [User::class, 'Index'])->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, [User::class, 'Index']);
break;
case 'bookshelf':
//书架
Route::get($strRoute, [User::class, 'getBookShelf'])->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, [User::class, 'getBookShelf']);
break;
case 'history':
//历史记录
Route::get($strRoute, [User::class, 'getHistory'])->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, [User::class, 'getHistory']);
break;
case 'index':
// 首页
if ($platform == 'h5') {
Route::get($strRoute, [Index::class, 'index'])->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, function (\think\Request $Request, SiteContext $SiteContext ) {
return view($SiteContext->getHomeView('h5'));
});
} else {
Route::get($strRoute, [Index::class, 'getPcIndex'])->append(['boolIsMobile' => $boolIsMobile]);
Route::get($strRoute, function (\think\Request $Request, SiteContext $SiteContext ) {
return view($SiteContext->getHomeView('pc'));
});
}
break;
}
@@ -246,3 +267,103 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
}
}
}
/**
* 遍历路由配置,动态注册 H5 和 PC 路由
*/
// foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
// $prefixes = is_array($prefixes) ? $prefixes : [$prefixes];
// $boolIsMobile = $platform === 'h5';
// foreach ($prefixes as $strPath) {
// foreach ($arrRoutes['paths'] as $key => $arrUrl) {
// foreach ($arrUrl as $strUrl) {
// $strRoute = $strPath . $strUrl;
// switch ($key) {
// case 'latest':
// //最新章节
// Route::get($strRoute, [Novel::class, 'getNovelLatestChapter'])
// ->append(['boolIsMobile' => $boolIsMobile])
// ->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]);
// break;
// case 'chapter':
// //章节
// Route::get($strRoute, [Novel::class, 'getNovelChapter'])
// ->append(['boolIsMobile' => $boolIsMobile])
// ->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'intChapterSort' => '\d+', 'intChapterPage' => '\d+']);
// break;
// case 'kan-novel':
// //伪造小说详情
// Route::get($strRoute, [Novel::class, 'getKanNovelInfo'])
// ->append(['boolIsMobile' => $boolIsMobile])
// ->pattern(['n_id' => '\d+', 'n_forge_id' => '\d+', 'name' => '[\w-]+',]);
// break;
// case 'novel':
// //小说详情
// Route::get($strRoute, [Novel::class, 'getNovelInfo'])
// ->append(['boolIsMobile' => $boolIsMobile])
// ->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]);
// break;
// case 'catalog':
// //目录
// Route::get($strRoute, [Novel::class, 'getNovelCatalog'])
// ->append(['boolIsMobile' => $boolIsMobile])
// ->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'strOrder' => 'zheng|dao', 'intPage' => '\d+']);
// break;
// case 'library':
// //书库/分类 /shuku/all/xuanhuan-xiuzhen/all/all/page1
// Route::get($strRoute, [Novel::class, 'getLibrary'])
// ->append(['boolIsMobile' => $boolIsMobile])
// ->pattern([
// //'strGender' => 'all|nansheng-xiaoshuo|boys-novel|nansheng-shu|man-read|nansheng-book|male-novels|nvsheng-xiaoshuo|girls-novel|nvsheng-shu|woman-read|nvsheng-book|female-novels',
// 'strGender' => '[a-z\-]+',
// 'strCategory' => '[a-z\-]+',
// 'strStatus' => 'all|lianzai|wanjie',
// // 'strOrder' => '[a-z\-]+',
// 'intPage' => '\d+'
// ]);
// break;
// case 'library-index':
// //书库/分类首页
// Route::get($strRoute, [Novel::class, 'getLibrary'])->append(['boolIsMobile' => $boolIsMobile]);
// break;
// case 'rank':
// //排行榜
// Route::get($strRoute, [Novel::class, 'getNovelRank'])->append(['boolIsMobile' => $boolIsMobile]);
// break;
// case 'boys':
// //男生
// Route::get($strRoute, [Novel::class, 'getNovelChannel'])->append(['boolIsMobile' => $boolIsMobile, 'strChannel' => 'boys']);
// break;
// case 'girls':
// //女生
// Route::get($strRoute, [Novel::class, 'getNovelChannel'])->append(['boolIsMobile' => $boolIsMobile, 'strChannel' => 'girls']);
// break;
// case 'search':
// //搜素
// Route::get($strRoute, [Novel::class, 'getSearchNovel'])->ext('html')->append(['boolIsMobile' => $boolIsMobile]);
// break;
// case 'user':
// //用户中心
// Route::get($strRoute, [User::class, 'Index'])->append(['boolIsMobile' => $boolIsMobile]);
// break;
// case 'bookshelf':
// //书架
// Route::get($strRoute, [User::class, 'getBookShelf'])->append(['boolIsMobile' => $boolIsMobile]);
// break;
// case 'history':
// //历史记录
// Route::get($strRoute, [User::class, 'getHistory'])->append(['boolIsMobile' => $boolIsMobile]);
// break;
// case 'index':
// // 首页
// if ($platform == 'h5') {
// Route::get($strRoute, [Index::class, 'index'])->append(['boolIsMobile' => $boolIsMobile]);
// } else {
// Route::get($strRoute, [Index::class, 'getPcIndex'])->append(['boolIsMobile' => $boolIsMobile]);
// }
// break;
// }
// }
// }
// }
// }