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

@@ -104,7 +104,6 @@ abstract class BaseController
View::assign("DomainModel", $this->request->DomainModel); View::assign("DomainModel", $this->request->DomainModel);
View::assign("TemplatesModel", $this->request->TemplatesModel); View::assign("TemplatesModel", $this->request->TemplatesModel);
View::assign("strPcPath", $strPcUrlTemp); View::assign("strPcPath", $strPcUrlTemp);
View::assign("strNanUrlTemp", $strNanUrlTemp); View::assign("strNanUrlTemp", $strNanUrlTemp);
View::assign("strNvUrlTemp", $strNvUrlTemp); View::assign("strNvUrlTemp", $strNvUrlTemp);

View File

@@ -9,9 +9,9 @@ use app\services\SiteContext;
use think\facade\Route; use think\facade\Route;
Route::get('/article/fenlei/:category', function (\think\Request $Request, SiteContext $SiteContext) { // Route::get('/article/fenlei/:category', function (\think\Request $Request, SiteContext $SiteContext) {
return view($SiteContext->getHomeView()); // return view($SiteContext->getHomeView());
}); // });
@@ -161,53 +161,70 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
case 'latest': case 'latest':
//最新章节 //最新章节
Route::get($strRoute, [Novel::class, 'getNovelLatestChapter']) Route::get($strRoute, [Novel::class, 'getNovelLatestChapter'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]); ->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]);
break; break;
case 'chapter': case 'chapter':
//章节 //章节
Route::get($strRoute, [Novel::class, 'getNovelChapter']) Route::get($strRoute, [Novel::class, 'getNovelChapter'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'intChapterSort' => '\d+', 'intChapterPage' => '\d+']); ->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'intChapterSort' => '\d+', 'intChapterPage' => '\d+']);
break; break;
case 'kan-novel': case 'kan-novel':
//伪造小说详情 //伪造小说详情
Route::get($strRoute, [Novel::class, 'getKanNovelInfo']) Route::get($strRoute, [Novel::class, 'getKanNovelInfo'])
->append(['boolIsMobile' => $boolIsMobile])
->pattern(['n_id' => '\d+', 'n_forge_id' => '\d+', 'name' => '[\w-]+',]); ->pattern(['n_id' => '\d+', 'n_forge_id' => '\d+', 'name' => '[\w-]+',]);
break; break;
case 'novel': case 'novel':
//小说详情 //小说详情
Route::get($strRoute, [Novel::class, 'getNovelInfo']) $strView = 'pc/getNovelInfo.html';
->append(['boolIsMobile' => $boolIsMobile]) if ($platform == 'h5') {
$strView = 'novel/getNovelInfo.html';
}
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]); ->pattern(['n_id' => '\d+', 'name' => '[\w-]+',]);
break; break;
case 'catalog': case 'catalog':
//目录 //目录
Route::get($strRoute, [Novel::class, 'getNovelCatalog']) $strView = 'pc/getNovelCatalog.html';
->append(['boolIsMobile' => $boolIsMobile]) 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+']); ->pattern(['intNovelId' => '\d+', 'name' => '[\w-]+', 'strOrder' => 'zheng|dao', 'intPage' => '\d+']);
break; break;
case 'library': case 'library':
//书库/分类 /shuku/all/xuanhuan-xiuzhen/all/all/page1 $strView = 'pc/getLibrary.html';
Route::get($strRoute, [Novel::class, 'getLibrary']) if ($platform == 'h5') {
->append(['boolIsMobile' => $boolIsMobile]) $strView = 'novel/getLibrary.html';
}
//书库/分类
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
->pattern([ ->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\-]+',
'strGender' => '[a-z\-]+',
'strCategory' => '[a-z\-]+', 'strCategory' => '[a-z\-]+',
'strStatus' => 'all|lianzai|wanjie', 'strStatus' => 'all|lianzai|wanjie',
// 'strOrder' => '[a-z\-]+', // 'strOrder' => '[a-z\-]+',
'intPage' => '\d+' 'intPage' => '\d+'
]); ]);
break; break;
case 'library-index': case 'library-index':
//书库/分类首页 //书库/分类首页
Route::get($strRoute, [Novel::class, 'getLibrary'])->append(['boolIsMobile' => $boolIsMobile]); Route::get($strRoute, [Novel::class, 'getLibrary']);
break; break;
case 'rank': case 'rank':
//排行榜 //排行榜
Route::get($strRoute, [Novel::class, 'getNovelRank'])->append(['boolIsMobile' => $boolIsMobile]); Route::get($strRoute, [Novel::class, 'getNovelRank']);
break; break;
case 'boys': case 'boys':
//男生 //男生
@@ -219,26 +236,30 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
break; break;
case 'search': case 'search':
//搜素 //搜素
Route::get($strRoute, [Novel::class, 'getSearchNovel'])->ext('html')->append(['boolIsMobile' => $boolIsMobile]); Route::get($strRoute, [Novel::class, 'getSearchNovel'])->ext('html');
break; break;
case 'user': case 'user':
//用户中心 //用户中心
Route::get($strRoute, [User::class, 'Index'])->append(['boolIsMobile' => $boolIsMobile]); Route::get($strRoute, [User::class, 'Index']);
break; break;
case 'bookshelf': case 'bookshelf':
//书架 //书架
Route::get($strRoute, [User::class, 'getBookShelf'])->append(['boolIsMobile' => $boolIsMobile]); Route::get($strRoute, [User::class, 'getBookShelf']);
break; break;
case 'history': case 'history':
//历史记录 //历史记录
Route::get($strRoute, [User::class, 'getHistory'])->append(['boolIsMobile' => $boolIsMobile]); Route::get($strRoute, [User::class, 'getHistory']);
break; break;
case 'index': case 'index':
// 首页 // 首页
if ($platform == 'h5') { 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 { } 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; 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;
// }
// }
// }
// }
// }

View File

@@ -1,7 +1,7 @@
{extend name="baseH5" /} {extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="INDEX@INDEX@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="INDEX@INDEX@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="INDEX@INDEX@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
<!-- 社交媒体标签 --> <!-- 社交媒体标签 -->
<meta property="og:title" content="{$strTitle??''}" /> <meta property="og:title" content="{$strTitle??''}" />
@@ -44,7 +44,7 @@
<div class="wrap-box" style="margin-top:0;"> <div class="wrap-box" style="margin-top:0;">
<h3 class="wrap-title"><span>封面推荐</span></h3> <h3 class="wrap-title"><span>封面推荐</span></h3>
<div class="rec-focus"> <div class="rec-focus">
{foreach $arrRecommendNovel as $key=>$Novel } {novel:list count="8" sort_type="tuijian" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<dl class="rec-focus-book"> <dl class="rec-focus-book">
<dt class="book-img"> <dt class="book-img">
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'> <a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
@@ -58,45 +58,42 @@
<p>{$Novel.n_description}</p> <p>{$Novel.n_description}</p>
</dd> </dd>
</dl> </dl>
{/foreach} {/novel:list}
</div> </div>
</div> </div>
{foreach $arrAllCategoryNovel as $category} {novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
<div class="wrap-box"> <div class="wrap-box">
<h3 class="wrap-title"> <h3 class="wrap-title">
<span>{$category.xsfl_name}</span> <span>{$strCategoryName}</span>
<a class="more" href="/{$SiteModel['site_fenlei_path']}/{$category.xsfl_source_id}-0-0-1.html">更多..</a> <a class="more" href='{site:nflurl category="$strCategoryPinyin" status="all" order="all" page="1"/}'>更多..</a>
</h3> </h3>
<div class="sort-box"> <div class="sort-box">
<dl class="sort-book-first"> <dl class="sort-book-first">
{foreach $arrNovels[$category.xsfl_source_id] as $key2 => $vo} {novel:list count="1" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
{if $key2 == 0} <dt class="book-img"><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'><img height="100" width="80"
<dt class="book-img"><a href="/{$SiteModel['site_xiangqing_path']}/{$vo.xsxq_id}.html"><img height="100" width="80" class="lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
src="{$vo.xsxq_feng_mian_url}" alt="{$vo.xsxq_ming_zi}"></a></dt> data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"></a></dt>
<dd class="book-info"> <dd class="book-info">
<h4><a href="/{$SiteModel['site_xiangqing_path']}/{$vo.xsxq_id}.html">{$vo.xsxq_ming_zi}</a></h4> <h4><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name}</a></h4>
<p>作者:{$vo.xsxq_zuozhe}</p> <p>作者:{$Novel.n_author}</p>
<p>{$vo.xsxq_jie_shao}</p> <p>{$Novel.n_description}</p>
</dd> </dd>
{/if} {/novel:list}
{/foreach}
</dl> </dl>
<ul class="sort-book-list"> <ul class="sort-book-list">
{foreach $arrNovels[$category.xsfl_source_id] as $key2 => $vo} {novel:list count="9" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
{if $key2 >= 1} <li><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name}</a><span>{$Novel.n_author}</span></li>
<li><a href="/{$SiteModel['site_xiangqing_path']}/{$vo.xsxq_id}.html">{$vo.xsxq_ming_zi}</a><span>{$vo.xsxq_zuozhe}</span></li> {/novel:list}
{/if}
{/foreach}
</ul> </ul>
</div> </div>
</div> </div>
{/foreach} {/novel:category}
{/block} {/block}

View File

@@ -1,8 +1,8 @@
{extend name="baseH5" /} {extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETLIBRARY@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETLIBRARY@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETLIBRARY@DESCRIPTION"}{/block}
{block name="head-js"}{/block} {block name="head-js"}{/block}
{block name='nav-active-class'}home{/block} {block name='nav-active-class'}home{/block}
@@ -10,7 +10,8 @@
{block name="logo-html"} {block name="logo-html"}
<h1 class="bookname"> <h1 class="bookname">
<a href="/" style="color:#ffffff">{$DomainModel->d_name}</a>-{$strSearchCategory}{$strOrder}{$strSearchStatus}免费阅读 <a href="/"
style="color:#ffffff">{$DomainModel->d_name}</a>-{$Request.route.strCategory}{$Request.route.strOrder}{$Request.route.strStatus}免费阅读
</h1> </h1>
{/block} {/block}
@@ -19,48 +20,42 @@
{block name="main"} {block name="main"}
<p class="site-description">{$strDescription??''}</p> <p class="site-description">{$strDescription??''}</p>
<div class="navpf"> <div class="navpf">
<nav class="sortChannel_nav"> <nav class="sortChannel_nav">
<a class="on">分类:</a> <a class="on">分类:</a>
<a class='{eq name="strCategory" value="all"}on on2 {/eq}' <a class='{eq name="$Request.route.strCategory" value="all"}on on2 {/eq}'
href='{site:nflurl gender="" category="all" status="$strStatus" order="$strOrder" page="$intPage"/}'>全部分类</a> href='{site:nflurl category="all" status="$Request.route.strStatus" order="$Request.route.strOrder" page="$Request.route.intPage"/}'>全部分类</a>
{foreach $arrCategoryAll.man as $key=>$vo } {novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
<a class='{eq name="strCategory" value="$key"}on on2 {/eq}'
href='{site:nflurl gender="" category="$key" status="$strStatus" order="$strOrder" page="$intPage"/}'>{$vo}</a>
{/foreach}
{foreach $arrCategoryAll.women as $key=>$vo }
<a class='{eq name="strCategory" value="$key"}on on2 {/eq}'
href='{site:nflurl gender="" category="$key" status="$strStatus" order="$strOrder" page="$intPage"/}'>{$vo}</a>
{/foreach}
<a class='{eq name="$Request.route.strCategory" value="$strCategoryPinyin"}on on2 {/eq}'
href='{site:nflurl category="$strCategoryPinyin" status="$Request.route.strStatus" order="$Request.route.strOrder" page="$Request.route.intPage"/}'>{$strCategoryName}</a>
{/novel:category}
</nav> </nav>
<nav class="sortChannel_nav"> <nav class="sortChannel_nav">
<a class="on">排序:</a> <a class="on">排序:</a>
{foreach $arrOrder as $key=>$orderName } {novel:sort d_key="key" d_val="strSortName"}
<a href='{site:nflurl gender="" category="$strCategory" status="$strStatus" order="$key" page="$intPage"/}' <a href='{site:nflurl category="$Request.route.strCategory" status="$Request.route.strStatus" order="$key" page="$Request.route.intPage"/}'
class='{eq name="strOrder" value="$key"}on on2 {/eq}'>{$orderName}</a> class='{eq name="$Request.route.strOrder" value="$key"}on on2 {/eq}'>{$strSortName}</a>
{/foreach} {/novel:sort}
</nav> </nav>
<nav class="sortChannel_nav"> <nav class="sortChannel_nav">
<a class="on">状态:</a> <a class="on">状态:</a>
{novel:status d_key="key" d_val="strStatusName"}
<a href='{site:nflurl gender="" category="$strCategory" status="all" order="$strOrder" page="$intPage"/}' <a href='{site:nflurl category="$Request.route.strCategory" status="$key" order="$Request.route.strOrder" page="$Request.route.intPage"/}'
class='{eq name="strStatus" value="all"}on on2 {/eq}' btn="search_category">全部状态</a> class='{eq name="$Request.route.strStatus" value="$key"}on on2 {/eq}'
<a href='{site:nflurl gender="" category="$strCategory" status="lianzai" order="$strOrder" page="$intPage"/}' btn="search_category">{$strStatusName}</a>
class='{eq name="strStatus" value="lianzai"}on on2 {/eq}' btn="search_category">连载</a> {/novel:status}
<a href='{site:nflurl gender="" category="$strCategory" status="wanjie" order="$strOrder" page="$intPage"/}'
class='{eq name="strStatus" value="wanjie"}on on2 {/eq}' btn="search_category">完本</a>
</nav> </nav>
</div> </div>
<div class="wrap-box"> <div class="wrap-box">
<h3 class="wrap-title"><span>更新列表</span></h3> <h3 class="wrap-title"><span>更新列表</span></h3>
<ul class="sort_list"> <ul class="sort_list">
{foreach $arrNovel as $key=>$Novel } {novel:pager page="1" limit="10" n_category="$Request.route.strCategory" sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_val="Novel" n_num="n_num"
p_val="page_data" button_num="5" cache_life="86400" func="generateCategoryPager"}
<li> <li>
<span class="s1">[{$Novel.n_category}]</span> <span class="s1">[{$Novel.n_category}]</span>
<span class="s2"> <span class="s2">
@@ -72,23 +67,23 @@
<span class="s4">{$Novel.n_author}</span> <span class="s4">{$Novel.n_author}</span>
<span class="s5">{$Novel.n_update_time|date='m-d'}</span> <span class="s5">{$Novel.n_update_time|date='m-d'}</span>
</li> </li>
{/foreach} {/novel:pager}
</ul> </ul>
</div> </div>
<div class="row sort_page_num"> <div class="row sort_page_num">
{volist name="arrPaginator" id="vo" key="k"} {volist name="page_data" id="vo" key="k"}
{switch $vo.label} {switch $vo.label}
{case value="上一页"} {case value="上一页"}
{if $intPage == 1} {if $Request.route.intPage == 1}
<span>«</span> <span>«</span>
{else} {else}
<a href="{$vo.url}">«</a> <a href="{$vo.url}">«</a>
{/if} {/if}
{/case} {/case}
{case value="下一页"} {case value="下一页"}
{if $intPage >= $intTotalPage} {if $Request.route.intPage >= $n_num}
<span>»</span> <span>»</span>
{else} {else}
<a href="{$vo.url}">»</a> <a href="{$vo.url}">»</a>
@@ -107,7 +102,7 @@
<span>封面推荐</span> <span>封面推荐</span>
</h3> </h3>
<div class="rec-focus"> <div class="rec-focus">
{foreach $arrTopNovel as $key=>$Novel } {novel:list count="8" sort_type="tuijian" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<dl class="rec-focus-book"> <dl class="rec-focus-book">
<dt class="book-img"> <dt class="book-img">
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'> <a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
@@ -126,7 +121,7 @@
<p>{$Novel.n_description}</p> <p>{$Novel.n_description}</p>
</dd> </dd>
</dl> </dl>
{/foreach} {/novel:list}
</div> </div>
</div> </div>

View File

@@ -1,7 +1,7 @@
{extend name="baseH5" /} {extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETNOVELCATALOG@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETNOVELCATALOG@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETNOVELCATALOG@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
<!-- 社交媒体标签 --> <!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" /> <meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />

View File

@@ -1,7 +1,7 @@
{extend name="baseH5" /} {extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETNOVELCHAPTER@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETNOVELCHAPTER@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETNOVELCHAPTER@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
<!-- 社交媒体标签 --> <!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" /> <meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />

View File

@@ -1,13 +1,15 @@
{extend name="baseH5" /} $Novel.n_id{extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETNOVELINFO@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
{novel:info n_id="$Request.route.n_id" n_key="arrNovel" n_forge_id="0" /}
{site:grm page_code="pc_novel_info" diff="$arrNovel.n_id" num="100" g_key="arrGrm" /}
<!-- 社交媒体标签 --> <!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" /> <meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" /> <meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta property="og:url" <meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' /> content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" /> <meta property="og:type" content="book" />
<meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" /> <meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" /> <meta property="og:site_name" content="{$DomainModel->d_name}" />
@@ -15,16 +17,16 @@
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}"> <meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}"> <meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<meta property="og:novel:read_url" <meta property="og:novel:read_url"
content='https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$intFirstChapterSort"/}'> content='https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}"> <meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}"> <meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.c_name ?? ''}"> <meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<meta property="og:novel:latest_chapter_url" <meta property="og:novel:latest_chapter_url"
content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'> content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 可选:支持 Twitter Card --> <!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" /> <meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" /> <meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" /> <meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 --> <!-- 结构化数据 -->
<script type="application/ld+json"> <script type="application/ld+json">
@@ -44,7 +46,7 @@
}, },
"datePublished": "{$arrNovel['n_update_time'] ?? time()}", "datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}", "image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}', "url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}", "genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN", "inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook", "bookFormat": "https://{$DomainModel->d_domain}/EBook",
@@ -64,13 +66,13 @@
"@type": "ListItem", "@type": "ListItem",
"position": 2, "position": 2,
"name": "{$arrNovel.n_category ??''}", "name": "{$arrNovel.n_category ??''}",
"item": 'https://{site:nflurl gender="" category="$arrNovel[n_category_pinyin]" order="all" status="all" page="1"/}' "item": 'https://{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
}, },
{ {
"@type": "ListItem", "@type": "ListItem",
"position": 3, "position": 3,
"name": "{$arrNovel['n_name']}", "name": "{$arrNovel['n_name']}",
"item": '{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' "item": '{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
} }
] ]
@@ -101,13 +103,13 @@
</li> </li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?> <?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a href='{site:nflurl gender="" category="$arrNovel[n_category_pinyin]" order="all" status="all" page="1"/}' itemprop="item"> <a href='{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}' itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span> <span itemprop="name">{$arrNovel.n_category}</span>
</a> </a>
<meta itemprop="position" content="2" /> <meta itemprop="position" content="2" />
</li> </li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' itemprop="item"> <a href='{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' itemprop="item">
<span itemprop="name">{$arrNovel['n_name']}</span> <span itemprop="name">{$arrNovel['n_name']}</span>
</a> </a>
<meta itemprop="position" content="3" /> <meta itemprop="position" content="3" />
@@ -133,8 +135,8 @@
<p class="tag"><span class="blue">{$arrNovel.n_category}</span><span <p class="tag"><span class="blue">{$arrNovel.n_category}</span><span
class="green">{$arrNovel.n_status}</span> class="green">{$arrNovel.n_status}</span>
</p> </p>
<p class="update"><span>最近更新:</span><a href={site:lcpurl n_id="$arrNovel[n_id]" <p class="update"><span>最近更新:</span><a href={site:lcpurl n_id="$arrNovel.n_id"
n_py="$arrNovel[n_name_pinyin]" /}>{$arrLatestChapter->c_name n_py="$arrNovel.n_name_pinyin" /}>{$arrLatestChapter->c_name
?? ""}</a></p> ?? ""}</a></p>
<p class="time"><span>更新时间:</span>{$arrNovel.n_update_time} </p> <p class="time"><span>更新时间:</span>{$arrNovel.n_update_time} </p>
</div> </div>
@@ -143,9 +145,9 @@
<ul class="btn-group"> <ul class="btn-group">
<li class="btn-group-cell"><a class="btn-normal abt1" onclick="addBookshelfFun()">加入书架</a><a <li class="btn-group-cell"><a class="btn-normal abt1" onclick="addBookshelfFun()">加入书架</a><a
class="btn-normal abt2" class="btn-normal abt2"
href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$intFirstChapterSort"/}'>开始阅读</a><a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a><a
class="btn-normal abt3" class="btn-normal abt3"
href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'>章节目录</a> href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
</li> </li>
</ul> </ul>
</div> </div>
@@ -154,79 +156,50 @@
<div class="description" style="font-size: 12px;padding:0px 10px 10px 10px; text-indent: 15px;"> <div class="description" style="font-size: 12px;padding:0px 10px 10px 10px; text-indent: 15px;">
{$arrNovel.n_description} {$arrNovel.n_description}
</div> </div>
{if $strPageCode == 'detail'}
<h3 class="wrap-title">最新章节</h3> <h3 class="wrap-title">最新章节</h3>
<div class="block-box"> <div class="block-box">
<ul class="chapter-list"> <ul class="chapter-list">
{volist name='arrChapter' id='Chapter'} {chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="86400"}
<li><a <li><a
href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'>{$Chapter.c_name}<span></span></a> href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$Chapter.c_sort_num" c_page="0"/}'>{$Chapter.c_name}<span></span></a>
</li> </li>
{/volist} {/chapter:list}
</ul> </ul>
<a href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}' <a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn-mulu">查看更多章节...</a> class="btn-mulu">查看更多章节...</a>
</div> </div>
<div class="clear"></div> <div class="clear"></div>
<h3 class="wrap-title">章节列表</h3> <h3 class="wrap-title">章节列表</h3>
<div class="block-box"> <div class="block-box">
<ul class="chapter-list"> <ul class="chapter-list">
{volist name='arrChapterAsc' id='vo'} {chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="86400"}
<li><a <li><a
href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'>{$Chapter.c_name}<span></span></a> href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$Chapter.c_sort_num" c_page="0"/}'>{$Chapter.c_name}<span></span></a>
</li> </li>
{/volist} {/chapter:list}
</ul> </ul>
<a href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}' <a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn-mulu">查看更多章节...</a> class="btn-mulu">查看更多章节...</a>
</div> </div>
{else}
<h3 class="wrap-title">章节列表(第{$intPage}页)
{if $strOrder == 'zheng'}
<a href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="dao" page="1"/}'
class="habt y">点击切换倒序</a>
{else}
<a href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'
class="habt y">点击切换正序</a>
{/if}
</h3>
<div class="block-box">
<!-- 目录下拉分页-->
{include file="public/allChapterPage" start="1"/}
<ul class="chapter-list">
{volist name='arrPage.data' id='Chapter'}
<li>
{$arrGRM[$key]|raw}
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'
title="{$arrNovel['n_name']} {$Chapter.c_name}">{$Chapter.c_name}</a>
</li>
{/volist}
</ul>
{include file="public/allChapterPage" /}
</div>
{/if}
<div class="wrap-box"> <div class="wrap-box">
<h3 class="wrap-title"><span>完结推荐</span></h3> <h3 class="wrap-title"><span>完结推荐</span></h3>
<div class="rec-focus"> <div class="rec-focus">
{foreach $arrEndNovel as $key=>$Novel } {novel:list count="6" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<dl class="rec-focus-book"> <dl class="rec-focus-book">
<dt class="book-img"><a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'><img <dt class="book-img"><a href='{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'><img
height="100" width="80" class="lazyload-img" src="/static/img/default.jpg" height="100" width="80" class="lazyload-img" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}" data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"></a></dt> alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"></a></dt>
<dd class="book-info"> <dd class="book-info">
<h2><a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>{$Novel.n_name}</a> <h2><a href='{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>{$Novel.n_name}</a>
</h2> </h2>
<p>作者:{$Novel.n_author}</p> <p>作者:{$Novel.n_author}</p>
<p>{$Novel.n_description}</p> <p>{$Novel.n_description}</p>
</dd> </dd>
</dl> </dl>
{/foreach} {/novel:list}
</div> </div>
</div> </div>
@@ -234,16 +207,16 @@
<h3 class="wrap-title"><span>相邻小说</span></h3> <h3 class="wrap-title"><span>相邻小说</span></h3>
<div class="description" style="font-size: 12px;padding:0px 10px 10px 10px; text-indent: 15px;"> <div class="description" style="font-size: 12px;padding:0px 10px 10px 10px; text-indent: 15px;">
{$strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}... {$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
</div> </div>
<div class="rec-focus" style="font-size:12px;"> <div class="rec-focus" style="font-size:12px;">
{volist name='arrRelateveNovel' id='Novel'} {volist name='$arrNovel.arrRelateveNovel' id='Novel'}
<a href='{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'>{$Novel.n_name}</a>&nbsp;&nbsp; <a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/volist} {/volist}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel'} {volist name='arrNovel.n_forge_novel' id='ForgeNovel'}
<a <a
href='{site:nnurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" n_fid="$ForgeNovel[n_forge_id]"/}'>{$ForgeNovel.n_forge_title}</a>&nbsp;&nbsp; href='{site:nnurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" n_fid="$ForgeNovel.n_forge_id"/}'>{$ForgeNovel.n_forge_title}</a>&nbsp;&nbsp;
{/volist} {/volist}
</div> </div>
</div> </div>

View File

@@ -1,7 +1,7 @@
{extend name="baseH5" /} {extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETSEARCHNOVEL@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETSEARCHNOVEL@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETSEARCHNOVEL@DESCRIPTION"}{/block}
{block name='nav-active-class'}home{/block} {block name='nav-active-class'}home{/block}
{block name="body-class"}novel_so novel_search_page{/block} {block name="body-class"}novel_so novel_search_page{/block}

View File

@@ -1,21 +1,21 @@
{extend name="basePc" /} {extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETLIBRARY@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETLIBRARY@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETLIBRARY@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
<!-- 社交媒体标签 --> <!-- 社交媒体标签 -->
<meta property="og:title" content="{$strTitle??''}" /> <meta property="og:title" content="{$strTitle??''}" />
<meta property="og:description" content="{$strDescription??''}" /> <meta property="og:description" content="{$strDescription??''}" />
{if $strGender == 'all' && $strCategory == 'all' && $strStatus == 'all'} {if $Request.route.strGender == 'all' && $Request.route.strCategory == 'all' && $Request.route.strStatus == 'all'}
<meta property="og:url" content="https://{$DomainModel->d_domain}{$strCategoryIndexUrlTemp}" /> <meta property="og:url" content="https://{$DomainModel->d_domain}{$strCategoryIndexUrlTemp}" />
{else} {else}
<meta property="og:url" <meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nflurl gender="" category="$strCategory" status="$strStatus" page="$intPage"/}' /> content='https://{$DomainModel->d_domain}{site:nflurl category="$Request.route.strCategory" status="$Request.route.strStatus" page="$Request.route.intPage"/}' />
{/if} {/if}
<meta property="og:type" content="book" /> <meta property="og:type" content="book" />
<!-- 结构化数据 --> <!-- 结构化数据 -->
{if $strGender == 'all' && $strCategory == 'all' && $strStatus == 'all'} {if $Request.route.strGender == 'all' && $Request.route.strCategory == 'all' && $Request.route.strStatus == 'all'}
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": "https://{$DomainModel->d_domain}{$strCategoryIndexUrlTemp}", "@context": "https://{$DomainModel->d_domain}{$strCategoryIndexUrlTemp}",
@@ -28,7 +28,7 @@
{else} {else}
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": 'https://{$DomainModel->d_domain}{site:nflurl gender="" category="$strCategory" status="$strStatus" page="$intPage"/}', "@context": 'https://{$DomainModel->d_domain}{site:nflurl category="$Request.route.strCategory" status="$Request.route.strStatus" page="$Request.route.intPage"/}',
"@type": "book", "@type": "book",
"headline": "{$strTitle??''}", "headline": "{$strTitle??''}",
"description": "{$strDescription??''}", "description": "{$strDescription??''}",
@@ -42,11 +42,11 @@
{block name="head-css"} {block name="head-css"}
{if $strGender == 'all' && $strCategory == 'all' && $strStatus == 'all'} {if $Request.route.strGender == 'all' && $Request.route.strCategory == 'all' && $Request.route.strStatus == 'all'}
<link rel="canonical" href="https://{$DomainModel->d_domain}{$DomainModel->d_domain}{$strCategoryIndexUrlTemp}"> <link rel="canonical" href="https://{$DomainModel->d_domain}{$DomainModel->d_domain}{$strCategoryIndexUrlTemp}">
{else} {else}
<link rel="canonical" <link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nflurl gender="" category="$strCategory" status="$strStatus" page="$intPage"/}'> href='https://{$DomainModel->d_domain}{site:nflurl category="$Request.route.strCategory" status="$Request.route.strStatus" page="$Request.route.intPage"/}'>
{/if} {/if}
{/block} {/block}
@@ -59,7 +59,7 @@
<div class="container"> <div class="container">
<div class="row row-section"> <div class="row row-section">
<div class="layout layout-col3"> <div class="layout layout-col3">
{foreach $arrTopNovel as $key=>$Novel } {novel:list count="6" sort_type="tuijian" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<div class="item"> <div class="item">
<div class="image"> <div class="image">
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'> <a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
@@ -80,39 +80,36 @@
</dd> </dd>
</dl> </dl>
</div> </div>
{/foreach} {/novel:list}
</div> </div>
</div> </div>
<div class="sort_nav"> <div class="sort_nav">
<p> <p>
<span>分类:</span> <span>分类:</span>
<a class='{eq name="strCategory" value="all"}on {/eq}' <a class='{eq name="$Request.route.strCategory" value="all"}on {/eq}'
href='{$strPcPath}{site:nflurl gender="" category="all" status="$strStatus" order="$strOrder" page="$intPage"/}'>不限</a> href='{$strPcPath}{site:nflurl category="all" status="$Request.route.strStatus" order="$Request.route.strOrder" page="$Request.route.intPage"/}'>不限</a>
{foreach $arrCategoryAll.man as $key=>$vo } {novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
<a class='{eq name="strCategory" value="$key"}on {/eq}' <a class='{eq name="$Request.route.strCategory" value="$strCategoryPinyin"}on {/eq}'
href='{$strPcPath}{site:nflurl gender="" category="$key" status="$strStatus" order="$strOrder" page="$intPage"/}'>{$vo}</a> href='{$strPcPath}{site:nflurl category="$strCategoryPinyin" status="$Request.route.strStatus" order="$Request.route.strOrder" page="$Request.route.intPage"/}'>{$strCategoryName}</a>
{/novel:category}
{/foreach}
{foreach $arrCategoryAll.women as $key=>$vo }
<a class='{eq name="strCategory" value="$key"}on {/eq}'
href='{$strPcPath}{site:nflurl gender="" category="$key" status="$strStatus" order="$strOrder" page="$intPage"/}'>{$vo}</a>
{/foreach}
</p> </p>
<p><span>排序:</span> <p><span>排序:</span>
{foreach $arrOrder as $key=>$orderName } {novel:sort d_key="key" d_val="strSortName"}
<a href='{$strPcPath}{site:nflurl gender="" category="$strCategory" status="$strStatus" order="$key" page="$intPage"/}' <a href='{$strPcPath}{site:nflurl category="$Request.route.strCategory" status="$Request.route.strStatus" order="$key" page="$Request.route.intPage"/}'
class='{eq name="strOrder" value="$key"}on {/eq}'>{$orderName}</a> class='{eq name="$Request.route.strOrder" value="$key"}on {/eq}'>{$strSortName}</a>
{/foreach} {/novel:sort}
</p> </p>
<p><span>状态:</span> <p><span>状态:</span>
<a href='{$strPcPath}{site:nflurl gender="" category="$strCategory" status="all" order="$strOrder" page="$intPage"/}' {novel:status d_key="key" d_val="strStatusName"}
class='{eq name="strStatus" value="all"}on {/eq}' btn="search_category">全部</a> <a href='{$strPcPath}{site:nflurl category="$Request.route.strCategory" status="$key" order="$Request.route.strOrder" page="$Request.route.intPage"/}'
<a href='{$strPcPath}{site:nflurl gender="" category="$strCategory" status="lianzai" order="$strOrder" page="$intPage"/}' class='{eq name="$Request.route.strStatus" value="$key"}on {/eq}'
class='{eq name="strStatus" value="lianzai"}on {/eq}' btn="search_category">连载</a> btn="search_category">{$strStatusName}</a>
<a href='{$strPcPath}{site:nflurl gender="" category="$strCategory" status="wanjie" order="$strOrder" page="$intPage"/}' {/novel:status}
class='{eq name="strStatus" value="wanjie"}on {/eq}' btn="search_category">完本</a>
</p> </p>
</div> </div>
@@ -120,7 +117,8 @@
<div class="layout layout2 layout-col1 fr"> <div class="layout layout2 layout-col1 fr">
<h2 class="layout-tit">最新入库小说</h2> <h2 class="layout-tit">最新入库小说</h2>
<ul class="txt-list txt-list-row3"> <ul class="txt-list txt-list-row3">
{foreach $arrNovel as $key=>$Novel } {novel:list count="30" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data"
cache_life="86400"}
<li> <li>
<span class="s1">[{$Novel->n_category ?? ''}</span> <span class="s1">[{$Novel->n_category ?? ''}</span>
<span class="s2"><a <span class="s2"><a
@@ -128,42 +126,46 @@
<span class="s5"><a <span class="s5"><a
href='{$strPcPath}{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></span> href='{$strPcPath}{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></span>
</li> </li>
{/foreach} {/novel:list}
</ul> </ul>
</div> </div>
<div class="layout layout2 layout-col2 fl"> <div class="layout layout2 layout-col2 fl">
<h2 class="layout-tit">最近更新小说列表</h2> <h2 class="layout-tit">最近更新小说列表</h2>
<ul class="txt-list txt-list-row5"> <ul class="txt-list txt-list-row5">
{foreach $arrNovel as $key=>$Novel } {novel:pager page="1" limit="30" n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_val="Novel" n_num="n_num"
p_val="page_data" button_num="10" cache_life="86400" func="generateCategoryPager"}
<li> <li>
<span class="s1">[{$Novel->n_category ?? ''}</span> <span class="s1">[{$Novel->n_category ?? ''}</span>
<span class="s2"><a <span class="s2"><a
href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a></span> href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a></span>
<span class="s3"><a <span class="s3"><a
href='{$strPcPath}{site:lcpurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}' href='{$strPcPath}{site:lcpurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin" /}'
title="{$Novel->n_latest_chapter_name ?? 'null'}">{$Novel->n_latest_chapter_name ?? title="{$Novel->n_latest_chapter_name ?? 'null'}">{$Novel->n_latest_chapter_name ??
'null'}</a></span> 'null'}</a></span>
<span class="s4">{$Novel.n_author}</span> <span class="s4">{$Novel.n_author}</span>
<span class="s5">{:date('m-d')}</span> <span class="s5">{:date('m-d')}</span>
</li> </li>
{/foreach} {/novel:pager}
</ul> </ul>
</div> </div>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
<div class="row sort_page_num"> <div class="row sort_page_num">
{volist name="arrPaginator" id="vo" key="k"} {volist name="page_data" id="vo" key="k"}
{switch $vo.label} {switch $vo.label}
{case value="上一页"} {case value="上一页"}
{if $intPage == 1} {if $Request.route.intPage == 1}
<span>«</span> <span>«</span>
{else} {else}
<a href="{$strPcPath}{$vo.url}">«</a> <a href="{$strPcPath}{$vo.url}">«</a>
{/if} {/if}
{/case} {/case}
{case value="下一页"} {case value="下一页"}
{if $intPage >= $intTotalPage} {if $Request.route.intPage >= $n_num}
<span>»</span> <span>»</span>
{else} {else}
<a href="{$strPcPath}{$vo.url}">»</a> <a href="{$strPcPath}{$vo.url}">»</a>

View File

@@ -1,7 +1,7 @@
{extend name="basePc" /} {extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETNOVELCATALOG@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETNOVELCATALOG@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETNOVELCATALOG@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
<!-- 社交媒体标签 --> <!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" /> <meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />

View File

@@ -1,7 +1,7 @@
{extend name="basePc" /} {extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETNOVELCHAPTER@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETNOVELCHAPTER@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETNOVELCHAPTER@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" /> <meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />

View File

@@ -1,13 +1,16 @@
{extend name="basePc" /} {extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="title"}{site:replace code="NOVEL@GETNOVELINFO@TITLE"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}{/block}
{block name="head"} {block name="head"}
{novel:info n_id="$Request.route.n_id" n_key="arrNovel" n_forge_id="0" /}
{site:grm page_code="pc_novel_info" diff="$arrNovel.n_id" num="100" g_key="arrGrm" /}
<!-- 社交媒体标签 --> <!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" /> <meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" /> <meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:url" <meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' /> content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" /> <meta property="og:type" content="book" />
<meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" /> <meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" /> <meta property="og:site_name" content="{$DomainModel->d_name}" />
@@ -15,12 +18,12 @@
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}"> <meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}"> <meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<meta property="og:novel:read_url" <meta property="og:novel:read_url"
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$intFirstChapterSort"/}'> content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}"> <meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}"> <meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.c_name ?? ''}"> <meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<meta property="og:novel:latest_chapter_url" <meta property="og:novel:latest_chapter_url"
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'> content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 可选:支持 Twitter Card --> <!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" /> <meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
@@ -44,7 +47,7 @@
}, },
"datePublished": "{$arrNovel['n_update_time'] ?? time()}", "datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}", "image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}', "url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}", "genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN", "inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook", "bookFormat": "https://{$DomainModel->d_domain}/EBook",
@@ -60,7 +63,7 @@
{/block} {/block}
{block name="head-css"} {block name="head-css"}
<link rel="canonical" <link rel="canonical"
href='{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'> href='{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{/block} {/block}
{block name="logo-html"} {block name="logo-html"}
<h2> <h2>
@@ -82,7 +85,7 @@
<div class="layout layout-col1"> <div class="layout layout-col1">
<h2 class="layout-tit xs-hidden"> <h2 class="layout-tit xs-hidden">
<a href="{$strPcPath}/">{$DomainModel->d_name}</a>&gt; <a href="{$strPcPath}/">{$DomainModel->d_name}</a>&gt;
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'> <a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{$arrNovel['n_name']} {$arrNovel['n_name']}
</a> </a>
</h2> </h2>
@@ -104,15 +107,15 @@
<a rel="nofollow" onclick="addBookshelfFun()">加入书架</a> <a rel="nofollow" onclick="addBookshelfFun()">加入书架</a>
<i class="xs-hidden"></i> <i class="xs-hidden"></i>
<a <a
href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'>章节目录</a> href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
<i class="xs-hidden"></i> <i class="xs-hidden"></i>
<a <a
href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$intFirstChapterSort"/}'>开始阅读</a> href='{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a>
</p> </p>
<p>最后更新:{$arrNovel.n_update_time ?? ''} </p> <p>最后更新:{$arrNovel.n_update_time ?? ''} </p>
<p>最新章节:<a <p>最新章节:<a
href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'> href='{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{$arrLatestChapter->c_name ?? ""}</a></p> {$arrNovel.n_latest_chapter_name ?? ""}</a></p>
</div> </div>
</div> </div>
<div class="desc xs-hidden">{$arrNovel.n_description ?? ''}</div> <div class="desc xs-hidden">{$arrNovel.n_description ?? ''}</div>
@@ -122,87 +125,55 @@
<div class="layout layout-col1"> <div class="layout layout-col1">
<h2 class="layout-tit">《{$arrNovel.n_name ?? ''}》{$arrNovel.n_name ?? '章节'}</h2> <h2 class="layout-tit">《{$arrNovel.n_name ?? ''}》{$arrNovel.n_name ?? '章节'}</h2>
<div class="first_txt"> <div class="first_txt">
{$strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}... {$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
<p>相邻推荐: <p>相邻推荐:
{volist name="arrNovel.n_forge_novel" id="ForgeNovel" key="key"} {volist name="arrNovel.n_forge_novel" id="ForgeNovel" key="key"}
{if $key<20 } {$arrGRM[$key+20]|raw} {/if} <a {if $key<20 } {$arrGrm[$key+20]|raw} {/if} <a
href='{$strPcPath}{site:nnurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" n_fid="$ForgeNovel[n_forge_id]"/}' href='{$strPcPath}{site:nnurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" n_fid="$ForgeNovel.n_forge_id"/}'
class="red">{$ForgeNovel.n_forge_title}</a> class="red">{$ForgeNovel.n_forge_title}</a>
{/volist} {/volist}
{volist name='arrRelateveNovel' id='Novel'} {volist name='$arrNovel.arrRelateveNovel' id='Novel'}
<a <a
href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'>{$Novel.n_name}</a>&nbsp;&nbsp; href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/volist} {/volist}
</p> </p>
</div> </div>
</div> </div>
</div> </div>
{if $strPageCode == 'detail'}
<div class="row row-section"> <div class="row row-section">
<div class="layout layout-col1"> <div class="layout layout-col1">
<h2 class="layout-tit">《{$arrNovel.n_name}》最新章节</h2> <h2 class="layout-tit">《{$arrNovel.n_name}》最新章节</h2>
<ul class="section-list fix"> <ul class="section-list fix">
{volist name='arrChapter' id='Chapter'} {chapter:list count="12" sort_type="dao" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="86400"}
<li><a <li><a
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>{$Chapter.c_name}</a> href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>{$Chapter.c_name}</a>
</li> </li>
{/volist} {/chapter:list}
</ul> </ul>
<h2 class="layout-tit">《{$arrNovel.n_name}》章节列表</h2> <h2 class="layout-tit">《{$arrNovel.n_name}》章节列表</h2>
<ul class="fix section-list"> <ul class="fix section-list">
{volist name='arrChapterAsc' id='Chapter'} {chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="86400"}
<li><a <li><a
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>{$Chapter.c_name}</a> href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>{$Chapter.c_name}</a>
</li> </li>
{/volist} {/chapter:list}
</ul><a </ul><a
href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}' href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn-mulu">查看更多章节...</a> class="btn-mulu">查看更多章节...</a>
</div> </div>
</div> </div>
{else}
<div class="row row-section">
<div class="layout layout-col1">
<h2 class="layout-tit">《{$arrNovel.n_name}》章节列表(第{$intPage}页)切换倒序/正序:
{if $strOrder == 'zheng'}
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="dao" page="1"/}'
class="habt y">点击切换倒序</a>
{else}
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'
class="habt y">点击切换正序</a>
{/if}
</h2>
<!-- 目录下拉分页-->
{include file="pc/public/allChapterPage" /}
<ul class="section-list fix ycxsid">
{volist name='arrPage.data' id='Chapter'}
<li>
<a
href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'>
{$Chapter.c_name}
</a>
</li>
{/volist}
</ul>
<!-- 目录下拉分页-->
{include file="pc/public/allChapterPage" /}
</div>
</div>
{/if}
<div class="row row-section"> <div class="row row-section">
<h2 class="layout-tit">已完结热门小说推荐</h2> <h2 class="layout-tit">已完结热门小说推荐</h2>
<div class="layout layout-col3"> <div class="layout layout-col3">
{foreach $arrEndNovel as $key=>$Novel } {novel:list count="6" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<div class="item"> <div class="item">
<div class="image"> <div class="image">
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'> <a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<img style="min-height:120px;" class="lazyload-img" src="/static/img/default.jpg" <img style="min-height:120px;" class="lazyload-img" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}" data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"> alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
@@ -210,15 +181,15 @@
</div> </div>
<dl> <dl>
<dt><span>{$Novel.n_author}</span><a <dt><span>{$Novel.n_author}</span><a
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>{$Novel.n_name}</a> href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>{$Novel.n_name}</a>
</dt> </dt>
<dd style="height:90px"><a <dd style="height:90px"><a
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
style="color: #555">{$Novel.n_description}</a> style="color: #555">{$Novel.n_description}</a>
</dd> </dd>
</dl> </dl>
</div> </div>
{/foreach} {/novel:list}
</div> </div>
</div> </div>

View File

@@ -1,7 +1,7 @@
{extend name="basePc" /} {extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="NOVEL@GETSEARCHNOVEL@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="NOVEL@GETSEARCHNOVEL@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="NOVEL@GETSEARCHNOVEL@DESCRIPTION"}{/block}
{block name='nav-active-class'}home{/block} {block name='nav-active-class'}home{/block}
{block name="title"}{/block} {block name="title"}{/block}

View File

@@ -1,7 +1,7 @@
{extend name="basePc" /} {extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block} {block name="title"}{site:replace code="INDEX@INDEX@TITLE"}{/block}
{block name="keywords"}{$strKeywords??''}{/block} {block name="keywords"}{site:replace code="INDEX@INDEX@KEYWORDS"}{/block}
{block name="description"}{$strDescription??''}{/block} {block name="description"}{site:replace code="INDEX@INDEX@DESCRIPTION"}{/block}
{block name="head-css"} {block name="head-css"}
<link rel="canonical" href="https://{$DomainModel->d_domain}/"> <link rel="canonical" href="https://{$DomainModel->d_domain}/">
{/block} {/block}
@@ -27,7 +27,8 @@
<div class="container biqunaicc"> <div class="container biqunaicc">
<div class="row"> <div class="row">
<div class="layout layout-col2"> <div class="layout layout-col2">
{foreach $arrRecommendSerializationNovel as $key=>$Novel } {novel:list count="4" sort_type="tuijian" n_status="lianzai" d_key="d_key" d_val="Novel" p_val="page_data"
cache_life="86400"}
<div class="item"> <div class="item">
<div class="image"> <div class="image">
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'> <a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
@@ -50,32 +51,32 @@
</dd> </dd>
</dl> </dl>
</div> </div>
{/foreach} {/novel:list}
</div> </div>
<div class="layout layout-col1"> <div class="layout layout-col1">
<h2 class="layout-tit">经典推荐</h2> <h2 class="layout-tit">经典推荐</h2>
<ul class="txt-list txt-list-row3"> <ul class="txt-list txt-list-row3">
{foreach $arrRecommendEndNovel as $key=>$Novel } {novel:list count="9" sort_type="tuijian" n_status="wanjie" d_key="d_key" d_val="Novel"
p_val="page_data" cache_life="86400"}
<li> <li>
<span class="s1">[{$Novel->n_category ?? ''}</span> <span class="s1">[{$Novel->n_category ?? ''}</span>
<span class="s2"><a <span class="s2"><a
href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a></span> href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a></span>
<span class="s5"><a href='{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></span> <span class="s5"><a href='{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></span>
</li> </li>
{/foreach} {/novel:list}
</ul> </ul>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="layout"> <div class="layout">
{foreach $arrCategoryAll as $category} {novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
{foreach $arrCategoryAll as $category}
<div class="tp-box"> <div class="tp-box">
<h2>{$category.xsfl_name}</h2> <!-- 分类标题 --> <h2>{$strCategoryName}</h2> <!-- 分类标题 -->
<div class="top"> <div class="top">
{foreach $arrNovels[$category.xsfl_source_id] as $key2 => $Novel} {novel:list count="1" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel"
{if $key2 == 0} p_val="page_data" cache_life="86400"}
<div class="image"> <div class="image">
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'> <a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
<img class="lazyload-img" src="/static/img/default.jpg" <img class="lazyload-img" src="/static/img/default.jpg"
@@ -90,21 +91,18 @@
<dd><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' <dd><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'
style="color: #555">{$Novel.n_description ?? ''}</a></dd> style="color: #555">{$Novel.n_description ?? ''}</a></dd>
</dl> </dl>
{/if} {/novel:list}
{/foreach}
</div> </div>
<ul> <ul>
{foreach $arrNovels[$category.xsfl_source_id] as $key2 => $Novel} {novel:list count="12" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel"
{if $key2 >= 1} p_val="page_data" cache_life="86400"}
<li><a <li><a
href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a>/<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a>/<a
href='{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></li> href='{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></li>
{/if} {/novel:list}
{/foreach}
</ul> </ul>
</div> </div>
{/foreach} {/novel:category}
{/foreach}
</div> </div>
</div> </div>
@@ -112,7 +110,8 @@
<div class="layout layout2 layout-col1 fr"> <div class="layout layout2 layout-col1 fr">
<h2 class="layout-tit">最新入库小说</h2> <h2 class="layout-tit">最新入库小说</h2>
<ul class="txt-list txt-list-row3"> <ul class="txt-list txt-list-row3">
{novel:list count="50" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="0"} {novel:list count="50" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data"
cache_life="86400"}
<li> <li>
<span class="s1">[{$Novel->n_category ?? ''}]</span> <span class="s1">[{$Novel->n_category ?? ''}]</span>
<span class="s2"><a <span class="s2"><a
@@ -125,13 +124,14 @@
<div class="layout layout2 layout-col2 fl"> <div class="layout layout2 layout-col2 fl">
<h2 class="layout-tit">最近更新小说列表</h2> <h2 class="layout-tit">最近更新小说列表</h2>
<ul class="txt-list txt-list-row5"> <ul class="txt-list txt-list-row5">
{novel:list count="50" sort_type="update" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="0"} {novel:list count="50" sort_type="update" d_key="d_key" d_val="Novel" p_val="page_data"
cache_life="86400"}
<li> <li>
<span class="s1">[{$Novel->n_category ?? ''}]</span> <span class="s1">[{$Novel->n_category ?? ''}]</span>
<span class="s2"><a <span class="s2"><a
href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a></span> href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel->n_name}</a></span>
<span class="s3"><a <span class="s3"><a
href='{$strPcPath}{site:lcpurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}' href='{$strPcPath}{site:lcpurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin" /}'
title="{$Novel->n_latest_chapter_name ?? 'null'}">{$Novel->n_latest_chapter_name ?? title="{$Novel->n_latest_chapter_name ?? 'null'}">{$Novel->n_latest_chapter_name ??
'null'}</a></span> 'null'}</a></span>
<span class="s4"><a href='{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></span> <span class="s4"><a href='{site:souurl key="$Novel->n_author" p="1"/}'>{$Novel->n_author}</a></span>

View File

@@ -55,9 +55,12 @@
<span>最新标签</span> <span>最新标签</span>
</h3> </h3>
<div class="rec-focus" style="font-size:12px;"> <div class="rec-focus" style="font-size:12px;">
{foreach $arrForgeNovel as $key=>$Novel } {novel:list count="10" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<a href="/">{$Novel.n_name}</a>&nbsp;&nbsp; {volist name='Novel.n_forge_novel' id='ForgeNovel'}
{/foreach} <a
href='{site:nnurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" n_fid="$ForgeNovel[n_forge_id]"/}'>{$ForgeNovel.n_forge_title}</a>&nbsp;&nbsp;
{/volist}
{/novel:list}
<a href="/sitemap_index.xml">XML地图</a>&nbsp;&nbsp; <a href="/sitemap_index.xml">XML地图</a>&nbsp;&nbsp;
</div> </div>
</div> </div>

View File

@@ -49,12 +49,9 @@
<!-- <li><a href="/">首 页</a></li> <!-- <li><a href="/">首 页</a></li>
<li><a href="/nindex">小说首页</a></li> --> <li><a href="/nindex">小说首页</a></li> -->
<li><a href="{$strPcPath}/">首 页</a></li> <li><a href="{$strPcPath}/">首 页</a></li>
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
{foreach $arrCategoryAll as $Sexkey=>$SexCategory } <li><a href='{$strPcPath}{site:nflurl category="$strCategoryPinyin" status="all" order="all" page="1"/}'>{$strCategoryName}</a></li>
{foreach $SexCategory as $CategoryPinyin=>$CategoryName } {/novel:category}
<li><a href='{$strPcPath}{site:nflurl gender="" category="$CategoryPinyin" status="all" order="all" page="1"/}'>{$CategoryName}</a></li>
{/foreach}
{/foreach}
<li><a href="{$strPcPath}{$strHistoryUrlTemp}">阅读记录</a></li> <li><a href="{$strPcPath}{$strHistoryUrlTemp}">阅读记录</a></li>
</ul> </ul>
@@ -66,9 +63,12 @@
<div class="layout layout3 layout-col3"> <div class="layout layout3 layout-col3">
<h2 class="layout-tit">最新标签</h2> <h2 class="layout-tit">最新标签</h2>
<ul class="txt-list txt-list-row5 tag_news"> <ul class="txt-list txt-list-row5 tag_news">
{foreach $arrForgeNovel as $key=>$Novel } {novel:list count="10" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name}</a>&nbsp;&nbsp; {volist name='Novel.n_forge_novel' id='ForgeNovel'}
{/foreach} <a
href='{site:nnurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" n_fid="$ForgeNovel[n_forge_id]"/}'>{$ForgeNovel.n_forge_title}</a>&nbsp;&nbsp;
{/volist}
{/novel:list}
<a href="/sitemap_index.xml">XML地图</a> <a href="/sitemap_index.xml">XML地图</a>
</ul> </ul>
</div> </div>

View File

@@ -346,6 +346,7 @@ class NovelService
$arrParams = [ $arrParams = [
'page' => max((int)($arrParams['page'] ?? 1), 1), 'page' => max((int)($arrParams['page'] ?? 1), 1),
'limit' => (int)($arrParams['limit'] ?? 10), 'limit' => (int)($arrParams['limit'] ?? 10),
'button_num' => (int)($arrParams['button_num'] ?? 0),
'n_category' => (string)($arrParams['n_category'] ?? ''), 'n_category' => (string)($arrParams['n_category'] ?? ''),
'sort_type' => (string)($arrParams['sort_type'] ?? ''), 'sort_type' => (string)($arrParams['sort_type'] ?? ''),
'n_status' => (string)($arrParams['n_status'] ?? ''), 'n_status' => (string)($arrParams['n_status'] ?? ''),
@@ -481,6 +482,7 @@ class NovelService
$arrResult = [ $arrResult = [
'data' => $arrNovel['data'], 'data' => $arrNovel['data'],
'pages' => $arrNovel['pages'],
'p_data' => $arrPager, 'p_data' => $arrPager,
]; ];
@@ -500,13 +502,36 @@ class NovelService
$strKey = $arrParams['key']; $strKey = $arrParams['key'];
$intPage = $arrNovel['page']; $intPage = $arrNovel['page'];
$intLimit = $arrNovel['limit']; $intLimit = $arrNovel['limit'];
$intButtomNum = 10; $intButtomNum = $arrParams['button_num'];
$strBaseUrl = app(NovelService::class)->getNovelSearchUrl($strKey, '{page}'); $strBaseUrl = app(NovelService::class)->getNovelSearchUrl($strKey, '{page}');
$arrPaginator = CusteomPage02::generate($intPage, $arrNovel['total'], $intLimit, $strBaseUrl, $intButtomNum); $arrPaginator = CusteomPage02::generate($intPage, $arrNovel['total'], $intLimit, $strBaseUrl, $intButtomNum);
return $arrPaginator; return $arrPaginator;
} }
/**
* 书库/分类定制分页
*
* @param array $arrFilter 查询条件字段
* @param array $arrSort 查询排序字段
* @param array $arrNovel 查询出来的数据
* @return array
*/
public function generateCategoryPager(array $arrParams, array $arrSort, array $arrNovel): array
{
$strGender = $arrParams['n_sex'];
$strCategory = $arrParams['n_category'];
$strStatus = $arrParams['n_status'];
$strOrder = $arrParams['sort_type'];
$intPage = $arrNovel['page'];
$intLimit = $arrNovel['limit'];
$intButtomNum = $arrParams['button_num'];
$strBaseUrl = app(NovelService::class)->getNovelCategoryUrl($strGender, $strCategory, $strStatus, $strOrder, '{page}');
$arrPaginator = CusteomPage02::generate($intPage, $arrNovel['total'], $intLimit, $strBaseUrl, $intButtomNum);
return $arrPaginator;
}
/** /**
* 根据NId获取小说详情 * 根据NId获取小说详情
@@ -534,7 +559,6 @@ class NovelService
$arrNovel['n_category_sex_en'] = $arrNovel['n_category_sex_en'] ?? 'man'; $arrNovel['n_category_sex_en'] = $arrNovel['n_category_sex_en'] ?? 'man';
// 最后章节 // 最后章节
$arrLatestChapter = $this->ChapterModel->getLatestChapterByNId($intNId); $arrLatestChapter = $this->ChapterModel->getLatestChapterByNId($intNId);
// 第一章 // 第一章
@@ -554,14 +578,7 @@ class NovelService
} }
} }
// 最近五个章节
$arrChapter = $this->ChapterModel->findMany([
'n_id' => $intNId,
'c_page' => 0,
], 10, ['c_sort_num' => -1]);
// 点击数 // 点击数
$arrNovelClicks = $this->NovelClicksModel->getStats($intNId); $arrNovelClicks = $this->NovelClicksModel->getStats($intNId);
// 推荐小说 // 推荐小说
@@ -582,7 +599,10 @@ class NovelService
'strNovelStatus' => $arrNovel['n_status'], 'strNovelStatus' => $arrNovel['n_status'],
'strNovelDescription' => $arrNovel['n_description'], 'strNovelDescription' => $arrNovel['n_description'],
]); ]);
$arrNovel['intFirstChapterSort'] = $intFirstChapterSort;
$arrNovel['arrNovelClicks'] = $arrNovelClicks;
$arrNovel['arrRelateveNovel'] = $arrRelateveNovel;
$arrNovel['strFocus'] = $strFocus;
return $arrNovel; return $arrNovel;
} }

View File

@@ -81,10 +81,30 @@ class SiteContext
*/ */
public function initCfg() public function initCfg()
{ {
// 全局使用的URL模板
$strPcUrlTemp = $this->DomainModel->getFomartSubject('PC_URL_PATH','',false);
$strNanUrlTemp = $this->DomainModel->getFomartSubject('NAN_SHENG_URL','',false);
$strNvUrlTemp = $this->DomainModel->getFomartSubject('NV_SHENG_URL','',false);
$strCategoryIndexUrlTemp = $this->DomainModel->getFomartSubject('CATEGORY_INDEX_URL','',false);
$strRankUrlTemp = $this->DomainModel->getFomartSubject('RANK_INFO_URL','',false);
$strSearchIndexUrlTemp = $this->DomainModel->getFomartSubject('SEARCH_INDEX_URL','',false);
$strHistoryUrlTemp = $this->DomainModel->getFomartSubject('HISTORY_INFO_URL','',false);
$strBookShelfUrlTemp = $this->DomainModel->getFomartSubject('SHUJIA_INFO_URL','',false);
$strUserUrlTemp = $this->DomainModel->getFomartSubject('USER_INFO_URL','',false);
View::assign("strPcPath", $strPcUrlTemp);
View::assign("strNanUrlTemp", $strNanUrlTemp);
View::assign("strNvUrlTemp", $strNvUrlTemp);
View::assign("strCategoryIndexUrlTemp", $strCategoryIndexUrlTemp);
View::assign("strRankUrlTemp", $strRankUrlTemp);
View::assign("strSearchIndexUrlTemp", $strSearchIndexUrlTemp);
View::assign("strHistoryUrlTemp", $strHistoryUrlTemp);
View::assign("strBookShelfUrlTemp", $strBookShelfUrlTemp);
View::assign("strUserUrlTemp", $strUserUrlTemp);
View::assign('Request', $this->Request); View::assign('Request', $this->Request);
View::assign('DomainModel', $this->DomainModel); View::assign('DomainModel', $this->DomainModel);
View::assign('TemplatesModel', $this->TemplatesModel); View::assign('TemplatesModel', $this->TemplatesModel);
View::assign('arrCategoryAll', CategoryModel::$arrCategoryAll);
ConverterMovel::setVal([ ConverterMovel::setVal([
'strSiteName' => $this->DomainModel->d_name, 'strSiteName' => $this->DomainModel->d_name,
@@ -133,13 +153,22 @@ class SiteContext
* *
* @return string * @return string
*/ */
public function getHomeView(): string public function getHomeView(string $strPlatform): string
{ {
if ($strPlatform == 'h5') {
if ($this->DomainModel->n_id > 0) { if ($this->DomainModel->n_id > 0) {
$strView = 'test/test01/faker.html'; $strView = 'novel/getNovelInfo.html';
} else { } else {
$strView = 'test/test01/index.html'; $strView = 'index/index.html';
} }
}else{
if ($this->DomainModel->n_id > 0) {
$strView = 'pc/getNovelInfo.html';
} else {
$strView = 'pc/index.html';
}
}
return $strView; return $strView;
} }
} }

View File

@@ -33,20 +33,23 @@ class Novel extends TagLib
{ {
$page = $tag['page'] ?? '0'; $page = $tag['page'] ?? '0';
$limit = $tag['limit'] ?? '10'; $limit = $tag['limit'] ?? '10';
$button_num = $tag['button_num'] ?? '10';
$n_category = $tag['n_category'] ?? "all"; $n_category = $tag['n_category'] ?? "all";
$sort_type = $tag['sort_type'] ?? ""; $sort_type = $tag['sort_type'] ?? "";
$n_status = $tag['n_status'] ?? "all"; $n_status = $tag['n_status'] ?? "";
$n_sex = $tag['n_sex'] ?? "all"; $n_sex = $tag['n_sex'] ?? "";
$key = $tag['key'] ?? ""; $key = $tag['key'] ?? "";
$diff_key = $tag['diff_key'] ?? ""; $diff_key = $tag['diff_key'] ?? "";
$cache_life = $tag['cache_life'] ?? '0'; $cache_life = $tag['cache_life'] ?? '0';
$d_key = $tag['d_key'] ?? 'd_key'; $d_key = $tag['d_key'] ?? 'd_key';
$d_val = $tag['d_val'] ?? 'd_val'; $d_val = $tag['d_val'] ?? 'd_val';
$p_val = $tag['p_val'] ?? 'p_val'; $p_val = $tag['p_val'] ?? 'p_val';
$n_num = $tag['n_num'] ?? 'n_num';
$func = $tag['func']; $func = $tag['func'];
$page = $this->customBuildVar($page); $page = $this->customBuildVar($page);
$limit = $this->customBuildVar($limit); $limit = $this->customBuildVar($limit);
$button_num = $this->customBuildVar($button_num);
$n_category = $this->customBuildVar($n_category); $n_category = $this->customBuildVar($n_category);
$sort_type = $this->customBuildVar($sort_type); $sort_type = $this->customBuildVar($sort_type);
$n_status = $this->customBuildVar($n_status); $n_status = $this->customBuildVar($n_status);
@@ -61,6 +64,7 @@ class Novel extends TagLib
\$novelData = app(\\app\\services\\NovelService::class)->getNovelPager([ \$novelData = app(\\app\\services\\NovelService::class)->getNovelPager([
'page' => {$page}, 'page' => {$page},
'limit' => {$limit}, 'limit' => {$limit},
'button_num' => {$button_num},
'n_category' => {$n_category}, 'n_category' => {$n_category},
'sort_type' => {$sort_type}, 'sort_type' => {$sort_type},
'n_status' => {$n_status}, 'n_status' => {$n_status},
@@ -73,6 +77,7 @@ class Novel extends TagLib
if (isset(\$novelData['data']) && is_array(\$novelData['data'])): if (isset(\$novelData['data']) && is_array(\$novelData['data'])):
\${$p_val} = \$novelData['p_data'] ?? []; \${$p_val} = \$novelData['p_data'] ?? [];
\${$n_num} = \$novelData['pages'] ?? [];
?> ?>
EOT; EOT;
$strParse .= <<<EOT $strParse .= <<<EOT

View File

@@ -85,9 +85,12 @@ EOD;
$intNId = isset($tag['n_id']) ? $tag['n_id'] : ''; $intNId = isset($tag['n_id']) ? $tag['n_id'] : '';
$strNPy = isset($tag['n_py']) ? $tag['n_py'] : ''; $strNPy = isset($tag['n_py']) ? $tag['n_py'] : '';
$intNId = $this->customBuildVar($intNId);
$strNPy = $this->customBuildVar($strNPy);
$strParse = <<<EOD $strParse = <<<EOD
<?php <?php
\$strUrl = app(\\app\\services\\NovelService::class)->getNovelInfoUrl("{$intNId}","{$strNPy}"); \$strUrl = app(\\app\\services\\NovelService::class)->getNovelInfoUrl({$intNId},{$strNPy});
echo \$strUrl; echo \$strUrl;
?> ?>
EOD; EOD;
@@ -106,9 +109,13 @@ EOD;
$strNPy = isset($tag['n_py']) ? $tag['n_py'] : ''; $strNPy = isset($tag['n_py']) ? $tag['n_py'] : '';
$intNForgeId = isset($tag['n_fid']) ? $tag['n_fid'] : ''; $intNForgeId = isset($tag['n_fid']) ? $tag['n_fid'] : '';
$intNId = $this->customBuildVar($intNId);
$strNPy = $this->customBuildVar($strNPy);
$intNForgeId = $this->customBuildVar($intNForgeId);
$strParse = <<<EOD $strParse = <<<EOD
<?php <?php
\$strUrl = app(\\app\\services\\NovelService::class)->getForgeNovelInfoUrl("{$intNId}","{$strNPy}","{$intNForgeId}"); \$strUrl = app(\\app\\services\\NovelService::class)->getForgeNovelInfoUrl({$intNId},{$strNPy},{$intNForgeId});
echo \$strUrl; echo \$strUrl;
?> ?>
EOD; EOD;
@@ -128,9 +135,14 @@ EOD;
$intChapterSort = isset($tag['c_sort']) ? $tag['c_sort'] : ''; $intChapterSort = isset($tag['c_sort']) ? $tag['c_sort'] : '';
$intChapterPage = isset($tag['c_page']) ? $tag['c_page'] : ''; $intChapterPage = isset($tag['c_page']) ? $tag['c_page'] : '';
$intNId = $this->customBuildVar($intNId);
$strNPy = $this->customBuildVar($strNPy);
$intChapterSort = $this->customBuildVar($intChapterSort);
$intChapterPage = $this->customBuildVar($intChapterPage);
$strParse = <<<EOD $strParse = <<<EOD
<?php <?php
\$strUrl = app(\\app\\services\\NovelService::class)->getNovelChapterUrl("{$intNId}","{$strNPy}","{$intChapterSort}","{$intChapterPage}"); \$strUrl = app(\\app\\services\\NovelService::class)->getNovelChapterUrl({$intNId},{$strNPy},{$intChapterSort},{$intChapterPage});
echo \$strUrl; echo \$strUrl;
?> ?>
EOD; EOD;
@@ -148,9 +160,12 @@ EOD;
$intNId = isset($tag['n_id']) ? $tag['n_id'] : ''; $intNId = isset($tag['n_id']) ? $tag['n_id'] : '';
$strNPy = isset($tag['n_py']) ? $tag['n_py'] : ''; $strNPy = isset($tag['n_py']) ? $tag['n_py'] : '';
$intNId = $this->customBuildVar($intNId);
$strNPy = $this->customBuildVar($strNPy);
$strParse = <<<EOD $strParse = <<<EOD
<?php <?php
\$strUrl = app(\\app\\services\\NovelService::class)->getNovelLasterChapterUrl("{$intNId}","{$strNPy}"); \$strUrl = app(\\app\\services\\NovelService::class)->getNovelLasterChapterUrl({$intNId},{$strNPy});
echo \$strUrl; echo \$strUrl;
?> ?>
EOD; EOD;
@@ -170,9 +185,14 @@ EOD;
$strOrder = isset($tag['order']) ? $tag['order'] : ''; $strOrder = isset($tag['order']) ? $tag['order'] : '';
$intPage = isset($tag['page']) ? $tag['page'] : ''; $intPage = isset($tag['page']) ? $tag['page'] : '';
$intNId = $this->customBuildVar($intNId);
$strNPy = $this->customBuildVar($strNPy);
$strOrder = $this->customBuildVar($strOrder);
$intPage = $this->customBuildVar($intPage);
$strParse = <<<EOD $strParse = <<<EOD
<?php <?php
\$strUrl = app(\\app\\services\\NovelService::class)->getNovelCatalogUrl("{$intNId}","{$strNPy}","{$strOrder}","{$intPage}"); \$strUrl = app(\\app\\services\\NovelService::class)->getNovelCatalogUrl({$intNId},{$strNPy},{$strOrder},{$intPage});
echo \$strUrl; echo \$strUrl;
?> ?>
EOD; EOD;
@@ -193,9 +213,15 @@ EOD;
$strOrder = isset($tag['order']) ? $tag['order'] : ''; $strOrder = isset($tag['order']) ? $tag['order'] : '';
$intPage = isset($tag['page']) ? $tag['page'] : ''; $intPage = isset($tag['page']) ? $tag['page'] : '';
$strGender = $this->customBuildVar($strGender);
$strCategory = $this->customBuildVar($strCategory);
$strStatus = $this->customBuildVar($strStatus);
$strOrder = $this->customBuildVar($strOrder);
$intPage = $this->customBuildVar($intPage);
$strParse = <<<EOD $strParse = <<<EOD
<?php <?php
\$strUrl = app(\\app\\services\\NovelService::class)->getNovelCategoryUrl("{$strGender}","{$strCategory}","{$strStatus}","{$strOrder}","{$intPage}"); \$strUrl = app(\\app\\services\\NovelService::class)->getNovelCategoryUrl({$strGender},{$strCategory},{$strStatus},{$strOrder},{$intPage});
echo \$strUrl; echo \$strUrl;
?> ?>
EOD; EOD;
@@ -213,9 +239,12 @@ EOD;
$strKey = isset($tag['key']) ? $tag['key'] : ''; $strKey = isset($tag['key']) ? $tag['key'] : '';
$intPage = isset($tag['p']) ? $tag['p'] : ''; $intPage = isset($tag['p']) ? $tag['p'] : '';
$strKey = $this->customBuildVar($strKey);
$intPage = $this->customBuildVar($intPage);
$strParse = <<<EOD $strParse = <<<EOD
<?php <?php
\$strUrl = app(\\app\\services\\NovelService::class)->getNovelSearchUrl("{$strKey}","{$intPage}"); \$strUrl = app(\\app\\services\\NovelService::class)->getNovelSearchUrl({$strKey},{$intPage});
echo \$strUrl; echo \$strUrl;
?> ?>
EOD; EOD;

View File

@@ -24,10 +24,10 @@
{site:nflurl gender="all" category="$arrNovel[category_pinyin]" status="all" page="1"/} {site:nflurl gender="all" category="$arrNovel[category_pinyin]" status="all" page="1"/}
# 小说详情 url # 小说详情 url
{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/} {site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}
# 伪造小说详情 url # 伪造小说详情 url
{site:nnurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin" n_fid="$Novel->n_forge_id"/} {site:nnurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" n_fid="$ForgeNovel[n_forge_id]"/}
# 小说目录 url # 小说目录 url
{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" order="zheng" page="1"/} {site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" order="zheng" page="1"/}
@@ -108,14 +108,16 @@
$sort_type ?? "all"; # 排序方式 $sort_type ?? "all"; # 排序方式
$n_status ?? "all"; # 查询状态 $n_status ?? "all"; # 查询状态
$n_sex ?? "all"; # 查询性别 $n_sex ?? "all"; # 查询性别
$button_num ?? "10"; # 分页按钮数量
$diff_key ?? ""; # 缓存键值差异 $diff_key ?? ""; # 缓存键值差异
$cache_life ?? '0'; # 缓存时间如果需要开启缓存这个字段必须传而且必须大于0 $cache_life ?? '0'; # 缓存时间如果需要开启缓存这个字段必须传而且必须大于0
$d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称 $d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称
$d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称 $d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称
$p_val ?? 'p_val'; # 分页页码数据,这是一个数组。和之前控制器渲染的那个数组一致的。 $p_val ?? 'p_val'; # 分页页码数据,这是一个数组。和之前控制器渲染的那个数组一致的。
$n_num ?? 'n_num'; # 数据总量。和之前控制器渲染的那个 intTotalPage 一致的。
$func ; # 这个参数是一个回调方法名,用来渲染分页页码数据的,该方法需要在 NovelService 类里面实现func(array $arrParams, array $arrSort, array $arrNovel) $func ; # 这个参数是一个回调方法名,用来渲染分页页码数据的,该方法需要在 NovelService 类里面实现func(array $arrParams, array $arrSort, array $arrNovel)
# 样例 # 样例
{novel:pager page="1" limit="10" n_category="$Request.route.category" d_key="d_key" d_val="novel" p_val="page_data" cache_life="1000" func="generateSearchPager"} {novel:pager page="1" limit="10" n_category="$Request.route.category" d_key="d_key" d_val="novel" p_val="page_data" button_num="3" cache_life="1000" func="generateSearchPager"}
<li> <li>
Index: {$d_key} Index: {$d_key}
Title: {$novel.n_name} Title: {$novel.n_name}