This commit is contained in:
make
2025-04-21 11:59:52 +08:00
parent 3216cffb5e
commit adf88aef23
27 changed files with 543 additions and 329 deletions

View File

@@ -133,7 +133,7 @@
{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"
{chapter:pagerexp page="$Request.route.intPage" 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>

View File

@@ -1,4 +1,5 @@
{extend name="baseH5" /}
{block name="title"}{site:replace code="NOVEL@GETNOVELCHAPTER@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELCHAPTER@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELCHAPTER@DESCRIPTION"}{/block}
@@ -134,7 +135,7 @@ c_page="$Request.route.intChapterPage" c_key="arrChapter" /}
<ul>
{if $arrChapter.c_sort_num == 1}
<li><a href='javascript:'>上一页</a></li>
{else}
{elseif $arrChapter['pre_chapter'] && $arrChapter['pre_chapter']['c_sort_num']}
<li><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="$arrChapter.pre_chapter.c_page"/}'>上一页</a>
</li>
@@ -159,7 +160,7 @@ c_page="$Request.route.intChapterPage" c_key="arrChapter" /}
<ul>
{if $arrChapter.c_sort_num == 1}
<li><a href='javascript:'>上一页</a></li>
{else}
{elseif $arrChapter['pre_chapter'] && $arrChapter['pre_chapter']['c_sort_num']}
<li><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="$arrChapter.pre_chapter.c_page"/}'>上一页</a>
</li>

View File

@@ -3,6 +3,40 @@
{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='nav-active-class'}home{/block}
{block name="body-class"}novel_so novel_search_page{/block}
@@ -12,14 +46,12 @@
</h2>
{/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"
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" /}
@@ -54,7 +86,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager"
<div class="row sort_page_num">
{volist name="resData.p_data.pager" id="vo" key="k"}
{volist name="$resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}

View File

@@ -13,8 +13,8 @@
{
"@context": "https://{$DomainModel->d_domain}{$strBookShelfUrlTemp}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"headline": "我的书架",
"description": "我的书架",
"datePublished": "{:date('Y-m-d')}"
}
</script>

View File

@@ -1,7 +1,9 @@
{extend name="basePc" /}
{block name="title"}{site:replace code="NOVEL@GETNOVELCATALOG@TITLE"}{/block}
{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" /}
@@ -9,7 +11,7 @@
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELCATALOG@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" />
@@ -28,7 +30,7 @@
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELCATALOG@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
@@ -62,6 +64,7 @@
</script>
{/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" /}'>
{/block}
@@ -80,8 +83,8 @@
{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" /}
{chapter:pagerexp page="$Request.route.intPage" 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" /}
<div class="container biqunaicc">
<div class="row row-detail">

View File

@@ -3,12 +3,14 @@
{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="120" g_key="arrGrm" /}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
@@ -27,7 +29,7 @@
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
<meta name="twitter:description" content="'{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
@@ -61,10 +63,12 @@
</script>
{/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" /}'>
{/block}
{block name="logo-html"}
<h2>
<a href="{$strPcPath}/">

View File

@@ -2,6 +2,41 @@
{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='nav-active-class'}home{/block}
{block name="title"}{/block}

View File

@@ -1,39 +1,44 @@
{extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELCATALOG@TITLE"}{/block}
{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="h5_novel_catalog " diff="$Request.url" num="120" g_key="arrGrm" /}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}章节目录 - {$DomainModel->d_name} 第{$intPage}页 " />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<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="website" />
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="$intFirstChapterSort"/}'>
content='https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.c_name ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<meta property="og:novel:latest_chapter_url"
content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<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'] ??'佚名'}"
@@ -43,16 +48,43 @@
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="$intPage"/}',
"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",
"genre": "{$arrNovel['n_category'] ?? '未知分类'}",
"hasPart": {
"@type": "WebPage",
"name": "{$arrNovel['n_name'] ?? '未知小说'}章节目录 第{$intPage}页",
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="$intPage"/}'
"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"}
@@ -62,6 +94,10 @@
{/block}
{block name="main"}
{chapter:pagerexp page="$Request.route.intPage" 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" /}
<div class="wrap">
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
@@ -73,13 +109,13 @@
</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" />
</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">
<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" />
@@ -91,7 +127,7 @@
<div class="mod mod-attentions">
{$arrGrm[0]|raw}
<div class="mod-head">
<h1>{$arrNovel['n_name']}章节目录 - {$arrNovel['n_author']} - {$DomainModel->d_name} 第{$intPage}页</h1>
<h1>{$arrNovel['n_name']}章节目录 - {$arrNovel['n_author']} - {$DomainModel->d_name} 第{$Request.route.intPage}页</h1>
</div>
@@ -100,10 +136,10 @@
{include file="public/allChapterPage" start="0"/}
<ul class="clearfix">
{volist name="arrPage.data" id="Chapter" key="key"}
{volist name="resData.data" id="Chapter" key="key"}
<li>
{$arrGrm[$key]|raw}
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$Chapter.c_sort_num" c_page="0"/}'
title="{$arrNovel['n_name']} {$Chapter.c_name}">{$Chapter.c_name}</a>
</li>
{/volist}

View File

@@ -2,15 +2,21 @@
<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="{$strKeywords??''}">
<meta name="description" content="{$strDescription??''}">
<title>{$strTitle??''}</title>
<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">
@@ -21,9 +27,9 @@
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<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]" /}' />
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}" />
@@ -31,16 +37,16 @@
<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]"/}'>
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]" /}'>
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="{$strDescription ?? '暂无简介'}" />
<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">
@@ -58,15 +64,15 @@
"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"/}',
"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": "{$strDescription}"
"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"}'
}
}
@@ -99,17 +105,17 @@
</div>
{$arrGrm[2]|raw}
<div id="readLoadNext" class="read-load-next">
{if $arrChapter.c_sort_num == 1}
{if $arrChapter.c_sort_num == 1 }
{$arrGrm[3]|raw}
<a href="javascript:" class="btn-normal red" data-size="14" role="button">上一章</a>
{else}
{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="$arrPreChapter[c_sort_num]" c_page="0"/}'
<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 $arrNextChapter && $arrNextChapter.c_sort_num}
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrNextChapter[c_sort_num]" c_page="0"/}'
{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>
@@ -124,13 +130,13 @@
<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>
{else}
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrPreChapter[c_sort_num]" c_page="0"/}'
{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 $arrNextChapter && $arrNextChapter.c_sort_num}
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrNextChapter[c_sort_num]" c_page="0"/}'
{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}
@@ -150,13 +156,13 @@
</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" />
</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">
<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" />
@@ -164,10 +170,10 @@
</ol>
</nav>
<h1 id="chapterTitle" class="read-book-name">
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
<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>
<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>
@@ -201,7 +207,7 @@
<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">
<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>
@@ -298,7 +304,7 @@
<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"
<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>
@@ -356,20 +362,20 @@
};
book.chapter = {
//页面进入加载的章节id
id: '{$arrPreChapter.c_sort_num ?? 1}',
id: '{$arrChapter.next_chapter.c_sort_num ?? 1}',
//章节源id
source_id: '{$arrPreChapter.c_sort_num ?? 1}',
title: '{$arrPreChapter.c_name ?? 1}',
source_id: '{$arrChapter.next_chapter.c_sort_num ?? 1}',
title: '{$arrChapter.next_chapter.c_name ?? 1}',
content: '',
//章节vip标识
vipStatus: 0,
//上一章id
prevId: '{$arrPreChapter.c_sort_num ?? 1}',
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.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>

View File

@@ -1,13 +1,20 @@
{extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{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="h5_novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' />
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
<meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
@@ -15,16 +22,16 @@
<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="$intFirstChapterSort"/}'>
content='https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.c_name ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<meta property="og:novel:latest_chapter_url"
content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
@@ -44,7 +51,7 @@
},
"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]" /}',
"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",
@@ -53,10 +60,32 @@
"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"}
@@ -68,7 +97,6 @@
{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">
@@ -79,13 +107,13 @@
</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" />
</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">
<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" />
@@ -109,19 +137,19 @@
<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>作者:<a href='{site:souurl key="$arrNovel.n_author" p="1"/}'>{$arrNovel.n_author}</a></span>
<!-- <span>字数54.20万字</span> -->
<span>阅读:{$arrNovelClicks.total}</span>
<span>阅读:{$arrNovel.arrNovelClicks.total}</span>
</p>
</dd>
</dl>
{$arrGrm[1]|raw}
<div class="btns">
<ul>
{if !empty($intFirstChapterSort)}
{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="$intFirstChapterSort"/}'
<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}
@@ -151,13 +179,13 @@
<div class="intro">
<div class="content">
<p>
{$strFocus}
{$arrNovel.strFocus}
</p>
<p class="xianglingtuijian">相邻推荐:
{volist name="arrNovel.n_forge_novel" id="ForgeNovel" key="key"}
{$arrGrm[$key+20]|raw}
<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>
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>
@@ -174,18 +202,18 @@
</div>
<div class="attentions">
<ul class="clearfix">
{volist name="arrChapter" id="Chapter" key="key"}
{chapter:list count="10" sort_type="dao" n_id="$arrNovel.n_id" d_key="d_key" d_val="Chapter" cache_life="86400"}
<li>
{$arrGrm[$key]|raw}
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'
<a href='{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$Chapter.c_sort_num" c_page="0"/}'
title="{$arrNovel.n_name}-{$Chapter.c_name}">{$Chapter.c_name}</a>
</li>
{/volist}
{/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"/}'
<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>
@@ -197,7 +225,7 @@
</div>
<div class="book-slide">
<ul class="clearfix">
{foreach $arrRelateveNovel as $Novel}
{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"/}'>

View File

@@ -1,27 +1,29 @@
{extend name="baseH5" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{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="{$strTitle??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{site:souurl key='$strSearchKeywords' p='1'/}" />
<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="{$strSearchKeywords} - {$DomainModel->d_name}搜索 - 第{$intPage}页">
<meta name="twitter:description" content="{$strSearchKeywords}搜索结果第{$intPage}页,免费阅读小说,快来体验!">
<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='$strSearchKeywords' p='1'/}",
"name": "{$DomainModel->d_name} - {$DomainModel->d_name}搜索 第{$intPage}页",
"description": "搜索‘{$strSearchKeywords}’结果第{$intPage}页,提供{$strSearchKeywords}创作的小说免费阅读。",
"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",
@@ -35,6 +37,7 @@
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
@@ -45,20 +48,27 @@
{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>{$strSearchKeywords}搜索结果 - {$DomainModel->d_name} 第{$intPage}页</h1>
搜索<span style="color:red">“{$strSearchKeywords}”</span>相关结果共有 <span style="color:red">{$arrPage.total}</span> 部小说
<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($arrPage.data)}
{if empty($resData.data)}
<p style="text-align: center;line-height: 60px">没有相关数据</p>
{else}
<ul class="clearfix">
{foreach $arrPage.data as $key=>$Novel}
{foreach $resData.data as $key=>$Novel}
{include file="public/novelListH" start="0"/}
{/foreach}
</ul>
@@ -67,17 +77,17 @@
</div>
<div class="pages">
<ul class="pager">
{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}
<li class="disabled"><span>«</span></li>
{else}
<li><a href="{$vo.url}">«</a></li>
{/if}
{/case}
{case value="下一页"}
{if $intPage >= $intTotalPage}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>»</span></li>
{else}
<li><a href="{$vo.url}">»</a></li>

View File

@@ -7,7 +7,7 @@
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' />
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
<meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
@@ -29,7 +29,7 @@
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": 'https://{$DomainModel->d_domain}/{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}',
"@context": 'https://{$DomainModel->d_domain}/{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"@type": "book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
@@ -44,7 +44,7 @@
},
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
"image": "{$Novel.n_cover_path ?? ''}",
"url": '{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}',
"url": '{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",
@@ -59,7 +59,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]" /}'>
href='{$DomainModel->d_domain}/{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{/block}
{block name="logo-html"}
<h2>
@@ -86,7 +86,7 @@
<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">
<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" />
@@ -97,7 +97,7 @@
<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]" /}'
<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="{$Novel.n_cover_path ?? ''}"
alt="{$Novel->n_name ?? ''}封面" class="lazyload_book_cover lazyload-img">
@@ -114,7 +114,7 @@
<div class="info_C book_inf">
<div class="c01">
<h3><a
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>{$arrNovel['n_name']}</a>
href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>{$arrNovel['n_name']}</a>
</h3>
<!-- <span id="mod_book_star">0分</span> -->
</div>
@@ -213,13 +213,13 @@
{volist name="arrRelateveNovel" id="Novel" key="key"}
<li>
<h3>
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'
<a href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'
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]" /}'
<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"

View File

@@ -1,13 +1,19 @@
{extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELCATALOG@TITLE"}{/block}
{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="$Request.url" num="120" g_key="arrGrm" /}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELCATALOG@DESCRIPTION"}' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' />
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
<meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
@@ -15,16 +21,16 @@
<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="$intFirstChapterSort"/}'>
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.c_name}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<meta property="og:novel:latest_chapter_url"
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
<meta name="twitter:description" content='{site:replace code="NOVEL@GETNOVELCATALOG@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
@@ -32,6 +38,7 @@
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
"@type": "Person",
"name": "{$arrNovel['n_author'] ??'佚名'}"
@@ -41,18 +48,25 @@
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}"
},
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="$intPage"/}',
"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",
"genre": "{$arrNovel['n_category'] ?? '未知分类'}",
"hasPart": {
"@type": "WebPage",
"name": "{$arrNovel['n_name'] ?? '未知小说'}章节目录 第{$intPage}页",
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="$intPage"/}'
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "100",
},
}
}
</script>
</script>
{/block}
{block name="head-css"}
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="$intPage"/}'>
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="$Request.route.intPage"/}'>
{/block}
{block name="head-js"}{/block}
@@ -65,6 +79,9 @@
{/block}
{block name="main"}
{chapter:pagerexp page="$Request.route.intPage" 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" /}
<div class="content">
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
@@ -76,13 +93,13 @@
</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='{$strPcPath}{site:nflurl gender="all" category="$arrNovel[n_category_pinyin]" status="all" page="1"/}' itemprop="item">
<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">
<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" />
@@ -100,8 +117,8 @@
<div class="top">
{$arrGrm[0]|raw}
<h1>
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' >
{$arrNovel['n_name']}章节目录 - {$arrNovel['n_author']} - {$DomainModel->d_name} 第{$intPage}页
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' >
{$arrNovel['n_name']}章节目录 - {$arrNovel['n_author']} - {$DomainModel->d_name} 第{$Request.route.intPage}页
</a>
</h1>
<p>作者:{$arrNovel.n_author}</p>
@@ -115,11 +132,11 @@
<div class="fL_con">
<ul>
{foreach $arrPage.data as $key => $Chapter }
{foreach $resData.data as $key => $Chapter }
<li>
{$arrGrm[$key]|raw}
<h2>
<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>
<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>
</h2>
</li>
{/foreach}

View File

@@ -1,25 +1,31 @@
<html>
<head>
{site:grm page_code="pc_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 name="viewport" content="width=device-width, initial-scale=1" />
<meta name="keywords" content="{$strKeywords??''}">
<meta name="description" content="{$strDescription??''}">
<title>{$strTitle??''}</title>
<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/web/css/style.css" type="text/css">
<link rel="stylesheet" href="/public/layer/need/layer.css" type="text/css">
{block name="head-css"}
<link rel="canonical"
href='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrChapter[c_sort_num]"/}'>
href='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.c_sort_num"/}'>
{/block}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELCHAPTER@DESCRIPTION"}' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' />
content='https://{$DomainModel->d_domain}{$strPcPath}{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}" />
@@ -27,16 +33,16 @@
<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="$$arrChapter[c_sort_num]"/}'>
content='https://{$DomainModel->d_domain}{$strPcPath}{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}{$strPcPath}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 可选:支持 Twitter Card -->
<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="{$strDescription ?? '暂无简介'}" />
<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">
@@ -54,15 +60,15 @@
"url": "https://{$DomainModel->d_domain}"
},
"image": "{$arrNovel.n_cover_path ?? ''}",
"url":'https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}',
"url":'https://{$DomainModel->d_domain}{$strPcPath}{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}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}',
"description": "{$strDescription}"
"url":'https://{$DomainModel->d_domain}{$strPcPath}{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>
@@ -106,16 +112,16 @@
</div>
<div class="type-box">
<h3><a href='{$strPcPath}{site:nflurl gender="$strNanUrlTemp" category="all" status="all" page="1"/}'>男生</a></h3>
{foreach $arrCategoryAll.man as $key=>$vo }
<a href='{$strPcPath}{site:nflurl gender="$strNanUrlTemp" category="{$key}" status="all" page="1"/}'>{$vo}</a>
{/foreach}
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName" n_sex="man"}
<a href='{$strPcPath}{site:nflurl gender="$strNanUrlTemp" category="{$strCategoryPinyin}" status="all" page="1"/}'>{$strCategoryName}</a>
{/novel:category}
</div>
<div class="type-box">
<h3><a href='{$strPcPath}{site:nflurl gender="$strNvUrlTemp" category="all" status="all" page="1"/}'>女生</a></h3>
{foreach $arrCategoryAll.women as $key=>$vo }
<a href='{$strPcPath}{site:nflurl gender="$strNvUrlTemp" category="{$key}" status="all" page="1"/}'>{$vo}</a>
{/foreach}
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName" n_sex="women"}
<a href='{$strPcPath}{site:nflurl gender="$strNvUrlTemp" category="{$strCategoryPinyin}" status="all" page="1"/}'>{$strCategoryName}</a>
{/novel:category}
</div>
<div class="type-box">
<h3><a href="{$strPcPath}{$strCategoryIndexUrlTemp}">书库</a></h3>
@@ -168,17 +174,17 @@
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<a
href='{$strPcPath}{site:nflurl gender="$strNanUrlTemp" category="$arrNovel[n_category_pinyin]" status="all" page="1"/}'>{$arrNovel.n_category}</a>
href='{$strPcPath}{site:nflurl gender="$strNanUrlTemp" category="$arrNovel.n_category_pinyin" status="all" page="1"/}'>{$arrNovel.n_category}</a>
{else}
<a href='{$strPcPath}{site:nflurl gender="$strNvUrlTemp" category="all" status="all" page="1"/}'>女生</a>
<em class="iconfont"></em>
{$arrGrm[13]|raw}
<a href='{$strPcPath}{site:nflurl gender="$strNvUrlTemp" category="$arrNovel[n_category_pinyin]" status="all" page="1"/}'>{$arrNovel.n_category}</a>
<a href='{$strPcPath}{site:nflurl gender="$strNvUrlTemp" category="$arrNovel.n_category_pinyin" status="all" page="1"/}'>{$arrNovel.n_category}</a>
{/if}
<em class="iconfont"></em>
{$arrGrm[12]|raw}
<a
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>{$arrNovel.n_name}</a>
href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>{$arrNovel.n_name}</a>
</div>
<div class="read-main-wrap font-family01" style="font-size:18px" id="j_readMainWrap">
<div id="j_chapterBox">
@@ -188,17 +194,17 @@
<div class="main-text-wrap">
<div class="text-head">
<h1 class="j_chapterName">
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{$arrNovel.n_name}
</a>
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}'
<a href='{$strPcPath}{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 class="text-info cf">
<div class="info fl">
{$arrGrm[11]|raw}
<a
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<em class="iconfont"></em> {$arrNovel.n_name}</a>
<a href="javascript:"> <em class="iconfont"></em> {$arrNovel.n_author}</a>
<i><em class="iconfont"></em><span class="j_chapterWordCut">2000</span></i>
@@ -227,13 +233,13 @@
{else}
{$arrGrm[10]|raw}
<a id="j_chapterPrev"
href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrPreChapter[c_sort_num]" c_page="0"/}'>上一章</a>
href='{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.pre_chapter.c_sort_num" c_page="0"/}'>上一章</a>
{/if}
<span>|</span>
{if $arrNextChapter && $arrNextChapter.c_sort_num}
{if $arrChapter.next_chapter && $arrChapter.next_chapter.c_sort_num}
{$arrGrm[9]|raw}
<a id="j_chapterNext"
href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrNextChapter[c_sort_num]" c_page="0"/}'>下一章</a>
href='{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.next_chapter.c_sort_num" c_page="0"/}'>下一章</a>
{/if}
</div>
</div>
@@ -243,7 +249,7 @@
<dl>
<dd id="j_navCatalogBtn">
{$arrGrm[8]|raw}
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'>
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'>
<i><em class="iconfont"></em><span>目录</span></i>
</a>
</dd>
@@ -260,7 +266,7 @@
</dd>
<dd>
{$arrGrm[6]|raw}
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
<a href='{$strPcPath}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<i><em class="iconfont"></em><span>详情</span></i>
</a>
</dd>
@@ -395,17 +401,17 @@
};
book.chapter = {
//页面进入加载的章节id
id: '{$arrPreChapter.c_sort_num ?? 1}',
id: '{$arrChapter.pre_chapter.c_sort_num ?? 1}',
//章节源id
source_id: '{$arrPreChapter.c_sort_num ?? 1}',
source_id: '{$arrChapter.pre_chapter.c_sort_num ?? 1}',
//章节vip标识
vipStatus: 0,
//上一章id
prevId: '{$arrPreChapter.c_sort_num ?? 1}',
prevId: '{$arrChapter.pre_chapter.c_sort_num ?? 1}',
//下一章id
nextId: '{$arrNextChapter.c_sort_num ?? 1}'
nextId: '{$arrChapter.next_chapter.c_sort_num ?? 1}'
};
book.chapterUrl = '{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}' ;
book.chapterUrl = '{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrChapter.c_sort_num" c_page="0"/}' ;
book.nextChapterVip = 0;
</script>
<script type="text/javascript" src="/template/kuangyu/reader/web/js/global.js"></script>

View File

@@ -1,13 +1,19 @@
{extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{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="120" g_key="arrGrm" /}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' />
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
<meta property="og:image" content="{$arrNovel.n_cover_path ?? ''}" />
<meta property="og:site_name" content="{$DomainModel->d_name}" />
@@ -15,16 +21,16 @@
<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="$intFirstChapterSort"/}'>
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'>
<meta property="og:novel:status" content="{$arrNovel.n_status ?? ''}">
<meta property="og:novel:update_time" content="{$arrNovel.n_update_time ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.c_name ?? ''}">
<meta property="og:novel:latest_chapter_name" content="{$arrNovel.n_latest_chapter_name ?? ''}">
<meta property="og:novel:latest_chapter_url"
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
<!-- 可选:支持 Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
<meta name="twitter:description" content="'{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION"}' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
@@ -44,7 +50,7 @@
},
"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]" /}',
"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",
@@ -58,10 +64,12 @@
</script>
{/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]" /}'>
href='{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}'>
{/block}
{block name="logo-html"}
<h2>
<a href="{$strPcPath}/">
@@ -69,6 +77,7 @@
</a>
</h2>
{/block}
{block name="main"}
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
<div class="content">
@@ -81,14 +90,14 @@
<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"/}'
<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]" /}'
<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>
@@ -102,7 +111,7 @@
<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]" /}'
<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}最新章节"
@@ -120,7 +129,7 @@
<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>
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>
@@ -141,18 +150,16 @@
<p class="jianjie">最新要点</p>
<div class="c03_box">
<p class="jj_con" id="book_desc2">
{$strFocus}</p>
{$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">
{if !empty($arrChapter)}
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$intFirstChapterSort"/}'
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" c_sort="$arrNovel.intFirstChapterSort"/}'
class="read">立即阅读</a>
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" order="zheng" page="1"/}'
class="mulu">目录</a>
{/if}
</div>
<!-- <div class="c05">
<p class="c05_t">作品标签:
@@ -167,16 +174,16 @@
<div class="inf02">
<h4>小说信息</h4>
<p>类别:
<a href='{$strPcPath}{site:nflurl gender="all" category="$arrNovel[n_category_pinyin]" status="all" page="1"/}'
<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>总点击量:{$arrNovelClicks.total}</p>
<p>月点击量:{$arrNovelClicks.monthly}</p>
<p>周点击量:{$arrNovelClicks.weekly}</p>
<p>日点击量:{$arrNovelClicks.daily}</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>
@@ -190,16 +197,16 @@
<h2>最新章节</h2>
</div>
<div class="zj_con">
{volist name="arrChapter" id="Chapter" key="key"}
{chapter:list count="12" sort_type="dao" n_id="$arrNovel.n_id" d_key="key" d_val="Chapter" cache_life="86400"}
<p>
{$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"/}'
<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>
{/volist}
{/chapter:list}
</div>
</div>
<div class="pl_tit">
@@ -208,7 +215,7 @@
<div class="pl_con">
{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]"/}'
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}
@@ -219,17 +226,17 @@
<div class="fsph">
<h4><s></s>精品推荐</h4>
<ul class="info2_C">
{volist name="arrRelateveNovel" id="Novel" key="key"}
{novel:list count="6" n_category="$arrNovel.n_category_pinyin" n_status="wanjie" d_key="key" d_val="Novel" p_val="page_data" cache_life="86400"}
<li>
<h3>
{$arrGrm[$key+10]|raw}
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'
<a href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}'
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]" /}'
<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"
@@ -243,7 +250,7 @@
</div>
</div>
</li>
{/volist}
{/novel:list}
</ul>
</div>
</div>

View File

@@ -1,26 +1,29 @@
{extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{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="{$strTitle??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{site:souurl key='$strSearchKeywords' p='1'/}" />
<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="{$strSearchKeywords} - {$DomainModel->d_name}搜索 - 第{$intPage}页">
<meta name="twitter:description" content="{$strSearchKeywords}搜索结果第{$intPage}页,免费阅读小说,快来体验!">
<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='$strSearchKeywords' p='1'/}",
"name": "{$DomainModel->d_name} - {$DomainModel->d_name}搜索 第{$intPage}页",
"description": "搜索‘{$strSearchKeywords}’结果第{$intPage}页,提供{$strSearchKeywords}创作的小说免费阅读。",
"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",
@@ -34,6 +37,7 @@
}
</script>
{/block}
{block name="head-js"}{/block}
{block name="logo-html"}
@@ -45,24 +49,33 @@
{/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="$Request.url" num="30" g_key="arrGrm" /}
<div class="content">
<div class="find">
<div class="fi_t">
<h1>{$strSearchKeywords}搜索结果 - {$DomainModel->d_name} 第{$intPage}页</h1>
<h1>{$Request.get.keyword}搜索结果 - {$DomainModel->d_name} 第{$Request.get.page}页</h1>
<div class="result search_tip">
搜索<span style="color:red">“{$strSearchKeywords}”</span>相关结果共有 <span style="color:red">{$arrPage.total}</span> 部小说
搜索<span style="color:red">“{$Request.get.keyword}”</span>相关结果共有 <span style="color:red">{$resData.p_data.total}</span> 部小说
</div>
</div>
</div>
<div class="result" mod="search_data_list">
{if empty($arrPage.data)}
{if empty($resData.data)}
<p style="text-align: center;line-height: 60px">没有相关数据</p>
{else}
<ul>
{foreach $arrPage.data as $key=>$Novel}
{foreach $resData.data as $key=>$Novel}
{include file="pc/public/shukuNovelList" start="0"/}
{/foreach}
</ul>
@@ -70,17 +83,17 @@
<!--页码切换 开始-->
<div class="changepage">
<ul class="pagination">
{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}
<li class="disabled"><span>«</span></li>
{else}
<li><a href="{$strPcPath}{$vo.url}">«</a></li>
{/if}
{/case}
{case value="下一页"}
{if $intPage >= $intTotalPage}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>»</span></li>
{else}
<li><a href='{$strPcPath}{$vo.url}'>»</a></li>
@@ -91,7 +104,7 @@
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li class='{eq name="vo.label" value="$intPage"}active {/eq}'>
<li class='{eq name="vo.label" value="$resData.p_data.page"}active {/eq}'>
<a href="{$strPcPath}{$vo.url}">{$vo.label}</a>
</li>
{/if}

View File

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

View File

@@ -1,11 +1,13 @@
{extend name="basePcUser" /}
{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??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:title" content="我的书架" />
<meta property="og:description" content="我的书架" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{$strBookShelfUrlTemp}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
@@ -13,8 +15,8 @@
{
"@context": "https://{$DomainModel->d_domain}{$strBookShelfUrlTemp}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"headline": "我的书架",
"description": "我的书架",
"datePublished": "{:date('Y-m-d')}"
}
</script>
@@ -22,6 +24,7 @@
{block name="main"}
{site:grm page_code="pc_bookshekf" diff="0" num="10" g_key="arrGrm" /}
{$arrGrm[0]|raw}
<div class="i-right">
<!--我的书架 mod -->
@@ -56,9 +59,9 @@
</div>
{$arrGrm[2]|raw}
<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"}`;
document.addEventListener("DOMContentLoaded", function () {
displayBookshelf()

View File

@@ -1,11 +1,11 @@
{extend name="basePcUser" /}
{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??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:title" content="我的阅读记录" />
<meta property="og:description" content="我的阅读记录" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{$strHistoryUrlTemp}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
@@ -13,8 +13,8 @@
{
"@context": "https://{$DomainModel->d_domain}{$strHistoryUrlTemp}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"headline": "我的阅读记录",
"description": "我的阅读记录",
"datePublished": "{:date('Y-m-d')}"
}
</script>
@@ -22,6 +22,7 @@
{block name="main"}
{site:grm page_code="pc_history" diff="0" num="10" g_key="arrGrm" /}
{$arrGrm[0]|raw}
<div class="i-right">
<div class="i-title" style="padding-left:30px;">
@@ -54,9 +55,9 @@
</div>
{$arrGrm[3]|raw}
<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"}`;
document.addEventListener("DOMContentLoaded", function () {
displayHistory()

View File

@@ -1,11 +1,13 @@
{extend name="basePcUser" /}
{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??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:title" content="个人中心" />
<meta property="og:description" content="个人中心" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{$strUserUrlTemp}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
@@ -13,8 +15,8 @@
{
"@context": "https://{$DomainModel->d_domain}{$strUserUrlTemp}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"headline": "个人中心",
"description": "个人中心",
"datePublished": "{:date('Y-m-d')}"
}
</script>
@@ -22,6 +24,9 @@
{block name="main"}
{site:grm page_code="userinfo" diff="0" num="100" g_key="arrGrm" /}
<div class="i-right">
<!--bot mod -->
<div class="i-bot">
@@ -57,9 +62,9 @@
</div>
<div class="tabBd">
<ul class="hotBookBd ">
{volist name="arrMoonRankNovel" id="Novel" key="key"}
{novel:list count="10" sort_type="news" d_key="key" d_val="Novel" cache_life="86400"}
{include file="pc/public/endNovelList" start="0"/}
{/volist}
{/novel:list}
</ul>
@@ -73,10 +78,10 @@
<div class="myWorks myLike">
<div class="i-title">推荐作品</div>
<ul>
{volist name="arrRecommendEndNovel" id="Novel" key="key"}
{novel:list count="10" sort_type="tuijian" d_key="key" d_val="Novel" cache_life="86400"}
{$arrGrm[$key]|raw}
<li>
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]"/}'
<a href='{$strPcPath}{site:nurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin"/}'
title="{$Novel.n_name ?? ''}">
<img src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''}">
</a>
@@ -84,14 +89,14 @@
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
<span class="bookName other">{$Novel.n_name ?? ''}</span>
</a>
<a href='{$strPcPath}{site:souurl key="$Novel[n_author]" p="1"/}'>
<a href='{$strPcPath}{site:souurl key="$Novel.n_author" p="1"/}'>
<span class="bookStatus other">{$Novel->n_author ?? ''}</span>
</a>
<span class="bookBrief">
{$Novel.n_description ?? ''}</span>
</p>
</li>
{/volist}
{/novel:list}
</ul>
</div>
@@ -100,9 +105,9 @@
</div>
<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"}`;
document.addEventListener("DOMContentLoaded", function () {
@@ -112,9 +117,10 @@
// 展示 书架
function displayBookshelfInUser() {
const strBookshelfKey = window.location.hostname + 'strBookshelfKey';
// 获取书架数据
const arrBookshelf = JSON.parse(localStorage.getItem('strBookshelfKey')) || [];
const arrBookshelf = JSON.parse(localStorage.getItem(strBookshelfKey)) || [];
console.log(arrBookshelf)
if (arrBookshelf.length === 0) {
console.log('书架为空');
@@ -188,18 +194,18 @@
});
}
// 展示 书架
// 展示 最近阅读
function displayHistoryInUser() {
// 获取书架数据
const arrBookshelf = JSON.parse(localStorage.getItem('strHistoryKey')) || [];
const strHistoryKey = window.location.hostname + 'strHistoryKey';
// 获取最近阅读数据
const arrBookshelf = JSON.parse(localStorage.getItem(strHistoryKey)) || [];
if (arrBookshelf.length === 0) {
console.log('书架为空');
return;
}
// 渲染书籍列表
// 渲染最近阅读列表
const DomBookshelfContainer = document.getElementById('history-ul');
DomBookshelfContainer.innerHTML = ''
arrBookshelf.forEach(book => {

View File

@@ -1,6 +1,6 @@
{if !empty($arrPaginator)}
{if !empty($resData.p_data.pager)}
<div class="page_num">
{volist name="arrPaginator" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="prev"}
{$arrGrm[$key]|raw}
<a href="{$item.url ?: '#'}"
@@ -11,8 +11,9 @@
{/volist}
<select onchange="self.location.href=options[selectedIndex].value">
{volist name="arrPaginator" id="item"}
{volist name="$resData.p_data.pager" id="item"}
{eq name="item.type" value="page"}
<?php $intLimit = $resData['p_data']['limit']; ?>
<?php $start = ($item['label'] - 1) * $intLimit + 1; ?>
<?php $end = $item['label'] * $intLimit; ?>
<option value="{$item.url}" {$item.current ? 'selected' : ''}>
@@ -22,7 +23,7 @@
{/volist}
</select>
{volist name="arrPaginator" 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,11 +1,11 @@
{extend name="baseH5User" /}
{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??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:title" content="我的书架" />
<meta property="og:description" content="我的书架" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{$strBookShelfUrlTemp}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
@@ -13,8 +13,8 @@
{
"@context": "https://{$DomainModel->d_domain}{$strBookShelfUrlTemp}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"headline": "我的书架",
"description": "我的书架",
"datePublished": "{:date('Y-m-d')}"
}
</script>
@@ -22,6 +22,8 @@
{block name="head-name"}我的书架{/block}
{block name="main"}
{site:grm page_code="h5_bookshekf" diff="0" num="10" g_key="arrGrm" /}
{$arrGrm[0]|raw}
<div class="app_body">
{$arrGrm[3]|raw}
@@ -42,9 +44,9 @@
</div>
</div>
<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"}`;
document.addEventListener("DOMContentLoaded", function () {
displayBookshelf()

View File

@@ -1,11 +1,11 @@
{extend name="baseH5User" /}
{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??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:title" content="我的阅读记录" />
<meta property="og:description" content="我的阅读记录" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{$strHistoryUrlTemp}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
@@ -13,8 +13,8 @@
{
"@context": "https://{$DomainModel->d_domain}{$strHistoryUrlTemp}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"headline": "我的阅读记录",
"description": "我的阅读记录",
"datePublished": "{:date('Y-m-d')}"
}
</script>
@@ -22,6 +22,9 @@
{block name="head-name"}最近阅读{/block}
{block name="main"}
{site:grm page_code="h5_history" diff="0" num="10" g_key="arrGrm" /}
{$arrGrm[0]|raw}
<div class="app_body">
{$arrGrm[1]|raw}
@@ -44,9 +47,9 @@
</div>
<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"}`;
document.addEventListener("DOMContentLoaded", function () {
displayHistory()

View File

@@ -1,11 +1,11 @@
{extend name="baseH5User" /}
{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??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:title" content="个人中心" />
<meta property="og:description" content="个人中心" />
<meta property="og:url" content="https://{$DomainModel->d_domain}{$strUserUrlTemp}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
@@ -13,8 +13,8 @@
{
"@context": "https://{$DomainModel->d_domain}{$strUserUrlTemp}",
"@type": "article",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"headline": "个人中心",
"description": "个人中心",
"datePublished": "{:date('Y-m-d')}"
}
</script>
@@ -58,7 +58,6 @@
<a href="{$strHistoryUrlTemp}"><i class="iconfont"></i>最近阅读</a>
</li>
</ul>
</div>

View File

@@ -113,7 +113,7 @@ class NovelService
* @param integer $intChapterPage
* @return string
*/
public function getNovelChapterUrl(int $intNId, $intPinYin, $intChapterSort, $intChapterPage = 1): string
public function getNovelChapterUrl(int $intNId, $intPinYin, $intChapterSort, $intChapterPage = 0): string
{
$strKey = 'CONTENT_INFO_URL';
$strUrl = $this->getPageUrl($strKey, [

View File

@@ -133,7 +133,7 @@ EOD;
$intNId = isset($tag['n_id']) ? $tag['n_id'] : '';
$strNPy = isset($tag['n_py']) ? $tag['n_py'] : '';
$intChapterSort = isset($tag['c_sort']) ? $tag['c_sort'] : '';
$intChapterPage = isset($tag['c_page']) ? $tag['c_page'] : '';
$intChapterPage = isset($tag['c_page']) ? $tag['c_page'] : 0;
$intNId = $this->customBuildVar($intNId);
$strNPy = $this->customBuildVar($strNPy);

View File

@@ -151,6 +151,7 @@ function incShouCangFun(intId) {
}
const strBookshelfKey = window.location.hostname + 'strBookshelfKey';
const strHistoryKey = window.location.hostname + 'strHistoryKey';
// 加入书架 addShuJiaFun
function addBookshelfFun(NovelInfo) {
@@ -233,13 +234,13 @@ function displayBookshelf() {
<img class="lazyload-img" src="${book.n_cover_path}" >
</div>
<div class="rightBlock">
<span class="rightBlock_title">${book.n_namen}</span>
<span class="rightBlock_title">${book.n_name}</span>
<span class="rightBlock_name">${book.n_author}</span>
<span class="rightBlock_con rightBlock_con2">
<span class="con">
<span class="spanLi">${book.c_name}</span>
</span>
<span class="spanLi Time">${book.og_novel_update_time ?? ''}</span>
<span class="spanLi Time">${book.n_update_time ?? ''}</span>
<span class="rightJustTime" onclick="javascript:window.location.href='${strNovelChapterUrl}';return false;">
继续阅读
</span>
@@ -260,7 +261,7 @@ function displayBookshelf() {
</a>
</td>
<td class="t2">
<a href="${strPcPath}${strNovelUrl}" >${book.n_namen}</a>
<a href="${strPcPath}${strNovelUrl}" >${book.n_name}</a>
</td>
<td class="t3">
<a href="${strPcPath}${strNovelChapterUrl}" >${book.c_name}</a>
@@ -268,9 +269,9 @@ function displayBookshelf() {
<td class="t4">
<a href="${strPcPath}${strSearchUrl}" >${book.n_author}</a>
</td>
<td class="t5">${book.og_novel_update_time}</td>
<td class="t5">${book.n_update_time}</td>
<td class="t6">${book.og_novel_status}</td>
<td class="t6">${book.n_status}</td>
<td class="t7">
<a href="${strPcPath}${strNovelChapterUrl}" class="goon" >阅读</a>
<i><span class="Collection" ajax-get="" onclick="delBookshelfFun(${book.n_id})">删除</span></i>
@@ -292,7 +293,7 @@ function addHistoryFun(NovelInfo) {
}
// 获取本地存储中的历史记录
let arrBookshelf = JSON.parse(localStorage.getItem('strHistoryKey')) || [];
let arrBookshelf = JSON.parse(localStorage.getItem(strHistoryKey)) || [];
// 检查书籍是否已存在
const index = arrBookshelf.findIndex(item => item.n_id == NovelInfo.n_id);
@@ -305,13 +306,13 @@ function addHistoryFun(NovelInfo) {
}
// 更新本地存储
localStorage.setItem('strHistoryKey', JSON.stringify(arrBookshelf));
localStorage.setItem(strHistoryKey, JSON.stringify(arrBookshelf));
}
// 删除历史记录
function delHistoryFun(intNId) {
// 获取书架数据
const arrHistory = JSON.parse(localStorage.getItem('strHistoryKey')) || [];
const arrHistory = JSON.parse(localStorage.getItem(strHistoryKey)) || [];
// 检查 arrHistory 是否为数组且不为空
if (Array.isArray(arrHistory) && arrHistory.length > 0) {
@@ -322,7 +323,7 @@ function delHistoryFun(intNId) {
if (index !== -1) {
arrHistory.splice(index, 1); // 删除该项
// 更新 localStorage
localStorage.setItem('strHistoryKey', JSON.stringify(arrHistory));
localStorage.setItem(strHistoryKey, JSON.stringify(arrHistory));
} else {
console.log(`未找到 ID 为 ${intNId} 的历史记录`);
}
@@ -330,7 +331,6 @@ function delHistoryFun(intNId) {
console.log('历史记录为空,无需删除');
}
removeElementsByClass('book-history')
// localStorage.setItem('strHistoryKey', JSON.stringify(arrHistory));
displayHistory()
}
@@ -338,7 +338,7 @@ function delHistoryFun(intNId) {
function displayHistory() {
// 获取书架数据
const arrHistory = JSON.parse(localStorage.getItem('strHistoryKey')) || [];
const arrHistory = JSON.parse(localStorage.getItem(strHistoryKey)) || [];
if (arrHistory.length === 0) {
console.log('书架为空');
@@ -362,13 +362,13 @@ function displayHistory() {
<img class="lazyload-img" src="${book.n_cover_path}" >
</div>
<div class="rightBlock">
<span class="rightBlock_title">${book.n_namen}</span>
<span class="rightBlock_title">${book.n_name}</span>
<span class="rightBlock_name">${book.n_author}</span>
<span class="rightBlock_con rightBlock_con2">
<span class="con">
<span class="spanLi">${book.c_name}</span>
</span>
<span class="spanLi Time">${book.og_novel_update_time ?? ''}</span>
<span class="spanLi Time">${book.n_update_time ?? ''}</span>
<span class="rightJustTime" onclick="javascript:window.location.href='${strNovelChapterUrl}';return false;"
>继续阅读</span>
</span>
@@ -395,9 +395,9 @@ function displayHistory() {
<td class="t4">
<a href="${strPcPath}${strSearchUrl}" >${book.n_author}</a>
</td>
<td class="t5">${book.og_novel_update_time ?? ''}</td>
<td class="t5">${book.n_update_time ?? ''}</td>
<td class="t6">${book.og_novel_status}</td>
<td class="t6">${book.n_status}</td>
<td class="t7">
<a href="${strNovelChapterUrl}" class="goon" >阅读</a>
<i><span class="Collection" ajax-get="" onclick="delHistoryFun(${book.n_id})">删除</span></i>