修改小说伪造小说详情页面 取消伪造列表随机

This commit is contained in:
make
2025-07-31 02:02:32 +08:00
parent 95dd6cea8a
commit f115c7f480
17 changed files with 3003 additions and 240 deletions

View File

@@ -0,0 +1,320 @@
$Novel.n_id{extend name="baseH5" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "首页",
"item": "https://{$DomainModel->d_domain}"
},
{
"@type": "ListItem",
"position": 2,
"name": "{$arrNovel.n_category ??''}",
"item": 'https://{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
},
{
"@type": "ListItem",
"position": 3,
"name": "{$arrNovel['n_name']}",
"item": '{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
}
]
}
</script>
{/block}
{block name="head-js"}
{/block}
{block name="body-class"}novel_info{/block}
{block name="logo-html"}
<h2 class="bookname">
<a href="/" style="color:#ffffff">{$DomainModel->d_name}</a>
</h2>
{/block}
{block name="nav-html"}
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a href='{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<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">
<span itemprop="name">{$arrNovel['n_name']}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
</nav>
{/block}
{block name="main"}
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
<div class="block-box">
<div class="book-main">
<div class="book-img">
<img src="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img">
</div>
<div class="book-info">
<div class="bookname">
<h2>{$arrNovel.n_name}</h2><span class="author">{$arrNovel.n_author}
</span>
</div>
<p class="tag"><span class="blue">{$arrNovel.n_category}</span><span
class="green">{$arrNovel.n_status}</span>
</p>
<p class="update"><span>最近更新:</span><a href='{site:lcpurl n_id="$arrNovel.n_id"
n_py="$arrNovel.n_name_pinyin" /}'>{$arrNovel.n_latest_chapter_name ?? ""}</a></p>
<p class="time"><span>更新时间:</span>{$arrNovel.n_update_time} </p>
</div>
<div class="clear"></div>
<div class="book-detail-btn">
<ul class="btn-group">
<li class="btn-group-cell"><a class="btn-normal abt1" onclick="addBookshelfFun()">加入书架</a><a
class="btn-normal abt2"
href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a><a
class="btn-normal abt3"
href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
</li>
</ul>
</div>
</div>
</div>
<div class="description" style="font-size: 12px;padding:0px 10px 10px 10px; text-indent: 15px;">
{$arrNovel.n_description}
</div>
<h3 class="wrap-title">最新章节</h3>
<div class="block-box">
<ul class="chapter-list">
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="3600"}
<li>
{if !empty($arrGrm[$d_key])}
{$arrGrm[$d_key]|raw}
{/if}
<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>
{/chapter:list}
</ul>
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn-mulu">查看更多章节...</a>
</div>
<div class="clear"></div>
<h3 class="wrap-title">章节列表</h3>
<div class="block-box">
<ul class="chapter-list">
{chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter"
cache_life="3600"}
<li>
{if !empty($arrGrm[$d_key+10])}
{$arrGrm[$d_key+10]|raw}
{/if}
<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>
{/chapter:list}
</ul>
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn-mulu">查看更多章节...</a>
</div>
<div class="wrap-box">
<h3 class="wrap-title"><span>完结推荐</span></h3>
<div class="rec-focus">
{novel:list count="36" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel"
p_val="page_data" cache_life="3600"}
<dl class="rec-focus-book">
<dt class="book-img">
{if !empty($arrGrm[$d_key+110])}
{$arrGrm[$d_key+110]|raw}
{/if}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'><img height="100"
width="80" class="lazyload-img" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"></a>
</dt>
<dd class="book-info">
<h2><a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>
</h2>
<p>作者:{$Novel.n_author}</p>
<p>{$Novel.n_description}</p>
</dd>
</dl>
{/novel:list}
</div>
</div>
<div class="wrap-box">
<h3 class="wrap-title"><span>相邻小说</span></h3>
<div class="description" style="font-size: 12px;padding:0px 10px 10px 10px; text-indent: 15px;">
{$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
</div>
<div class="rec-focus" style="font-size:12px;">
{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;
{/volist}
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
<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}
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id' : `{$arrNovel['n_id']}`,
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
'n_name' : `{$arrNovel['n_name']}`,
'n_author' : `{$arrNovel['n_author']}`,
'n_status' : `{$arrNovel['n_status']}`,
'n_description' : `{$arrNovel['n_description']}`,
'n_latest_chapter_name' : `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time' : `{$arrNovel['n_update_time']}`,
'c_sort_num' : 1,
'c_name' : `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}

View File

@@ -275,21 +275,7 @@ $Novel.n_id{extend name="baseH5" /}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/volist}
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
<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}

View File

@@ -0,0 +1,287 @@
{extend name="basePc" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="'{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
}
</script>
{/block}
{block name="logo-html"}
<h2>
<a href="{$strPcPath}/">
{$DomainModel->d_name}-{$DomainModel->d_text_logo}
</a>
</h2>
{/block}
{block name="head-js"}
{/block}
{block name="body-class"}novel_info{/block}
{block name="main"}
<div class="container biqunaicc">
<div class="row row-detail">
<div class="layout layout-col1">
<h2 class="layout-tit xs-hidden">
<a href="{$strPcPath}/">{$DomainModel->d_name}</a>&gt;
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{$arrNovel['n_name']}
</a>
</h2>
<div class="detail-box">
<div class="imgbox">
<img data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节"
class="lazyload_book_cover lazyload-img">
</div>
<div class="info">
<div class="top">
<h1>{$arrNovel['n_name']}</h1>
<div class="fix">
<p>&nbsp;&nbsp;者:{$arrNovel.n_author ?? ''}</p>
<p class="xs-show">&nbsp;&nbsp;别:{$arrNovel.n_category ?? ''}</p>
<p class="xs-show">&nbsp;&nbsp;态:{$arrNovel.n_status ?? ''}</p>
<p class="opt">
<span class="xs-hidden">&nbsp;&nbsp;作:</span>
<a rel="nofollow" onclick="addBookshelfFun()">加入书架</a>
<i class="xs-hidden"></i>
<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>
<a
href='{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a>
</p>
<p>最后更新:{$arrNovel.n_update_time ?? ''} </p>
<p>最新章节:<a
href='{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{$arrNovel.n_latest_chapter_name ?? ""}</a></p>
</div>
</div>
<div class="desc xs-hidden">{$arrNovel.n_description ?? ''}</div>
</div>
</div>
</div>
<div class="layout layout-col1">
<h2 class="layout-tit">《{$arrNovel.n_name ?? ''}》{$arrNovel.n_name ?? '章节'}</h2>
<div class="first_txt">
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
{$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
<p>相邻推荐:
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$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"/}'
class="red">{$ForgeNovel.n_forge_title}</a>
{/volist}
{volist name='$arrNovel.arrRelateveNovel' id='Novel'}
<a
href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/volist}
</p>
</div>
</div>
</div>
<div class="row row-section">
<div class="layout layout-col1">
<h2 class="layout-tit">《{$arrNovel.n_name}》最新章节</h2>
<ul class="section-list fix">
{chapter:list count="12" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter" cache_life="3600"}
<li>
{if !empty($arrGrm[$key])}
{$arrGrm[$key]|raw}
{/if}
<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>
{/chapter:list}
</ul>
<h2 class="layout-tit">《{$arrNovel.n_name}》章节列表</h2>
<ul class="fix section-list">
{chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter" cache_life="3600"}
<li>
{if !empty($arrGrm[$key+10])}
{$arrGrm[$key+10]|raw}
{/if}
<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>
{/chapter:list}
</ul><a
href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn-mulu">查看更多章节...</a>
</div>
</div>
<div class="row row-section">
<h2 class="layout-tit">已完结热门小说推荐</h2>
<div class="layout layout-col3">
{novel:list count="36" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="key" d_val="Novel" p_val="page_data" cache_life="3600"}
<div class="item">
<div class="image">
{if !empty($arrGrm[$key+110])}
{$arrGrm[$key+110]|raw}
{/if}
<a href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>
<img style="min-height:120px;" class="lazyload-img" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
</a>
</div>
<dl>
<dt><span>{$Novel.n_author}</span><a
href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>
</dt>
<dd style="height:90px"><a
href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'
style="color: #555">{$Novel.n_description}</a>
</dd>
</dl>
</div>
{/novel:list}
</div>
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id' : `{$arrNovel['n_id']}`,
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
'n_name' : `{$arrNovel['n_name']}`,
'n_author' : `{$arrNovel['n_author']}`,
'n_status' : `{$arrNovel['n_status']}`,
'n_description' : `{$arrNovel['n_description']}`,
'n_latest_chapter_name' : `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time' : `{$arrNovel['n_update_time']}`,
'c_sort_num' : 1,
'c_name' : `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}

View File

@@ -167,21 +167,8 @@
{$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
<p>相邻推荐:
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key+20])}
{$arrGrm[$key+20]|raw}
{/if}

View File

@@ -0,0 +1,302 @@
{extend name="baseH5" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "首页",
"item": "https://{$DomainModel->d_domain}"
},
{
"@type": "ListItem",
"position": 2,
"name": "{$arrNovel.n_category ??''}",
"item": 'https://{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
},
{
"@type": "ListItem",
"position": 3,
"name": "{$arrNovel['n_name']}",
"item": '{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
}
]
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
<h2 class="logo">
<a href="/">{$DomainModel->d_name}-{$DomainModel->d_text_logo}</a>
</h2>
{/block}
{block name="main"}
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a href='{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<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">
<span itemprop="name">{$arrNovel['n_name']}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
</nav>
<div class="detail">
<img rc="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img">
<p class="name">
<strong>{$arrNovel.n_name}</strong>
</p>
<p class="author">
<i class="layui-icon i_author"></i>
<a href='{site:souurl key="$arrNovel.n_author" p="1"/}'>{$arrNovel.n_author}</a>
</p>
<p>
<span class="layui-btn layui-btn-xs layui-btn-radius">{$arrNovel.n_category}</span>
<span class="layui-btn layui-btn-xs layui-btn-radius layui-btn-danger">{$arrNovel.n_status}</span>
</p>
<p class="new">
最新章节:<a href='{site:lcpurl n_id="$arrNovel.n_id"
n_py="$arrNovel.n_name_pinyin" /}'>{$arrNovel.arrLatestChapter.c_name ?? ""}</a>
</p>
<p>最后更新:{$arrNovel.n_update_time}</p>
</div>
<ul class="action">
<li>
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a>
</li>
<li>
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
</li>
<li>
<a href="javascript:addBookshelfFun();">加入书架</a>
</li>
</ul>
<div class="box">
<div class="title">{$arrNovel.n_name}小说简介</div>
<div class="intro">
<p>{$arrNovel.n_description ?? ''}
</p>
</div>
</div>
<div class="box">
<div class="title">{$arrNovel.n_name}最新内容</div>
<div class="intro">
<p>{$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
</p>
</div>
</div>
<div class="box">
<div class="title">{$arrNovel.n_name} 最新章节</div>
<ul class="vlist">
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="3600"}
<li>
{if !empty($arrGrm[$d_key])}
{$arrGrm[$d_key]|raw}
{/if}
<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>
{/chapter:list}
</ul>
<div class="title">{$arrNovel.n_name} 章节列表第1页/100章</div>
<ul class="vlist">
{chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter"
cache_life="3600"}
<li>
{if !empty($arrGrm[$d_key+10])}
{$arrGrm[$d_key+10]|raw}
{/if}
<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>
{/chapter:list}
</ul>
</div>
<div class="tui">
<div class="listtop">
<b>书友点击:</b>
{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;
{/volist}
</div>
</div>
<div class="tui">
<div class="listtop">
<b>书友推荐:</b>
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
<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}
</div>
</div>
<div class="tui">
<div class="listtop">
<b>书友收藏:</b>
{novel:list count="36" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel"
p_val="page_data" cache_life="3600"}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/novel:list}
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id' : `{$arrNovel['n_id']}`,
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
'n_name' : `{$arrNovel['n_name']}`,
'n_author' : `{$arrNovel['n_author']}`,
'n_status' : `{$arrNovel['n_status']}`,
'n_description' : `{$arrNovel['n_description']}`,
'n_latest_chapter_name' : `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time' : `{$arrNovel['n_update_time']}`,
'c_sort_num' : 1,
'c_name' : `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}
{block name="footer-js"}
{/block}

View File

@@ -14,27 +14,27 @@
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
@@ -46,7 +46,8 @@
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
@@ -65,7 +66,8 @@
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
@@ -131,7 +133,7 @@
{block name="main"}
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
@@ -160,7 +162,7 @@
<div class="detail">
<img rc="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img">
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img">
<p class="name">
<strong>{$arrNovel.n_name}</strong>
</p>
@@ -180,7 +182,8 @@
</div>
<ul class="action">
<li>
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a>
<a
href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a>
</li>
<li>
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
@@ -192,7 +195,7 @@
<div class="box">
<div class="title">{$arrNovel.n_name}小说简介</div>
<div class="intro">
<p>{$arrNovel.n_description ?? ''}
<p>{$arrNovel.n_description ?? ''}
</p>
</div>
</div>
@@ -210,13 +213,13 @@
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="3600"}
<li>
{if !empty($arrGrm[$d_key])}
{$arrGrm[$d_key]|raw}
{$arrGrm[$d_key]|raw}
{/if}
<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>
{/chapter:list}
</ul>
<div class="title">{$arrNovel.n_name} 章节列表第1页/100章</div>
<ul class="vlist">
@@ -224,9 +227,9 @@
cache_life="3600"}
<li>
{if !empty($arrGrm[$d_key+10])}
{$arrGrm[$d_key+10]|raw}
{$arrGrm[$d_key+10]|raw}
{/if}
<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>
@@ -239,26 +242,14 @@
{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;
{/volist}
</div>
</div>
<div class="tui">
<div class="listtop">
<b>书友推荐:</b>
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
<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}
@@ -277,17 +268,17 @@
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id' : `{$arrNovel['n_id']}`,
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
'n_name' : `{$arrNovel['n_name']}`,
'n_author' : `{$arrNovel['n_author']}`,
'n_status' : `{$arrNovel['n_status']}`,
'n_description' : `{$arrNovel['n_description']}`,
'n_latest_chapter_name' : `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time' : `{$arrNovel['n_update_time']}`,
'c_sort_num' : 1,
'c_name' : `第一章`,
'n_id': `{$arrNovel['n_id']}`,
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
'n_cover_path': `{$arrNovel['n_cover_path']}`,
'n_name': `{$arrNovel['n_name']}`,
'n_author': `{$arrNovel['n_author']}`,
'n_status': `{$arrNovel['n_status']}`,
'n_description': `{$arrNovel['n_description']}`,
'n_latest_chapter_name': `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time': `{$arrNovel['n_update_time']}`,
'c_sort_num': 1,
'c_name': `第一章`,
};
</script>
{/block}

View File

@@ -0,0 +1,266 @@
{extend name="basePc" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId" }' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId" }' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
}
</script>
{/block}
{block name="logo-html"}
<h2>
<a href="{$strPcPath}/">
{$DomainModel->d_name}-{$DomainModel->d_text_logo}
</a>
</h2>
{/block}
{block name="strPageCode"}
<?php $strPageCode = 'info'; ?>
{/block}
{block name="main"}
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<div id="wrapper">
<div id="main">
<div class="box_con">
<div id="maininfo">
<div id="info">
<h1>{$arrNovel.n_name}</h1>
<p>
作者:<a href='{$strPcPath}{site:souurl key="$arrNovel.n_author" p="1"/}'>{$arrNovel.n_author}</a>
&nbsp;&nbsp;&nbsp;&nbsp;状态:{$arrNovel.n_status}
</p>
<p>
分类:其他小说 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow"
href="javascript:addBookshelfFun();">加入书架</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
</p>
<p>
最新章节:<a href='{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id"
n_py="$arrNovel.n_name_pinyin" /}'>{$arrNovel.arrLatestChapter.c_name ?? ""}</a>
</p>
<p>更新时间:{$arrNovel.n_update_time}</p>
</div>
<div id="intro">
{$arrNovel.n_description ?? ''}<br />
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
<a
href='{$strPcPath}{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}
</div>
</div>
<div id="sidebar">
<div id="fmimg">
<img rc="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img"
width="120" height="150" />
</div>
</div>
</div>
<div class="box_con">
<div id="list">
<dl>
<dt>《{$arrNovel.n_name}》最新章节</dt>
{chapter:list count="12" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter"
cache_life="3600"}
<dd>
{if !empty($arrGrm[$key])}
{$arrGrm[$key]|raw}
{/if}
<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>
</dd>
{/chapter:list}
<dt>
<b>《{$arrNovel.n_name}》正文目录</b>
</dt>
{chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter"
cache_life="3600"}
<dd>
{if !empty($arrGrm[$key + 12])}
{$arrGrm[$key + 12]|raw}
{/if}
<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>
</dd>
{/chapter:list}
<dt style="text-align:center;">
<b>
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
title="查看《{$arrNovel.n_name}》全部章节列表">
&gt;&gt;&nbsp;查看《{$arrNovel.n_name}》更多章节列表
&nbsp;&lt;&lt;</a>
</b>
</dt>
</dl>
</div>
</div>
<div class="hotbook"></div>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<p>{$DomainModel->d_index_description}</p>
{/if}
<p>{$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
</p>
</div>
<div class="hotbook">
<b>书友点击:</b>
{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;
{/volist}
</div>
<div class="hotbook">
<b>书友收藏:</b>
{novel:list count="36" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel"
p_val="page_data" cache_life="3600"}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/novel:list}
</div>
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id': `{$arrNovel['n_id']}`,
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
'n_cover_path': `{$arrNovel['n_cover_path']}`,
'n_name': `{$arrNovel['n_name']}`,
'n_author': `{$arrNovel['n_author']}`,
'n_status': `{$arrNovel['n_status']}`,
'n_update_time': `{$arrNovel['n_update_time']}`,
'c_sort_num': 1,
'c_name': `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}
{block name="footer-js"}
<script src="/template/kuangyu/home/bai_web/js/global.js"></script>
<script>
</script>
{/block}

View File

@@ -14,27 +14,27 @@
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
@@ -130,7 +130,8 @@
<p>
分类:其他小说 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a rel="nofollow"
href="javascript:addBookshelfFun();">加入书架</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>章节目录</a>
</p>
<p>
最新章节:<a href='{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id"
@@ -139,32 +140,19 @@
<p>更新时间:{$arrNovel.n_update_time}</p>
</div>
<div id="intro">
{$arrNovel.n_description ?? ''}<br />
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{$arrNovel.n_description ?? ''}<br />
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
<a
href='{$strPcPath}{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}
</div>
</div>
<div id="sidebar">
<div id="fmimg">
<img rc="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img"
width="120" height="150" />
</div>
</div>
@@ -177,7 +165,7 @@
cache_life="3600"}
<dd>
{if !empty($arrGrm[$key])}
{$arrGrm[$key]|raw}
{$arrGrm[$key]|raw}
{/if}
<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"/}'>
@@ -194,7 +182,7 @@
cache_life="3600"}
<dd>
{if !empty($arrGrm[$key + 12])}
{$arrGrm[$key + 12]|raw}
{$arrGrm[$key + 12]|raw}
{/if}
<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"/}'>
@@ -216,27 +204,27 @@
</div>
<div class="hotbook"></div>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<p>{$DomainModel->d_index_description}</p>
<p>{$DomainModel->d_index_description}</p>
{/if}
<p>{$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...
</p>
</div>
<div class="hotbook">
<b>书友点击:</b>
{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;
{/volist}
</div>
<div class="hotbook">
<b>书友收藏:</b>
{novel:list count="36" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel"
<div class="hotbook">
<b>书友点击:</b>
{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;
{/volist}
</div>
<div class="hotbook">
<b>书友收藏:</b>
{novel:list count="36" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel"
p_val="page_data" cache_life="3600"}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/novel:list}
</div>
</div>
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;

View File

@@ -0,0 +1,344 @@
{extend name="baseH5" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "首页",
"item": "https://{$DomainModel->d_domain}"
},
{
"@type": "ListItem",
"position": 2,
"name": "{$arrNovel.n_category ??''}",
"item": 'https://{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
},
{
"@type": "ListItem",
"position": 3,
"name": "{$arrNovel['n_name']}",
"item": '{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
}
]
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
<h2 class="logo">
<a href="/">{$DomainModel->d_name}-{$DomainModel->d_text_logo}</a>
</h2>
{/block}
{block name="main"}
<div class="wrap">
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a href='{site:nflurl gender="all" category="$arrNovel.n_category_pinyin" status="all" page="1"/}' itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<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">
<span itemprop="name">{$arrNovel['n_name']}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
</nav>
<!--info-->
<div class="mod mod-info">
{$arrGrm[0]|raw}
<div class="book-info">
<dl class="base clearfix">
<dt>
<img src="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img" />
<i class='{eq name="arrNovel.n_status" value="连载中"}serial{else}finish {/eq}'>已完结</i>
</dt>
<dd>
<h2>{$arrNovel['n_name']}</h2>
<p class="info">
<span>分类:{$arrNovel.n_category}</span>
<span>作者:<a href='{site:souurl key="$arrNovel.n_author" p="1"/}'>{$arrNovel.n_author}</a></span>
<!-- <span>字数54.20万字</span> -->
<span>阅读:{$arrNovel.arrNovelClicks.total}</span>
</p>
</dd>
</dl>
{$arrGrm[1]|raw}
<div class="btns">
<ul>
{if !empty($arrNovel.intFirstChapterSort)}
<li>
{$arrGrm[2]|raw}
<a class="read-online reading" href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'
>点击阅读</a>
</li>
{/if}
<li>
<a class="b5673b5cd4b" onclick="addBookshelfFun()">加入书架</a>
</li>
</ul>
</div>
<div class="intro">
{$arrGrm[3]|raw}
<div class="content">
<p>
{$arrNovel.n_description ?? ''}
</p>
</div>
</div>
</div>
</div>
<!-- hot-book -->
<div class="mod mod-info">
<div class="book-info">
<div class="mod-head">
<h3>最新要点</h3>
</div>
{$arrGrm[4]|raw}
<div class="intro">
<div class="content">
<p>
{$arrNovel.strFocus}
</p>
<p class="xianglingtuijian">相邻推荐:
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key+20])}
{$arrGrm[$key+20]|raw}
{/if}
<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>
{/volist}
</p>
</div>
</div>
</div>
</div>
<!-- hot-book -->
<div class="mod mod-attentions">
<div class="mod-head">
<h3>{$arrNovel.n_name}最新章节</h3>
</div>
<div class="attentions">
<ul class="clearfix">
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter" cache_life="3600"}
<li>
{if !empty($arrGrm[$key+20])}
{$arrGrm[$key+20]|raw}
{/if}
<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>
{/chapter:list}
</ul>
<div class="chapters-more">
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="reading btn-bookshelf">{$arrNovel.n_name}更多章节</a>
</div>
</div>
</div>
<div class="mod mod-guess">
<div class="mod-head">
<h3>同类作品</h3>
</div>
<div class="book-slide">
<ul class="clearfix">
{foreach $arrNovel.arrRelateveNovel as $Novel}
<li>
{$arrGrm[$key+10]|raw}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin"/}'>
<img class="lazy lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''}" />
<span>{$Novel.n_name ?? ''}</span>
<em>
<aria>作者:</aria>{$Novel.n_author ?? ''}
</em>
</a>
</li>
{/foreach}
{novel:list count="30" n_category="$arrNovel.n_category_pinyin" sort_type="update" d_key="d_key" diff_key="$Request.route.intForgeId"
d_val="Novel" cache_life="3600"}
<li>
{$arrGrm[$key+50]|raw}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin"/}'>
<img class="lazy lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''}" />
<span>{$Novel.n_name ?? ''}</span>
<em>
<aria>作者:</aria>{$Novel.n_author ?? ''}
</em>
</a>
</li>
{/novel:list}
</ul>
</div>
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id' : `{$arrNovel['n_id']}`,
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
'n_name' : `{$arrNovel['n_name']}`,
'n_author' : `{$arrNovel['n_author']}`,
'n_status' : `{$arrNovel['n_status']}`,
'n_description' : `{$arrNovel['n_description']}`,
'n_latest_chapter_name' : `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time' : `{$arrNovel['n_update_time']}`,
'c_sort_num' : 1,
'c_name' : `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}
{block name="footer-js"}
{/block}

View File

@@ -14,27 +14,27 @@
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
@@ -46,7 +46,8 @@
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
@@ -65,7 +66,8 @@
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
@@ -130,7 +132,7 @@
{block name="main"}
<div class="wrap">
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
@@ -141,7 +143,8 @@
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a href='{site:nflurl gender="all" category="$arrNovel.n_category_pinyin" status="all" page="1"/}' itemprop="item">
<a href='{site:nflurl gender="all" category="$arrNovel.n_category_pinyin" status="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
@@ -155,7 +158,7 @@
</ol>
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
</nav>
@@ -186,8 +189,8 @@
{if !empty($arrNovel.intFirstChapterSort)}
<li>
{$arrGrm[2]|raw}
<a class="read-online reading" href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'
>点击阅读</a>
<a class="read-online reading"
href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>点击阅读</a>
</li>
{/if}
<li>
@@ -219,24 +222,12 @@
{$arrNovel.strFocus}
</p>
<p class="xianglingtuijian">相邻推荐:
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key+20])}
{$arrGrm[$key+20]|raw}
{$arrGrm[$key+20]|raw}
{/if}
<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>
@@ -256,10 +247,11 @@
</div>
<div class="attentions">
<ul class="clearfix">
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter" cache_life="3600"}
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter"
cache_life="3600"}
<li>
{if !empty($arrGrm[$key+20])}
{$arrGrm[$key+20]|raw}
{$arrGrm[$key+20]|raw}
{/if}
<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>
@@ -268,7 +260,7 @@
</ul>
<div class="chapters-more">
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="reading btn-bookshelf">{$arrNovel.n_name}更多章节</a>
</div>
@@ -283,7 +275,7 @@
<ul class="clearfix">
{foreach $arrNovel.arrRelateveNovel as $Novel}
<li>
{$arrGrm[$key+10]|raw}
{$arrGrm[$key+10]|raw}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin"/}'>
<img class="lazy lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''}" />
@@ -292,14 +284,15 @@
<aria>作者:</aria>{$Novel.n_author ?? ''}
</em>
</a>
</li>
</li>
{/foreach}
{novel:list count="30" n_category="$arrNovel.n_category_pinyin" sort_type="update" d_key="d_key" diff_key="$Request.route.intForgeId"
d_val="Novel" cache_life="3600"}
{novel:list count="30" n_category="$arrNovel.n_category_pinyin" sort_type="update" d_key="d_key"
diff_key="$Request.route.intForgeId"
d_val="Novel" cache_life="3600"}
<li>
{$arrGrm[$key+50]|raw}
<li>
{$arrGrm[$key+50]|raw}
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin"/}'>
<img class="lazy lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''}" />
@@ -308,7 +301,7 @@
<aria>作者:</aria>{$Novel.n_author ?? ''}
</em>
</a>
</li>
</li>
{/novel:list}
</ul>
</div>
@@ -319,17 +312,17 @@
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id' : `{$arrNovel['n_id']}`,
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
'n_name' : `{$arrNovel['n_name']}`,
'n_author' : `{$arrNovel['n_author']}`,
'n_status' : `{$arrNovel['n_status']}`,
'n_description' : `{$arrNovel['n_description']}`,
'n_latest_chapter_name' : `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time' : `{$arrNovel['n_update_time']}`,
'c_sort_num' : 1,
'c_name' : `第一章`,
'n_id': `{$arrNovel['n_id']}`,
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
'n_cover_path': `{$arrNovel['n_cover_path']}`,
'n_name': `{$arrNovel['n_name']}`,
'n_author': `{$arrNovel['n_author']}`,
'n_status': `{$arrNovel['n_status']}`,
'n_description': `{$arrNovel['n_description']}`,
'n_latest_chapter_name': `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time': `{$arrNovel['n_update_time']}`,
'c_sort_num': 1,
'c_name': `第一章`,
};
</script>
{/block}

View File

@@ -0,0 +1,355 @@
{extend name="basePc" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId" }' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId" }' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
}
</script>
{/block}
{block name="logo-html"}
<h2>
<a href="{$strPcPath}/">
{$DomainModel->d_name}-{$DomainModel->d_text_logo}
</a>
</h2>
{/block}
{block name="strPageCode"}
<?php $strPageCode = 'info'; ?>
{/block}
{block name="main"}
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<div class="content">
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="{$strPcPath}/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{$strPcPath}{site:nflurl gender="all" category="$arrNovel.n_category_pinyin" status="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
itemprop="item">
<span itemprop="name">{$arrNovel['n_name']}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} -
{$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
</nav>
<div class="info">
<div class="info_box">
<div class="info_L">
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
title="{$arrNovel['n_name']}" class="book_cov">
<img src="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节"
class="lazyload_book_cover lazyload-img">
<i class="serial">{$arrNovel.n_status ?? ''}</i>
</a>
<div class="btn">
<a href="javascript:;" class="sc" onclick="addBookshelfFun()">
<s></s>
<p>加入书架</p>
</a>
<a href="javascript:;" class="xh"><s></s>我喜欢</a>
</div>
</div>
<div class="info_C book_inf">
<div class="c01">
<h2><a
href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>{$arrNovel['n_name']}</a>
</h2>
<!-- <span id="mod_book_star">0分</span> -->
</div>
<p class="c02">
<span class="zz">作者:{$arrNovel.n_author}</span>
<span>创建日期:{$arrNovel.n_update_time}</span>
</p>
<div class="c03">
<p class="jianjie">简介</p>
<div class="c03_box">
<p class="jj_con" id="book_desc">
{$arrNovel.n_description ?? ''}</p>
<span class="zk_btn">展开<s></s></span>
<span class="sq_btn" style="display: none;">收起<s></s></span>
</div>
</div>
<div class="c03 c03-jjyd">
<p class="jianjie">最新要点</p>
<div class="c03_box">
<p class="jj_con" id="book_desc2">
{$arrNovel.strFocus}</p>
<span class="zk_btn">展开<s></s></span>
<span class="sq_btn" style="display: none;">收起<s></s></span>
</div>
</div>
<div class="c04">
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'
class="read">立即阅读</a>
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="mulu">目录</a>
</div>
<!-- <div class="c05">
<p class="c05_t">作品标签:
<a href="#" class="red">打发十分</a>
</p>
</div> -->
</div>
</div>
<div class="info_R">
<div class="inf02">
<h4>小说信息</h4>
<p>类别:
<a href='{$strPcPath}{site:nflurl gender="all" category="$arrNovel.n_category_pinyin" status="all" page="1"/}'
title="{$arrNovel.n_category}">
{$arrNovel.n_category}
</a>
</p>
<!-- <p>总字数54.20万+</p> -->
<p>总点击量:{$arrNovel.arrNovelClicks.total}</p>
<p>月点击量:{$arrNovel.arrNovelClicks.monthly}</p>
<p>周点击量:{$arrNovel.arrNovelClicks.weekly}</p>
<p>日点击量:{$arrNovel.arrNovelClicks.daily}</p>
<!-- <p>收藏0</p> -->
</div>
</div>
</div>
<div class="info2">
<div class="info2_L sjxq">
<div class="gxzj">
<div class="pl_tit">
<h2>最新章节</h2>
</div>
<div class="zj_con">
{chapter:list count="12" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter"
cache_life="3600"}
<p>
{if !empty($arrGrm[$key])}
{$arrGrm[$key]|raw}
{/if}
<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"/}'
title="{$arrNovel.n_name}-{$Chapter.c_name}" class="zj">{$Chapter.c_name}</a>
<span class="time">{$Chapter.created_at ?? '1天前'}</span>
<!-- <span class="time">3天前</span>-->
</p>
<p class="zw" style="max-height: 98px; overflow: hidden;"></p>
{/chapter:list}
</div>
</div>
<div class="pl_tit">
<h2>相邻推荐:</h2>
</div>
<div class="pl_con">
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$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"/}'
class="red">{$ForgeNovel.n_forge_title}</a>
{/volist}
{novel:list count="30" n_category="$arrNovel.n_category_pinyin" sort_type="update" d_key="d_key"
diff_key="$Request.route.intForgeId"
d_val="Novel" cache_life="3600"}
{if !empty($arrGrm[$key+80])}
{$arrGrm[$key+80]|raw}
{/if}
<a href='{$strPcPath}{site:nnurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" n_fid="$Novel.n_id"/}'
class="red">{$Novel.n_name}</a>
{/novel:list}
</div>
</div>
<div class="info2_R">
<div class="fsph">
<h4><s></s>精品推荐</h4>
<ul class="info2_C">
{novel:list count="30" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="key"
d_val="Novel" p_val="page_data" cache_life="3600"}
<li>
<h3>
{if !empty($arrGrm[$key+10])}
{$arrGrm[$key+10]|raw}
{/if}
<a href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'
title="{$Novel['n_name'] ?? ''}">
{$Novel['n_name'] ?? ''}
</a>
</h3>
<div>
<a href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'
title="$Novel['n_name'] ?? ''}" class="book_cov">
<img src="/template/kuangyu/home/bai_web/images/default.png"
data-src="{$Novel['n_cover_path'] ?? ''}" class="lazyload_book_cover lazyload-img"
alt="{$Novel['n_name'] ?? ''}">
</a>
<div class="book_inf">
<span class="aut">{$Novel['n_author'] ?? ''}</span>
<span class="tag"><a href="/">{$Novel['n_category'] ?? ''}</a></span>
<p class="int">
{$Novel['n_description'] ?? ''}</p>
</div>
</div>
</li>
{/novel:list}
</ul>
</div>
</div>
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id': `{$arrNovel['n_id']}`,
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
'n_cover_path': `{$arrNovel['n_cover_path']}`,
'n_name': `{$arrNovel['n_name']}`,
'n_author': `{$arrNovel['n_author']}`,
'n_status': `{$arrNovel['n_status']}`,
'n_update_time': `{$arrNovel['n_update_time']}`,
'c_sort_num': 1,
'c_name': `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}
{block name="footer-js"}
<script src="/template/kuangyu/home/bai_web/js/global.js"></script>
<script>
</script>
{/block}

View File

@@ -254,22 +254,8 @@
<h2>相邻推荐:</h2>
</div>
<div class="pl_con">
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='$arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key+20])}
{$arrGrm[$key+20]|raw}
{/if}

View File

@@ -0,0 +1,390 @@
{extend name="baseH5" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "首页",
"item": "https://{$DomainModel->d_domain}"
},
{
"@type": "ListItem",
"position": 2,
"name": "{$arrNovel.n_category ??''}",
"item": 'https://{$DomainModel->d_domain}{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
},
{
"@type": "ListItem",
"position": 3,
"name": "{$arrNovel['n_name']}",
"item": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
}
]
}
</script>
{/block}
{block name="head-js"}
{/block}
{block name="body-class"}novel_info{/block}
{block name="logo-html"}
<h2 class="bookname">
<a href="/" style="color:#ffffff">{$DomainModel->d_name}</a>
</h2>
{/block}
{block name="logo-html"}
<a href="/">
<h2>-{$DomainModel->d_name}-<span>{$DomainModel->d_text_logo}</span></h2>
</a>
{/block}
{block name="main"}
<div class="layout-root novel-web">
{$arrGrm[1]|raw}
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a href='{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
{$arrGrm[2]|raw}
<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">
<span itemprop="name">{$arrNovel['n_name']}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
{$arrGrm[3]|raw}
</nav>
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
<div id="w-detail" class="work-content">
{$arrGrm[4]|raw}
<div class="w-header">
<div class="go-back flex-center" onclick="history.go(-1)">
<div class="svg">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
<path
d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z">
</path>
</svg>
</div>
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[113])}
{$arrGrm[113]|raw}
{/if}
<div class="detail-info">
<div class="detail-cover van-image">
<img class="van-image__img pre-img lazyload-img lozad" style="object-fit: cover"
src="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节">
</div>
<div class="detail-title-xiangqing">
<h2>{$arrNovel.n_name}</h2>
<div class="novel-author">分类:{$arrNovel.n_category } / {$arrNovel.n_status }</div>
<div class="novel-author">作者:{$arrNovel.n_author ?? '迭名'}</div>
<div class="novel-time">更新:{:date('Y-m-d H:i:s')}</div>
{$arrGrm[5]|raw}
<a class="novel-new-zj" href='{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
最新:{$arrNovel.arrLatestChapter.c_name ?? ""}</a>
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[97])}
{$arrGrm[97]|raw}
{/if}
<div class="detail-desc">
<span class="label">概要:</span>
<span class="value">
{$arrNovel.n_description}</span>
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[114])}
{$arrGrm[114]|raw}
{/if}
<div class="info-btn">
<a class="jiarushujia shujia-btn" onclick="addShujiaFun()">加入书架</a>
<a class="jiarushujia shouchang-btn"
href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>目录</a>
<a class="jiarushujia"
href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>开始阅读</a>
</div>
<ul style="margin-top:10px;">
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter"
cache_life="3600"}
<li style="margin-top:5px;">
{if !empty($arrGrm[$key + 6])}
{$arrGrm[$key+6]|raw}
{/if}
<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}</a>
</li>
{/chapter:list}
</ul>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[115])}
{$arrGrm[115]|raw}
{/if}
<div class="view-number">
<div class="item">
<div class="label">{site:wz wz="推荐等级" /}</div>
<div class="value">{$arrNovel.n_level}</div>
</div>
<div class="item">
<div class="label">{site:wz wz="收藏数" /}</div>
<div class="value">0</div>
</div>
<div class="item">
<div class="label">{site:wz wz="在看人数" /}</div>
<div class="value">{$arrNovel.arrNovelClicks.total}</div>
</div>
</div>
<div class="detail-desc">
<span class="label">经典:</span>
<span class="value">
{$arrNovel.strFocus ?? ""} 。看小说就来{$DomainModel->d_name} {$DomainModel->d_domain}...</span>
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[116])}
{$arrGrm[116]|raw}
{/if}
<div class="detail-tag">
<span class="label">相关标签:</span>
<span class="value">
<span class="value-tag">
{if empty($Request.route.intForgeId)}
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$arrRandomForgeNovels = $arrNovel['n_forge_novel'];
}
{/php}
{volist name='$arrNovel.arrRelateveNovel' id='Novel' key="key"}
{if !empty($arrGrm[$key + 24])}
{$arrGrm[$key+24]|raw}
{/if}
<a
href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/volist}
{else}
{novel:list count="10" n_category="$arrNovel.n_category_pinyin" sort_type="update"
d_key="d_key" d_val="Novel" diff_key="$Request.route.intForgeId" cache_life="3600"}
<a
href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/novel:list}
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{/if}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key + 34])}
{$arrGrm[$key+34]|raw}
{/if}
<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}
</span>
</span>
</div>
</div>
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[101])}
{$arrGrm[101]|raw}
{/if}
<div class="section">
<div class="title">
<div class="title-text">猜你喜欢</div>
</div>
<div class="novel-item item">
{if empty($Request.route.intForgeId)}
<div class="work-list">
{novel:list count="8" n_category="$arrNovel.n_category_pinyin" sort_type="update" d_key="d_key"
d_val="Novel" cache_life="3600"}
{include file="public/novel-list-flex" start="16"/}
{/novel:list}
</div>
{else}
<div class="work-list">
{novel:list count="32" n_category="$arrNovel.n_category_pinyin" sort_type="update" d_key="d_key"
d_val="Novel" diff_key="$Request.route.intForgeId" cache_life="3600"}
{include file="public/novel-list-flex" start="16"/}
{/novel:list}
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[99])}
{$arrGrm[99]|raw}
{/if}
<div class="work-list">
{novel:ranklist count="32" sort_type="daily" d_key="d_key"
d_val="Novel" diff_key="$Request.route.intForgeId" cache_life="3600"}
{include file="public/novel-list-flex" start="16"/}
{/novel:ranklist}
</div>
{/if}
</div>
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[118])}
{$arrGrm[118]|raw}
{/if}
</div>
</div>
{if !empty($Request.route.intForgeId) && !empty($arrGrm[98])}
{$arrGrm[98]|raw}
{/if}
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id': `{$arrNovel['n_id']}`,
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
'n_cover_path': `{$arrNovel['n_cover_path']}`,
'n_name': `{$arrNovel['n_name']}`,
'n_author': `{$arrNovel['n_author']}`,
'n_status': `{$arrNovel['n_status']}`,
'n_description': `{$arrNovel['n_description']}`,
'n_latest_chapter_name': `{$arrNovel['n_latest_chapter_name']}`,
'n_update_time': `{$arrNovel['n_update_time']}`,
'c_sort_num': 1,
'c_name': `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}

View File

@@ -274,12 +274,6 @@
<span class="value">
<span class="value-tag">
{if empty($Request.route.intForgeId)}
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$arrRandomForgeNovels = $arrNovel['n_forge_novel'];
}
{/php}
{volist name='$arrNovel.arrRelateveNovel' id='Novel' key="key"}
{if !empty($arrGrm[$key + 24])}
{$arrGrm[$key+24]|raw}
@@ -295,22 +289,9 @@
href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>{$Novel.n_name}</a>&nbsp;&nbsp;
{/novel:list}
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{/if}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key + 34])}
{$arrGrm[$key+34]|raw}
{/if}

View File

@@ -0,0 +1,300 @@
{extend name="baseH5" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "首页",
"item": "https://{$DomainModel->d_domain}"
},
{
"@type": "ListItem",
"position": 2,
"name": "{$arrNovel.n_category ??''}",
"item": 'https://{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
},
{
"@type": "ListItem",
"position": 3,
"name": "{$arrNovel['n_name']}",
"item": '{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
}
]
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
<h2 class="logo">
<a href="/">{$DomainModel->d_name}-{$DomainModel->d_text_logo}</a>
</h2>
{/block}
{block name='body-class'}info_xs{/block}
{block name="main"}
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a href='{site:nflurl category="$arrNovel.n_category_pinyin" order="all" status="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<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">
<span itemprop="name">{$arrNovel['n_name']}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
</nav>
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
<div class="header_info">
<div class="xs_info xsjs">
<span class="iconfont icon-shuji fs24 btn_cl_2 mt3"></span>
<i>
<a href='{site:souurl key="$arrNovel.n_author" p="1"/}'>{$arrNovel.n_author}</a>
/著
</i>
<h2 class="br-b-1 fs14 btn_cl_2">
<a href='{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
class="btn_cl_2">{$arrNovel.n_name}</a>
</h2>
<div class="xs_introduce">
{$arrNovel.n_description}
<br>
{$arrNovel.strFocus}
</div>
</div>
<div class="xs_fmzz"></div>
</div>
<div class="xs_info qs_zx">
<span class="iconfont icon-daoxu fs20 btn_cl_2 mt5"></span>
<h2 class="br-b-1 fs14 btn_cl_2">
<a href='{site:lcpurl n_id="$arrNovel.n_id"
n_py="$arrNovel.n_name_pinyin" /}' class="btn_cl_2">{$arrNovel.n_name}</a>
最新章节
</h2>
<ul class="ph_list">
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="3600"}
<li class="br-b-1">
{if !empty($arrGrm[$d_key])}
{$arrGrm[$d_key]|raw}
{/if}
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$Chapter.c_sort_num" c_page="0"/}'
class="s">
{$Chapter.c_name}
</a>
</li>
{/chapter:list}
</ul>
</div>
<div class="xs_info qs_zx">
<span class="iconfont icon-daoxu fs20 btn_cl_2 mt5"></span>
<h2 class="br-b-1 fs14 btn_cl_2">
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn_cl_2">
{$arrNovel.n_name}</a>
章节列表
</h2>
<ul class="ph_list">
{chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter"
cache_life="3600"}
<li class="br-b-1">
{if !empty($arrGrm[$d_key])}
{$arrGrm[$d_key]|raw}
{/if}
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$Chapter.c_sort_num" c_page="0"/}'
class="s">
{$Chapter.c_name}
</a>
</li>
{/chapter:list}
</ul>
<a class="btn-normal abt3"
href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>查看更多章节...</a>
</div>
<div class="index_qb fmtj">
<div class="tl t1">
<span>完结小说推荐</span>
<i>{$DomainModel->d_domain}</i>
</div>
{novel:list count="30" sort_type="tuijian" n_category="$arrNovel.n_category_pinyin" d_key="key" d_val="Novel" cache_life="3600"}
{include file="public/novelListH" start="31"/}
{/novel:list}
</div>
<div class="xs_phb zxgx">
<span class="iconfont icon-gengxin btn_cl_1"></span>
<i>{$DomainModel->d_domain}</i>
<h2 class="btn_cl_1">最新更新</h2>
<ul class="ph_list">
{novel:list count="30" sort_type="update" n_category="$arrNovel.n_category_pinyin" d_key="key" d_val="Novel" cache_life="3600"}
{include file="public/novelListS" start="0"/}
{/novel:list}
</ul>
</div>
<div class="info_btn mt10">
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}' class="a1">
<span class="iconfont icon-mulu1 fs14" title="{$arrNovel.n_name}全文目录"></span>
章节目录
</a>
<a href="javascript:addBookshelfFun()" class="a2 sj">
<span class="iconfont icon-shoucang1" title="收藏{$arrNovel.n_name}"></span>
加入书架
</a>
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'
class="a3">
<span class="iconfont icon-yuedu1" title="{$arrNovel.n_name}全文免费阅读"></span>
立即阅读
</a>
</div>
<div style="height:60px"></div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id': `{$arrNovel['n_id']}`,
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
'n_cover_path': `{$arrNovel['n_cover_path']}`,
'n_name': `{$arrNovel['n_name']}`,
'n_author': `{$arrNovel['n_author']}`,
'n_status': `{$arrNovel['n_status']}`,
'n_update_time': `{$arrNovel['n_update_time']}`,
'c_sort_num': 1,
'c_name': `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}
{block name="footer-js"}
{/block}

View File

@@ -0,0 +1,301 @@
{extend name="basePc" /}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="$Request.route.intForgeId" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{if empty($Request.route.intForgeId)}
{site:grm page_code="novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{else}
{site:grm page_code="novel_info" diff="$Request.route.intForgeId" num="120" g_key="arrGrm" /}
{/if}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}
{/if}
{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId" }' />
<meta property="og:url"
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:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
<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="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<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" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description"
content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId" }' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<link rel="canonical"
href='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
}
</script>
{/block}
{block name="logo-html"}
<h2>
<a href="{$strPcPath}/">
{$DomainModel->d_name}-{$DomainModel->d_text_logo}
</a>
</h2>
{/block}
{block name="strPageCode"}
<?php $strPageCode = 'info'; ?>
{/block}
{block name="main"}
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<div class="wp mt30 ov">
<div class="info_dv1 ov">
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="{$strPcPath}/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{$strPcPath}{site:nflurl gender="all" category="$arrNovel.n_category_pinyin" status="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrNovel.n_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
itemprop="item">
<span itemprop="name">{$arrNovel['n_name']}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} -
{$DomainModel->d_name}</h1>
{if $DomainModel->info_id == $Request.route.intNovelId || empty($Request.route.intNovelId)}
<h4 class="site-description ">{$DomainModel->d_index_description}</h4>
{/if}
</nav>
<div class="intro">
<div class="img z">
<img src="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazyload-img" />
</div>
<div class="details z">
<h2>{$arrNovel['n_name']}</h2>
<p class="p">
<i>
作者:<a href='{$strPcPath}{site:souurl key="$arrNovel.n_author" p="1"/}'>{$arrNovel.n_author}</a>
</i>
<i>更新时间:{$arrNovel.n_update_time}</i>
</p>
<p class="p2">
{$arrNovel.n_description ?? ''}
</p>
</div>
<div class="btn_dv1 y">
<i class="sj">
<a rel="nofollow" href="javascript:addBookshelfFun();">
<span class="ico ico-bookshelf"></span>
加入书架
</a>
</i>
<i class="sj">
<a
href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>
<span class="ico ico-mulu"></span>
章节目录
</a>
</i>
<i class="sj sj2">
<a
href='{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>
<span class="ico ico-yuedu"></span>
立即阅读
</a>
</i>
</div>
</div>
</div>
<div class="info_dv2 mt10">
<div class="title">《{$arrNovel['n_name']}》第245章 全文完</div>
<div class="first_txt">
<p>{$arrNovel.strFocus}</p>
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key])}
{$arrGrm[$key]|raw}
{/if}
&nbsp;&nbsp;<a
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>
{/volist}
&nbsp;&nbsp;
</div>
</div>
<div class="info_dv3 mt10">
<div class="title">《{$arrNovel['n_name']}》最新章节</div>
<ul class="section-list">
{chapter:list count="12" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter"
cache_life="3600"}
{if !empty($arrGrm[$key + 12])}
{$arrGrm[$key + 12]|raw}
{/if}
<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>
{/chapter:list}
</ul>
</div>
<div class="info_dv3 mt10">
<div class="title">《{$arrNovel['n_name']}》章节列表</div>
<ul class="section-list">
{chapter:list count="100" sort_type="zheng" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter"
cache_life="3600"}
{if !empty($arrGrm[$key + 25])}
{$arrGrm[$key + 25]|raw}
{/if}
<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>
{/chapter:list}
</ul>
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="btn-mulu">查看更多章节...</a>
</div>
<div class="phb_fm mt10">
<div class="phb_title">
<b>热门小说推荐</b>
</div>
{novel:list count="36" sort_type="tuijian" d_key="key" d_val="Novel" p_val="page_data"
cache_life="3600"}
{include file="pc/public/hostListImg" start="50"/}
{/novel:list}
</div>
</div>
<script>
const strNovelId = `{$arrNovel.n_id}`;
const arrNovel = {
'n_id': `{$arrNovel['n_id']}`,
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
'n_cover_path': `{$arrNovel['n_cover_path']}`,
'n_name': `{$arrNovel['n_name']}`,
'n_author': `{$arrNovel['n_author']}`,
'n_status': `{$arrNovel['n_status']}`,
'n_update_time': `{$arrNovel['n_update_time']}`,
'c_sort_num': 1,
'c_name': `第一章`,
};
</script>
{/block}
{block name="customize"}
{/block}
{block name="footer-js"}
<script src="/template/kuangyu/home/bai_web/js/global.js"></script>
<script>
</script>
{/block}

View File

@@ -199,22 +199,8 @@
<div class="title">《{$arrNovel['n_name']}》第245章 全文完</div>
<div class="first_txt">
<p>{$arrNovel.strFocus}</p>
{php}
$arrRandomForgeNovels = [];
if (isset($arrNovel['n_forge_novel']) && is_array($arrNovel['n_forge_novel'])) {
$forgeNovels = $arrNovel['n_forge_novel'];
$count = count($forgeNovels);
if ($count > 0) {
$randomKeys = array_rand($forgeNovels, min(10, $count));
foreach ((array) $randomKeys as $key) {
$arrRandomForgeNovels[] = $forgeNovels[$key];
}
}
}
{/php}
{volist name='arrRandomForgeNovels' id='ForgeNovel' key="key"}
{volist name='arrNovel.n_forge_novel' id='ForgeNovel' key="key"}
{if !empty($arrGrm[$key])}
{$arrGrm[$key]|raw}
{/if}