This commit is contained in:
make
2025-04-24 01:20:07 +08:00
parent c60bbcc7bb
commit b5d31c67be
63 changed files with 7588 additions and 116 deletions

View File

@@ -0,0 +1,36 @@
{extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$strTitle??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:url" content="https://{Request->DomainModel->d_domain}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "{$DomainModel->d_domain}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"datePublished": "{:date('Y-m-d')}"
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
<h1 class="logo">
<a href="/">{$DomainModel->d_name}-{$DomainModel->d_text_logo}</a>
</h1>
{/block}
{block name="main"}
<div style="height:50px"></div>
article.........
{/block}
{block name="customize"} {/block}

View File

@@ -0,0 +1,64 @@
{extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$strTitle??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:url" content="https://{Request->DomainModel->d_domain}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "{$DomainModel->d_domain}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"datePublished": "{:date('Y-m-d')}"
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
<h1 class="logo">
<a href="/">{$DomainModel->d_name}-{$DomainModel->d_text_logo}</a>/文章
</h1>
{/block}
{block name="main"}
<div style="height:50px"></div>
<div class="mod mod-nav">
<div id="book-nav" class="book-nav">
<ul class="clearfix">
<li><a class="on" href="/article/list.html" btn="search_category">全部</a></li>
<li><a href="/article/list-1-1.html" btn="search_category">高考作文</a></li>
<li><a href="/article/list-2-1.html" btn="search_category">小说解读</a></li>
<li><a href="/article/list-3-1.html" btn="search_category">影视解说</a></li>
<li><a href="/article/list-4-1.html" btn="search_category">王者荣耀</a></li>
<li><a href="/article/list-5-1.html" btn="search_category">日常八卦</a></li>
<li><a href="/article/list-6-1.html" btn="search_category">其它</a></li>
</ul>
</div>
</div>
<div class="mod new-book">
<div class="mod-head">
<h3>深度解说列表</h3>
</div>
<div class="top-index">
<ul class="clearfix">
{foreach $arrNewsNovel as $key => $vo}
{include file="public/articleList" /}
{/foreach}
</ul>
</div>
</div>
{/block}
{block name="customize"} {/block}

View File

@@ -0,0 +1,403 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
{site:grm page_code="h5_novel_chapter" diff="$Request.url" num="20" g_key="arrGrm" /}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="0" /}
{chapter:info n_id="$Request.route.intNovelId" c_sort_num="$Request.route.intChapterSort"
c_page="$Request.route.intChapterPage" c_key="arrChapter" /}
<meta charset="UTF-8" />
<meta name="robots" content="index, follow" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Cache-Control" content="no-transform, max-age=3600" />
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
<meta name="applicable-device" content="mobile" />
<meta name="keywords" content='{site:replace code="NOVEL@GETNOVELCHAPTER@KEYWORDS"}'>
<meta name="description" content='{site:replace code="NOVEL@GETNOVELCHAPTER@DESCRIPTION"}'>
<title>{site:replace code="NOVEL@GETNOVELCHAPTER@TITLE"}</title>
<link rel="icon" href="/template/kuangyu/public/img/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="/template/kuangyu/reader/wap/css/style.css" type="text/css">
<link rel="stylesheet" href="//at.alicdn.com/t/font_934628_byagqjb6vae.css" type="text/css">
<link rel="stylesheet" href="/public/layer/need/layer.css" type="text/css">
<!-- <script src="/public/jquery/jquery-3.7.1.min.js"></script> -->
<script src="/public/js/yueduqsbs.js"></script>
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELCHAPTER@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}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.c_sort_num"/}'>
<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="{$arrChapter.c_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']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELCHAPTER@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'] ?? '未知小说'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"image": "{$arrNovel.n_cover_path ?? ''}",
"url":'https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.c_sort_num" c_page="0"/}',
"inLanguage": "zh-CN",
"genre": "{$arrNovel.n_category ??''}",
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"hasPart": {
"@type": "CreativeWork",
"name": "{$arrChapter.c_name ?? ''}",
"url":'https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.c_sort_num" c_page="0"/}',
"description": '{site:replace code="NOVEL@GETNOVELCHAPTER@DESCRIPTION"}'
}
}
</script>
<script>
const strPcPath = `{$strPcPath}`;
</script>
</head>
<body class="skin-default">
{$arrGrm[0]|raw}
<aside id="asideChapter" class="aside" data-is-bind-scroll="true">
<i id="asideOverlay" class="aside-overlay" role="button" title="点击关闭浮层"></i>
<div id="asideChapterContent" class="aside-content">
<div class="module module-merge">
<div id="catelogX" class="chapter-tab-x active">
<ol id="volumes" class="chapter-ol chapter-ol-catalog">
</ol>
</div>
</div>
</div>
</aside>
{$arrGrm[1]|raw}
<div id="pageRead" class="page-read ">
<content id="readContent" class="page-read-content">
<div id="readLoadPrev" class="read-load-prev">
<a class="read-load-icon btn-any loading"></a>
<p class="read-load-p">下拉阅读上一章</p>
</div>
{$arrGrm[2]|raw}
<div id="readLoadNext" class="read-load-next">
{if $arrChapter.c_sort_num == 1 }
{$arrGrm[3]|raw}
<a href="javascript:" class="btn-normal red" data-size="14" role="button">上一章</a>
{elseif $arrChapter['pre_chapter'] && $arrChapter['pre_chapter']['c_sort_num']}
{$arrGrm[4]|raw}
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.pre_chapter.c_sort_num" c_page="0"/}'
class="btn-normal red" data-size="14" role="button">上一章</a>
{/if}
{if $arrChapter.next_chapter && $arrChapter.next_chapter.c_sort_num}
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.next_chapter.c_sort_num" c_page="0"/}'
class="btn-normal red" data-size="14" role="button">下一章</a>
{/if}
<a href="#" class="btn-blank blue" style="display:none">已经是最后一章了 »</a>
</div>
<article id="chapterContent" class="read-article" style="font-size: 1.125rem">
<section class="read-section jsChapterWrapper" data-chapter-id="4b2d5aab58d71">
<script>document.writeln(qsbs.bb('{$arrChapter.c_content}'));</script>
</section>
</article>
{$arrGrm[5]|raw}
<div id="readLoadNext" class="read-load-next">
{if $arrChapter.c_sort_num == 1}
<a href="javascript:" class="btn-normal red" data-size="14" role="button">上一章</a>
{elseif $arrChapter['pre_chapter'] && $arrChapter['pre_chapter']['c_sort_num']}
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.pre_chapter.c_sort_num" c_page="0"/}'
class="btn-normal red" data-size="14" role="button">上一章</a>
{/if}
{if $arrChapter.next_chapter && $arrChapter.next_chapter.c_sort_num}
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.next_chapter.c_sort_num" c_page="0"/}'
class="btn-normal red" data-size="14" role="button">下一章</a>
{/if}
<a id="aGotoBookEnd" href="#" class="btn-blank blue" style="display:none">已经是最后一章了 »</a>
</div>
</content>
<div class="page-read-top">
<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="2" />
</li>
</ol>
</nav>
<h1 id="chapterTitle" class="read-book-name">
<a href='{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{$arrNovel.n_name}
</a>
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.c_sort_num" c_page="0"/}'>{$arrChapter.c_name}</a>
</h1>
</div>
<mark id="readPageMark" class="read-page-mark">你刚刚阅读到这里</mark>
<p id="pageNum" class="read-page-num">1/1</p>
</div>
{$arrGrm[6]|raw}
<div id="pageReadOpt" class="page-read-opt" data-settings-str="dn:d|fs:3|skin:0|vh:v" data-book-publish="0"
data-sale-modes="1" data-has-sub="0">
<header class="header read-opt-header">
<a href="javascript:history.back();" class="header-back jsBack">
<i class="iconfont icon-previewleft">
<title>返回</title>
</i>
</a>
<div class="header-operate">
<!-- <a id="btnPledgeTrigger" href="javascript:" class="iconfont icon-wodetuijianzhuanhongbao" title="打赏" role="button">
</a> -->
<a id="readBtnMore" href="javascript:" class="iconfont icon-dotshorizontal jsLayerTrigger" title="更多操作"
data-rel="readMoreX" role="menu" aria-expanded="false">
</a>
</div>
</header>
<a href="javascript:" onclick="addBookshelfFun()" id="readJoinSJ" class="read-join-sj" role="button">加入书架</a>
<div id="readMoreX" class="read-opt-more">
<a href="/" class="read-opt-a">
<i class="iconfont icon-zhuye1"></i>
<h4>返回首页</h4>
</a>
<!-- <a href="javascript:" id="btnDownloadFreeChapters" class="read-opt-a">
<i class="iconfont icon-lixianxiazai"></i>
离线章节
</a> -->
<a href='{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' class="read-opt-a">
<i class="iconfont icon-SU"></i>
书籍详情
</a>
<a href="{$strBookShelfUrlTemp}" class="read-opt-a">
<i class="iconfont icon-books"></i>
返回我的书架
</a>
</div>
<div id="readOptProg" class="read-opt-bot read-opt-prog">
<div class="read-prog-info">
<a href="javascript:" id="readProgPrev" class="read-prog-prev">
<i class="iconfont icon-back" aria-hidden="true"></i>
上一章
</a>
<a href="javascript:" id="readProgNext" class="read-prog-next">
下一章
<i class="iconfont icon-you" aria-hidden="true"></i>
</a>
<div id="readProgVal" class="read-prog-val">
<h4 class="ell"></h4>
<output role="presentation"></output>
</div>
</div>
<div class="read-prog-bar">
<input type="range" id="readProgRange" name="read-prog" min="0" max="1000" value="0">
</div>
</div>
<div id="readOptSet" class="read-opt-bot read-opt-set">
<div class="read-set-font">
<a href="javascript:" id="readFontDown" class="read-font-down" data-index="0" role="button">
<i class="iconfont icon-yueduye_zitijianxiao"></i>
<aria>字号变小</aria>
</a>
<a href="javascript:" id="readFontUp" class="read-font-up" data-index="1" role="button">
<i class="iconfont icon-yueduye_zitizengda"></i>
<aria>字号变大</aria>
</a>
<div class="read-font-bar">
<div class="range">
<div class="range-track">
<a class="range-thumb" role="slider" aria-valuenow="0" aria-valuemax="8"
aria-valuemin="1"></a>
</div>
</div>
<div class="range" style="width: 668px;">
<div class="range-track" style="border-left-width: 190.857px;"><a class="range-thumb"
role="slider" aria-valuenow="3" aria-valuemax="8" aria-valuemin="1"></a></div>
</div><input type="range" id="readFontRange" name="font-size" min="1" max="8" value="3">
</div>
</div>
<div id="readSetSkin" class="read-set-skin">
<ul class="btn-group" role="radiogroup">
<li class="btn-group-cell read-set-cell">
<input type="radio" id="skinDefault" name="skin" value="default" checked="" data-index="0"
title="默认皮肤">
<label class="read-skin-default" for="skinDefault" title="默认皮肤">
<i class="iconfont icon-ok center"></i>
</label>
</li>
<li class="btn-group-cell read-set-cell">
<input type="radio" id="skinBlue" name="skin" value="blue" data-index="1" title="蓝色皮肤">
<label class="read-skin-blue" for="skinBlue" title="蓝色皮肤">
<i class="iconfont icon-ok center"></i>
</label>
</li>
<li class="btn-group-cell read-set-cell">
<input type="radio" id="skinGreen" name="skin" value="green" data-index="2" title="绿色皮肤">
<label class="read-skin-green" for="skinGreen" title="绿色皮肤">
<i class="iconfont icon-ok center"></i>
</label>
</li>
<li class="btn-group-cell read-set-cell">
<input type="radio" id="skinLight" name="skin" value="light" data-index="3" title="浅色皮肤">
<label class="read-skin-light" for="skinLight" title="浅色皮肤">
<i class="iconfont icon-ok center"></i>
</label>
</li>
</ul>
</div>
<div id="readSetLayout" class="read-set-layout">
<ul class="btn-group">
<li class="btn-group-cell read-set-cell">
<input type="radio" id="layoutV" name="layout" value="v" checked="">
<label class="read-btn-layout" for="layoutV">上下滑动</label>
</li>
<li class="btn-group-cell read-set-cell">
<input type="radio" id="layoutH" name="layout" value="h">
<label class="read-btn-layout" for="layoutH">左右滑动</label>
</li>
</ul>
</div>
</div>
{$arrGrm[8]|raw}
<footer class="read-opt-footer">
<div class="btn-group">
<!-- id="readBtnChapter" -->
<a href='{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}' class="btn-group-cell"
data-rel="asideChapter" role="button" aria-haspopup="true">
<i class="iconfont icon-mulu"></i>
<h4 class="read-opt-footer-h">目录</h4>
</a>
<!-- <a href="javascript:" id="readBtnProg" class="btn-group-cell jsLayerTrigger" data-rel="readOptProg"
role="menuitem">
<i class="iconfont icon-jindutiao"></i>
<h4 class="read-opt-footer-h">进度</h4>
</a> -->
<a href="javascript:" id="readBtnSet" class="btn-group-cell jsLayerTrigger" data-rel="readOptSet"
role="menuitem">
<i class="iconfont icon-shezhi"></i>
<h4 class="read-opt-footer-h">设置</h4>
</a>
<a href="javascript:" id="readBtnMode" class="btn-group-cell" data-mode="night" role="checkbox"
title="日间夜间模式切换">
<i class="iconfont icon-yueliang"></i>
<h4 class="read-opt-footer-h">夜间</h4>
</a>
<!-- <a href="/novel/332.html" class="btn-group-cell">
<i class="iconfont icon-pinglun"></i>
<h4 class="read-opt-footer-h">评论</h4>
</a> -->
</div>
</footer>
</div>
{$arrGrm[7]|raw}
<script type="text/javascript" src="/template/kuangyu/reader/wap/js/zepto.min.js"></script>
<script type="text/javascript" src="/template/kuangyu/reader/wap/js/reader.js"></script>
<script>
const strPushApi = `{site:cfg code="PUSH_API_DOMAIN" encode="false"/}`;
</script>
<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']}`,
'c_sort_num' : `{$arrChapter.c_sort_num}`,
'c_name' : `{$arrChapter.c_name}`,
};
</script>
<script type="text/javascript">
var book = {};
book.Info = {
"Id": `{$arrNovel['n_id']}`,
"Name": `{$arrNovel['n_name']}`,
"authorName": `{$arrNovel['n_author']}`
};
book.chapter = {
//页面进入加载的章节id
id: '{$arrChapter.next_chapter.c_sort_num ?? 1}',
//章节源id
source_id: '{$arrChapter.next_chapter.c_sort_num ?? 1}',
title: '{$arrChapter.next_chapter.c_name ?? 1}',
content: '',
//章节vip标识
vipStatus: 0,
//上一章id
prevId: '{$arrChapter.next_chapter.c_sort_num ?? 1}',
//下一章id
nextId: '{$arrNextChapter.c_sort_num ?? 1}'
};
book.chapterUrl = '{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.c_sort_num" c_page="0"/}' ;
book.url = '{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'
book.nextChapterVip = 0;
book.uid = 0;
</script>
<script src="/public/layer/layer.min.js"></script>
<script src="/template/kuangyu/reader/wap/js/global.js" type="text/javascript"></script>
<script src="/template/kuangyu/public/js/common.js"></script>
{block name="footer-js"}
<!-- <script>
document.addEventListener("DOMContentLoaded", function () {
// 使用示例
const statsData = {
n_id: '{$arrNovel.n_id}',
};
// 调用方法1
reportStats(statsData);
})
</script> -->
{/block}
{$arrGrm[10]|raw}
</body>
</html>

View File

@@ -0,0 +1,282 @@
{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}
{site:grm page_code="h5_novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}{/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 ?? ''}" />
<!-- 结构化数据 -->
<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>
</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">相邻推荐:
{volist name="arrNovel.n_forge_novel" id="ForgeNovel" key="key"}
{if $key < 100}
{$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="86400"}
<li>
{if $key < 100}
{$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}
</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_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,105 @@
{extend name="baseH5" /}
{block name="title"}{site:replace code="NOVEL@GETSEARCHNOVEL@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETSEARCHNOVEL@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETSEARCHNOVEL@DESCRIPTION"}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content={site:replace code="NOVEL@GETSEARCHNOVEL@TITLE"} />
<meta property="og:description" content='{site:replace code="NOVEL@GETSEARCHNOVEL@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}{site:souurl key='$Request.get.keyword' p='1'/}" />
<meta property="og:type" content="book" />
<meta property="og:site_name" content="{$DomainModel->d_name}">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{$Request.get.keyword} - {$DomainModel->d_name}搜索 - 第{$Request.get.intPage}页">
<meta name="twitter:description" content="{$Request.get.keyword}搜索结果第{$Request.get.intPage}页,免费阅读小说,快来体验!">
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SearchResultsPage",
"url": "https://{$DomainModel->d_name}{site:souurl key='$Request.get.keyword' p='1'/}",
"name": "{$DomainModel->d_name} - {$DomainModel->d_name}搜索 第{$Request.get.intPage}页",
"description": "搜索‘{$Request.get.keyword}’结果第{$Request.get.intPage}页,提供{$Request.get.keyword}创作的小说免费阅读。",
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"mainEntity": {
"@type": "Book",
"name": "{$DomainModel->d_name}",
"author": {
"@type": "Person",
"name": "{$DomainModel->d_name}"
},
"url": "https://{$DomainModel->d_domain}"
}
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
<h1 class="logo">
<a href="/">{$DomainModel->d_name}-{$DomainModel->d_text_logo}</a>
</h1>
{/block}
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
key="$Request.get.keyword"
d_key="d_key"
d_val="Novel"
p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_novel_search" diff="$Request.url" num="30" g_key="arrGrm" /}
<div class="wrap">
<div class="mod mod-search">
<div class="search-list">
<div class="result">
<h1>{$Request.get.keyword}搜索结果 - {$DomainModel->d_name} 第{$Request.get.intPage}页</h1>
搜索<span style="color:red">“{$Request.get.keyword}”</span>相关结果共有 <span style="color:red">{$resData.p_data.total}</span> 部小说
</div>
{if empty($resData.data)}
<p style="text-align: center;line-height: 60px">没有相关数据</p>
{else}
<ul class="clearfix">
{foreach $resData.data as $key=>$Novel}
{include file="public/novelListH" start="0"/}
{/foreach}
</ul>
{/if}
</div>
<div class="pages">
<ul class="pager">
{volist name="$resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>«</span></li>
{else}
<li><a href="{$vo.url}">«</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>»</span></li>
{else}
<li><a href="{$vo.url}">»</a></li>
{/if}
{/case}
{/switch}
{/volist}
</ul>
</div>
</div>
</div>
{/block}
{block name="customize"} {/block}