This commit is contained in:
make
2025-04-19 18:49:02 +08:00
parent 5bc9ecf9c8
commit 34f56d46d4
18 changed files with 285 additions and 155 deletions

View File

@@ -40,6 +40,9 @@
{/block}
{block name="main"}
{site:grm page_code="h5_index" diff="0" num="100" g_key="arrGrm" /}
<h2 class="site-description">{$DomainModel->d_index_description}</h2>
<div class="wrap-box" style="margin-top:0;">
<h3 class="wrap-title"><span>封面推荐</span></h3>
@@ -47,11 +50,12 @@
{novel:list count="8" sort_type="tuijian" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<dl class="rec-focus-book">
<dt class="book-img">
{$arrGrm[$d_key]|raw}
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
<img height="100" width="80" alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"
src="{$Novel.n_cover_path ?? ''}" >
</a>
</dt>
src="{$Novel.n_cover_path ?? ''}">
</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>
@@ -72,11 +76,19 @@
</h3>
<div class="sort-box">
<dl class="sort-book-first">
{novel:list count="1" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<dt class="book-img"><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'><img height="100" width="80"
class="lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"></a></dt>
<?php $start = 1 ;$start +=1 ;?>
{novel:list count="1" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel"
p_val="page_data" cache_life="86400"}
<dt class="book-img">
{$arrGrm[$d_key+8+10*$start]|raw}
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'><img
height="100" width="80" class="lazyload-img" data-encrypted="false"
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"></a></dt>
<dd class="book-info">
<h4><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name}</a></h4>
<p>作者:{$Novel.n_author}</p>
@@ -85,8 +97,13 @@
{/novel:list}
</dl>
<ul class="sort-book-list">
{novel:list count="9" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
<li><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name}</a><span>{$Novel.n_author}</span></li>
{novel:list count="9" n_category="$strCategoryPinyin" sort_type="news" d_key="d_key" d_val="Novel"
p_val="page_data" cache_life="86400"}
<li>
{$arrGrm[$d_key+8+10*$start]|raw}
<a
href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name}</a><span>{$Novel.n_author}</span>
</li>
{/novel:list}
</ul>

View File

@@ -18,6 +18,17 @@
{block name="nav-html"}{/block}
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_key="d_key"
d_val="Novel" n_num="total"
button_num="5" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="100" g_key="arrGrm" /}
<p class="site-description">{$strDescription??''}</p>
<div class="navpf">
@@ -51,10 +62,7 @@
<div class="wrap-box">
<h3 class="wrap-title"><span>更新列表</span></h3>
<ul class="sort_list">
{novel:pager page="1" limit="10" n_category="$Request.route.strCategory" sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_val="Novel" n_num="n_num"
p_val="page_data" button_num="5" cache_life="86400" func="generateCategoryPager"}
{foreach $resData.data as $key=>$Novel}
<li>
<span class="s1">[{$Novel.n_category}]</span>
@@ -67,23 +75,23 @@
<span class="s4">{$Novel.n_author}</span>
<span class="s5">{$Novel.n_update_time|date='m-d'}</span>
</li>
{/novel:pager}
{/foreach}
</ul>
</div>
<div class="row sort_page_num">
{volist name="page_data" id="vo" key="k"}
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $Request.route.intPage == 1}
{if $resData.p_data.page == 1}
<span>«</span>
{else}
<a href="{$vo.url}">«</a>
{/if}
{/case}
{case value="下一页"}
{if $Request.route.intPage >= $n_num}
{if $resData.p_data.page >= $resData.p_data.total}
<span>»</span>
{else}
<a href="{$vo.url}">»</a>

View File

@@ -126,6 +126,10 @@
{/block}
{block name="main"}
{chapter:pagerexp page="$Request.route.intPage" page="1" limit="100" n_id="$Request.route.intNovelId" d_key="d_key" d_val="chapter"
cache_life="86400" button_num="3" sort_type="$Request.route.strOrder" func="generateChapterPager" export_name="resData" /}
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
<div class="block-box">
<div class="book-main">
@@ -178,14 +182,14 @@
{include file="public/allChapterPage" start="1"/}
<ul class="chapter-list">
{chapter:pager page="1" limit="100" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" p_val="page_data" cache_life="86400" button_num="100" sort_type="$Request.route.strOrder" func="generateChapterPager"}
{foreach $resData.data as $key=>$Chapter}
<li>
{$arrGrm[$d_key]|raw}
{$arrGrm[$key]|raw}
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$Chapter.c_sort_num" c_page="0"/}'
title="{$arrNovel['n_name']} {$Chapter.c_name}">{$Chapter.c_name}</a>
</li>
{/chapter:pager}
{/foreach}
</ul>
{include file="public/allChapterPage" /}

View File

@@ -2,9 +2,12 @@ $Novel.n_id{extend name="baseH5" /}
{block name="title"}{site:replace code="NOVEL@GETNOVELINFO@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}{/block}
{block name="head"}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="0" /}
{site:grm page_code="pc_novel_info" diff="$arrNovel.n_id" num="100" g_key="arrGrm" /}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />

View File

@@ -15,48 +15,55 @@
{block name="main"}
<div class="wrap-box">
<h1><span>{$Request.get.keyword}</span>搜索结果 - {$DomainModel->d_name} 第{$intPage}页</h1>
<!-- <h3 class="wrap-title"><span>搜索:</span><span style="color: red;">{$Request.get.keyword}</span>结果</h3> -->
{if empty($arrPage.data)}
<p style="text-align: center;line-height: 60px">没有相关数据</p>
{else}
<div class="rec-focus">
{foreach $arrPage.data as $key=>$Novel}
<dl class="rec-focus-book">
<dt class="book-img">
<a href='{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'>
<img height="100" width="80"
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel['n_name'] ?? ''}小说封面 - {$Novel.n_author}最新章节" class="lazy lazyload-img">
</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>
{/foreach}
</div>
{/if}
{novel:pagerexp page="$Request.get.page" limit="30"
key="$Request.get.keyword"
d_key="d_key"
d_val="Novel" n_num="total"
p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="pc_novel_search" diff="$resData.p_data.page" num="100" g_key="arrGrm" /}
<div class="wrap-box">
<h1><span>{$Request.get.keyword}</span>搜索结果 - {$DomainModel->d_name} 第{$resData.p_data.page}页</h1>
{if $resData.p_data.total < 1} <p style="text-align: center;line-height: 60px">没有相关数据</p>
{else}
<div class="rec-focus">
{foreach $resData.data as $key=>$Novel}
<dl class="rec-focus-book">
<dt class="book-img">
<a href='{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>
<img height="100" width="80" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel['n_name'] ?? ''}小说封面 - {$Novel.n_author}最新章节" class="lazy lazyload-img">
</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>
{/foreach}
</div>
{/if}
</div>
<div class="row sort_page_num">
{volist name="arrPaginator" id="vo" key="k"}
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $intPage == 1}
{if $resData.p_data.page == 1}
<span>«</span>
{else}
<a href="{$vo.url}">«</a>
{/if}
{/case}
{case value="下一页"}
{if $intPage >= $intTotalPage}
{if $resData.p_data.page >= $resData.p_data.total}
<span>»</span>
{else}
<a href="{$vo.url}">»</a>

View File

@@ -1,6 +1,6 @@
{if !empty($page_data)}
{if !empty($resData.p_data.pager)}
<div class="page_num">
{volist name="page_data" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="prev"}
<a href="{$item.url ? $strPcPath . $item.url: 'javascript:void(0)'}"
class="z {$item.disabled ? 'disabled' : ''}">
@@ -10,10 +10,12 @@
{/volist}
<select onchange="self.location.href=options[selectedIndex].value">
{volist name="page_data" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="page"}
<?php $start = ($item['label'] - 1) * 100 + 1; ?>
<?php $end = $item['label'] * 100; ?>
<?php $intLimit = $resData['p_data']['limit']; ?>
<?php $start = ($item['label'] - 1) * $intLimit + 1; ?>
<?php $end = $item['label'] * $intLimit; ?>
<option value="{$strPcPath}{$item.url}" {$item.current ? 'selected' : ''}>
第{$start}-{$end}章
</option>
@@ -21,7 +23,7 @@
{/volist}
</select>
{volist name="page_data" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="next"}
<a href="{$item.url ? $strPcPath . $item.url: 'javascript:void(0)'}"
class="y {$item.disabled ? 'disabled' : ''}">

View File

@@ -1,7 +1,7 @@
{extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="title"}我的书架{/block}
{block name="keywords"}我的书架{/block}
{block name="description"}我的书架{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$strTitle??''}" />
@@ -40,9 +40,9 @@
{block name="customize"}
<script>
const strNovelUrlTemp = `{$strNovelUrlTemp}`;
const strNovelChapterUrlTemp = `{$strNovelChapterUrlTemp}`;
const strSearchUrlTemp = `{$strSearchUrlTemp}`;
const strNovelUrlTemp = `{site:replace code="NOVEL_INFO_URL"}`;
const strNovelChapterUrlTemp = `{site:replace code="CONTENT_INFO_URL"}`;
const strSearchUrlTemp = `{site:replace code="SEARCH_INFO_URL"}`;
// 调用展示书架功能
displayShujia();
</script>

View File

@@ -1,7 +1,7 @@
{extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="title"}我的阅读记录{/block}
{block name="keywords"}我的阅读记录{/block}
{block name="description"}我的阅读记录{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$strTitle??''}" />
@@ -40,9 +40,9 @@
{block name="customize"}
<script>
const strNovelUrlTemp = `{$strNovelUrlTemp}`;
const strNovelChapterUrlTemp = `{$strNovelChapterUrlTemp}`;
const strSearchUrlTemp = `{$strSearchUrlTemp}`;
const strNovelUrlTemp = `{site:replace code="NOVEL_INFO_URL"}`;
const strNovelChapterUrlTemp = `{site:replace code="CONTENT_INFO_URL"}`;
const strSearchUrlTemp = `{site:replace code="SEARCH_INFO_URL"}`;
// 调用展示书架功能
displayHistory();
</script>

View File

@@ -56,6 +56,17 @@
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_key="d_key"
d_val="Novel" n_num="total"
button_num="10" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="100" g_key="arrGrm" /}
<div class="container">
<div class="row row-section">
<div class="layout layout-col3">
@@ -132,11 +143,7 @@
<div class="layout layout2 layout-col2 fl">
<h2 class="layout-tit">最近更新小说列表</h2>
<ul class="txt-list txt-list-row5">
{novel:pager page="1" limit="30" n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_val="Novel" n_num="n_num"
p_val="page_data" button_num="10" cache_life="86400" func="generateCategoryPager"}
{foreach $resData.data as $key=>$Novel}
<li>
<span class="s1">[{$Novel->n_category ?? ''}</span>
<span class="s2"><a
@@ -148,24 +155,24 @@
<span class="s4">{$Novel.n_author}</span>
<span class="s5">{:date('m-d')}</span>
</li>
{/novel:pager}
{/foreach}
</ul>
</div>
</div>
<!-- 分页 -->
<div class="row sort_page_num">
{volist name="page_data" id="vo" key="k"}
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $Request.route.intPage == 1}
{if $resData.p_data.page == 1}
<span>«</span>
{else}
<a href="{$strPcPath}{$vo.url}">«</a>
{/if}
{/case}
{case value="下一页"}
{if $Request.route.intPage >= $n_num}
{if $resData.p_data.page >= $resData.p_data.total}
<span>»</span>
{else}
<a href="{$strPcPath}{$vo.url}">»</a>

View File

@@ -3,8 +3,10 @@
{block name="keywords"}{site:replace code="NOVEL@GETNOVELCATALOG@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELCATALOG@DESCRIPTION"}{/block}
{block name="head"}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="0" /}
{site:grm page_code="pc_novel_catalog" diff="$arrNovel.n_id" num="100" g_key="arrGrm" /}
{site:grm page_code="pc_novel_catalog" diff="$arrNovel.n_id" num="100" g_key="arrGrm" /}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
@@ -61,8 +63,7 @@
{/block}
{block name="head-css"}
<link rel="canonical"
href='{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<link rel="canonical" href='{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{/block}
{block name="logo-html"}
<h2>
@@ -79,6 +80,9 @@
{block name="main"}
{chapter:pagerexp page="$Request.route.intPage" page="1" limit="100" n_id="$Request.route.intNovelId" d_key="d_key" d_val="chapter"
cache_life="1000" button_num="3" sort_type="$Request.route.strOrder" func="generateChapterPager" export_name="resData" /}
<div class="container biqunaicc">
<div class="row row-detail">
<div class="layout layout-col1">
@@ -129,14 +133,14 @@
<p>相邻推荐:
{volist name="arrNovel.n_forge_novel" id="ForgeNovel" key="key"}
{if $key<20 } {$arrGrm[$key+20]|raw} {/if} <a
href='{$strPcPath}{site:nnurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" n_fid="$ForgeNovel.n_forge_id"/}'
class="red">{$ForgeNovel.n_forge_title}</a>
{/volist}
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}
{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>
@@ -148,10 +152,10 @@
<h2 class="layout-tit">《{$arrNovel.n_name}》章节列表(第{$Request.route.intPage}页)切换倒序/正序:
{if $Request.route.strOrder == 'zheng'}
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="dao" page="1"/}'
class="habt y">点击切换倒序</a>
class="habt y">点击切换倒序</a>
{else}
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="habt y">点击切换正序</a>
class="habt y">点击切换正序</a>
{/if}
</h2>
@@ -159,15 +163,16 @@
{include file="pc/public/allChapterPage" /}
<ul class="section-list fix ycxsid">
{chapter:pager page="1" limit="100" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" p_val="page_data" cache_life="86400" button_num="100" sort_type="$Request.route.strOrder" func="generateChapterPager"}
{foreach $resData.data as $key=>$Chapter}
<li>
{$arrGrm[$d_key]|raw}
{$arrGrm[$key]|raw}
<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:pager}
{/foreach}
</ul>
<!-- 目录下拉分页-->
@@ -179,7 +184,8 @@
<h2 class="layout-tit">已完结热门小说推荐</h2>
<div class="layout layout-col3">
{novel:list count="6" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel" p_val="page_data" cache_life="86400"}
{novel:list count="6" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="d_key" d_val="Novel"
cache_life="86400"}
<div class="item">
<div class="image">
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>

View File

@@ -9,63 +9,69 @@
{block name="body-class"}novel_home novel_search_page{/block}
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
key="$Request.get.keyword"
d_key="d_key"
d_val="Novel" n_num="total"
p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="pc_novel_search" diff="$resData.p_data.page" num="100" g_key="arrGrm" /}
<div class="container">
<div class="row">
<div class="layout layout3 layout-col3 fl">
<h1>{$Request.get.keyword}搜索结果 - {$DomainModel->d_name} 第{$Request.get.page}页</h1>
<h1>{$Request.get.keyword}搜索结果 - {$DomainModel->d_name} 第{$resData.p_data.page}页</h1>
<div class="result search_tip">
搜索<span style="color:red">“{$Request.get.keyword}”</span>相关结果共有 <span
style="color:red">{$total}</span> 部小说
style="color:red">{$resData.p_data.total}</span> 部小说
</div>
{if $total <1}
<p style="text-align: center;line-height: 60px">没有相关数据</p>
{else}
<div class="layout layout-col3">
{if $resData.p_data.total <1} <p style="text-align: center;line-height: 60px">没有相关数据</p>
{else}
<div class="layout layout-col3">
{novel:pager page="$Request.get.page" limit="30"
key="$Request.get.keyword"
d_key="d_key"
d_val="Novel" n_num="total"
p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager"}
<div class="item">
<div class="image">
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'>
<img style="min-height:120px;" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel['n_name'] ?? ''}小说封面 - {$Novel.n_author}最新章节" class="lazy lazyload-img">
</a>
{foreach $resData.data as $key=>$Novel}
<div class="item">
<div class="image">
<a href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'>
<img style="min-height:120px;" src="/static/img/default.jpg"
data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel['n_name'] ?? ''}小说封面 - {$Novel.n_author}最新章节"
class="lazy lazyload-img">
</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>
<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>
{/foreach}
</div>
{/novel:pager}
</div>
{/if}
{/if}
</div>
</div>
<!-- 分页 -->
<div class="row sort_page_num">
{volist name="page_data" id="vo" key="k"}
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $Request.get.page == 1}
{if $resData.p_data.page == 1}
<span>«</span>
{else}
<a href="{$strPcPath}{$vo.url}">«</a>
{/if}
{/case}
{case value="下一页"}
{if $Request.get.page >= $total}
{if $resData.p_data.page >= $resData.p_data.total}
<span>»</span>
{else}
<a href="{$strPcPath}{$vo.url}">»</a>

View File

@@ -2,6 +2,7 @@
{block name="title"}{site:replace code="INDEX@INDEX@TITLE"}{/block}
{block name="keywords"}{site:replace code="INDEX@INDEX@KEYWORDS"}{/block}
{block name="description"}{site:replace code="INDEX@INDEX@DESCRIPTION"}{/block}
{block name="head-css"}
<link rel="canonical" href="https://{$DomainModel->d_domain}/">
{/block}
@@ -24,6 +25,9 @@
{/block}
{block name="main"}
{site:grm page_code="h5_index" diff="0" num="150" g_key="arrGrm" /}
<div class="container biqunaicc">
<div class="row">
<div class="layout layout-col2">

View File

@@ -1,8 +1,8 @@
{if !empty($page_data)}
{if !empty($resData.p_data.pager)}
<div class="page_num">
{volist name="page_data" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="prev"}
{$arrGrm[$key]|raw}
<a href="{$item.url ?: '#'}"
@@ -13,9 +13,9 @@
{/volist}
<select onchange="self.location.href=options[selectedIndex].value">
{volist name="page_data" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="page"}
<?php $intLimit = 100; ?>
<?php $intLimit = $resData['p_data']['limit']; ?>
<?php $intStart = ($item['label'] - 1) * $intLimit + 1; ?>
<?php $end = $item['label'] * $intLimit; ?>
<option value="{$item.url}" {$item.current ? 'selected' : ''}>
@@ -25,7 +25,7 @@
{/volist}
</select>
{volist name="page_data" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="next"}
{$arrGrm[$key]|raw}
<a href="{$item.url ?: '#'}"

View File

@@ -1,8 +1,9 @@
{extend name="baseH5" /}
{block name="title"}我的书架{/block}
{block name="keywords"}我的书架{/block}
{block name="description"}我的书架{/block}
{block name='nav-active-class'}home{/block}
{block name="title"}{/block}
{block name="body-class"}novel_so{/block}
@@ -24,9 +25,9 @@
{block name="customize"}
<script>
const strNovelUrlTemp = `{$strNovelUrlTemp}`;
const strNovelChapterUrlTemp = `{$strNovelChapterUrlTemp}`;
const strSearchUrlTemp = `{$strSearchUrlTemp}`;
const strNovelUrlTemp = `{site:replace code="NOVEL_INFO_URL"}`;
const strNovelChapterUrlTemp = `{site:replace code="CONTENT_INFO_URL"}`;
const strSearchUrlTemp = `{site:replace code="SEARCH_INFO_URL"}`;
// 调用展示书架功能
displayShujia();
</script>

View File

@@ -1,9 +1,10 @@
{extend name="baseH5" /}
{block name="title"}我的阅读记录{/block}
{block name="keywords"}我的阅读记录{/block}
{block name="description"}我的阅读记录{/block}
{block name='nav-active-class'}home{/block}
{block name="title"}{/block}
{block name="body-class"}novel_so{/block}
{block name='head-name'}{$DomainModel->d_name}{/block}
@@ -24,9 +25,9 @@
{block name="customize"}
<script>
const strNovelUrlTemp = `{$strNovelUrlTemp}`;
const strNovelChapterUrlTemp = `{$strNovelChapterUrlTemp}`;
const strSearchUrlTemp = `{$strSearchUrlTemp}`;
const strNovelUrlTemp = `{site:replace code="NOVEL_INFO_URL"}`;
const strNovelChapterUrlTemp = `{site:replace code="CONTENT_INFO_URL"}`;
const strSearchUrlTemp = `{site:replace code="SEARCH_INFO_URL"}`;
// 调用展示书架功能
displayHistory();
</script>

View File

@@ -109,13 +109,14 @@ class ChapterService
/**
* 获取小说分页数据
* 获取小说章节分页数据
*
* @param array $arrParams
* @return array
*/
public function getNovelPager(array $arrParams): array
{
$arrParams = [
'page' => max((int)($arrParams['page'] ?? 1), 1),
'limit' => (int)($arrParams['limit'] ?? 10),

View File

@@ -7,8 +7,8 @@ use think\template\TagLib;
class Chapter extends TagLib
{
protected $tags = [
'list' => ['attr' => 'limit,n_category,sort_type,n_status,n_sex,key,diff_key,cache_life,d_key,d_val'],
'pager' => ['attr' => 'page,limit,n_category,sort_type,n_status,n_sex,key,diff_key,cache_life,d_key,d_val,p_val,export_name'],
'list' => ['attr' => 'limit,n_category,sort_type,n_status,n_sex,key,diff_key,cache_life,d_key,d_val', 'close' => 1],
'pager' => ['attr' => 'page,limit,n_category,sort_type,n_status,n_sex,key,diff_key,cache_life,d_key,d_val,p_val,export_name', 'close' => 1],
'pagerexp' => ['attr' => 'page,limit,n_category,sort_type,n_status,n_sex,key,diff_key,cache_life,d_key,d_val,p_val,func,export_name', 'close' => 0],
'info' => ['attr' => 'n_id,n_key', 'close' => 0],
];
@@ -101,6 +101,7 @@ EOT;
} else {
$strParse .= <<<EOT
\${$export_name} = \${$arrDataName};
?>
EOT;
}
return $strParse;

View File

@@ -100,7 +100,7 @@
# 02、 获取分页小说数据并且遍历
# 02-1、 获取分页小说数据并且遍历
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)
$page ?? '1'; # 页码
$limit ?? '10'; # 查询条数
@@ -115,7 +115,6 @@
$d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称
$d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称
$p_val ?? 'p_val'; # 分页页码数据,这是一个数组。和之前控制器渲染的那个数组一致的。
$n_num ?? 'n_num'; # 数据总量。和之前控制器渲染的那个 intTotalPage 一致的。
$func ; # 这个参数是一个回调方法名,用来渲染分页页码数据的,该方法需要在 NovelService 类里面实现func(array $arrParams, array $arrSort, array $arrNovel) generateCategoryPager generateSearchPager
# 样例
{novel:pager page="1" limit="10" n_category="$Request.route.category" d_key="d_key" d_val="novel" p_val="page_data" button_num="3" cache_life="1000" func="generateSearchPager"}
@@ -125,9 +124,42 @@
Author: {$novel.n_category}
</li>
{/novel:pager}
{php}var_dump($page_data);{/php}
# 02-2、 获取分页小说数据不遍历
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)
$page ?? '1'; # 页码
$limit ?? '10'; # 查询条数
$n_category ?? "all"; # 查询分类
$sort_type ?? "all"; # 排序方式
$n_status ?? "all"; # 查询状态
$n_sex ?? "all"; # 查询性别
$key ?? ""; # 查询 搜索
$button_num ?? "10"; # 分页按钮数量
$diff_key ?? ""; # 缓存键值差异
$cache_life ?? '0'; # 缓存时间如果需要开启缓存这个字段必须传而且必须大于0
$d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称
$d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称
$p_val ?? 'p_val'; # 分页页码数据,这是一个数组。和之前控制器渲染的那个数组一致的。
$export_name ?? 'n_num'; # 查询出来的 所有数据集合,所有数据都可以在里面取。
$func ; # 这个参数是一个回调方法名,用来渲染分页页码数据的,该方法需要在 NovelService 类里面实现func(array $arrParams, array $arrSort, array $arrNovel) generateCategoryPager generateSearchPager
# 样例
{novel:pagerexp page="$Request.get.page" limit="30"
key="$Request.get.keyword"
d_key="d_key"
d_val="Novel" n_num="total"
p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /}
结构
resData = [
data = []
p_data = [
'total' => $intTotal,
'page' => $intPage,
'limit' => $intLimit,
'pages' => ceil($intTotal / $intLimit)
],
]
{php}var_dump($resData['p_data']);{/php}
# 03、获取替换模板替换后的数据
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)
@@ -213,7 +245,7 @@
{$arrChapter01.c_name}
# 11、 获取指定小说分页数据并且遍历
# 11-1、 获取指定小说章节分页数据并且遍历
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)
$page ?? '1'; # 页码
$limit ?? '10'; # 查询条数
@@ -228,7 +260,7 @@
$p_val ?? 'p_val'; # 分页页码数据,这是一个数组。和之前控制器渲染的那个数组一致的。
$func ; # 这个参数是一个回调方法名,用来渲染分页页码数据的,该方法需要在 NovelService 类里面实现func(array $arrParams, array $arrSort, array $arrNovel)
# 样例
{chapter:pager page="1" limit="10" n_id="$Request.get.n_id" d_key="d_key" d_val="chapter" cache_life="1000" button_num="3" sort_type="dao" func="generateChapterPager"}
{chapter:pager page="$Request.get.page" limit="10" n_id="$Request.get.n_id" d_key="d_key" d_val="chapter" cache_life="1000" button_num="3" sort_type="dao" func="generateChapterPager"}
<li>
Index: {$d_key}
章节名称: {$chapter.c_name}
@@ -236,6 +268,36 @@
</li>
{/chapter:pager}
# 11-2、 获取分页小说章节数据不遍历
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)
$page ?? '1'; # 页码
$limit ?? '10'; # 查询条数
$n_id ; # 小说ID
$sort_type ?? "all"; # 排序方式
$button_num ?? "10"; # 分页按钮数量
$diff_key ?? ""; # 缓存键值差异
$cache_life ?? '0'; # 缓存时间如果需要开启缓存这个字段必须传而且必须大于0
$d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称
$d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称
$p_val ?? 'p_val'; # 分页页码数据,这是一个数组。和之前控制器渲染的那个数组一致的。
$export_name ?? 'n_num'; # 查询出来的 所有数据集合,所有数据都可以在里面取。
$func ; # 这个参数是一个回调方法名,用来渲染分页页码数据的,该方法需要在 NovelService 类里面实现func(array $arrParams, array $arrSort, array $arrNovel) generateCategoryPager generateSearchPager
# 样例
{chapter:pagerexp page="$Request.get.page" page="1" limit="10" n_id="$Request.get.n_id" d_key="d_key" d_val="chapter" cache_life="1000" button_num="3" sort_type="$Request.route.strOrder" func="generateChapterPager" export_name="resData" /}
结构
resData = [
data = []
p_data = [
'pager' => []
'total' => $intTotal,
'page' => $intPage,
'limit' => $intLimit,
'pages' => ceil($intTotal / $intLimit)
],
]
{php}var_dump($resData['p_data']);{/php}
# 12、 获取干扰码
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)