This commit is contained in:
make
2025-04-21 23:45:10 +08:00
parent f21ece4de1
commit 683424b63e
19 changed files with 231 additions and 96 deletions

View File

@@ -1,5 +1,17 @@
{extend name="baseH5" /}
{block name="get-data"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_key="d_key"
d_val="Novel" n_num="total"
button_num="5" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="h5_novel_library" diff="$resData.p_data.page" num="40" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETLIBRARY@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETLIBRARY@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETLIBRARY@DESCRIPTION"}{/block}
@@ -48,7 +60,7 @@
{block name="logo-html"}
<h1 class="bookname">
<a href="/"
style="color:#ffffff">{$DomainModel->d_name}</a>-{$Request.route.strCategory}{$Request.route.strOrder}{$Request.route.strStatus}免费阅读
style="color:#ffffff">{$DomainModel->d_name}</a>-{site:getval code="strNovelCategoryName" /}{site:getval code="strNovelOrder" /}{site:getval code="strNovelStatus" /}免费阅读
</h1>
{/block}
@@ -56,15 +68,6 @@
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_key="d_key"
d_val="Novel" n_num="total"
button_num="5" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="h5_novel_library" diff="$resData.p_data.page" num="40" g_key="arrGrm" /}
<p class="site-description">{$strDescription??''}</p>

View File

@@ -1,4 +1,15 @@
{extend name="baseH5" /}
{block name="get-data"}
{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" /}
{/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}
@@ -48,13 +59,7 @@
{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-box">
<h1><span>{$Request.get.keyword}</span>搜索结果 - {$DomainModel->d_name} 第{$resData.p_data.page}页</h1>

View File

@@ -1,5 +1,16 @@
{extend name="basePc" /}
{block name="get-data"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_key="d_key"
d_val="Novel" n_num="total"
button_num="10" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="70" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETLIBRARY@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETLIBRARY@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETLIBRARY@DESCRIPTION"}{/block}
@@ -58,15 +69,7 @@
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
sort_type="$Request.route.strOrder"
n_status="$Request.route.strStatus" d_key="d_key"
d_key="d_key"
d_val="Novel" n_num="total"
button_num="10" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="70" g_key="arrGrm" /}
<div class="container">

View File

@@ -1,4 +1,14 @@
{extend name="basePc" /}
{block name="get-data"}
{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" /}
{/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}
@@ -45,13 +55,7 @@
{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="container">
<div class="row">

View File

@@ -1,4 +1,6 @@
{site:helper func="initHomeTKD" /}
<!-- {site:getval func="strSiteName" /} -->
<!-- {site:helper func="initHomeTKD" /} -->
<!-- {site:forgelist count="3" d_key="d_key" d_val="novel" cache_life="1000"}

View File

@@ -1,5 +1,16 @@
{extend name="baseH5" /}
{block name="get-data"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
n_sex="$Request.route.strGender"
n_status="$Request.route.strStatus"
d_key="d_key"
button_num="10" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="70" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETLIBRARY@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETLIBRARY@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETLIBRARY@DESCRIPTION"}{/block}
@@ -55,14 +66,7 @@
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
n_sex="$Request.route.strGender"
n_status="$Request.route.strStatus"
d_key="d_key"
button_num="10" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="70" g_key="arrGrm" /}
<div class="wrap">
<p class="site-description">{site:replace code="NOVEL@GETLIBRARY@DESCRIPTION"}</p>

View File

@@ -1,13 +1,17 @@
{extend name="baseH5" /}
{block name="get-data"}
{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" /}
{/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']??'未知小说'}" />

View File

@@ -1,5 +1,9 @@
{extend name="baseH5" /}
{block name="get-data"}
{site:helper func="initSexTKD" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELCHANNEL@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELCHANNEL@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELCHANNEL@DESCRIPTION"}{/block}

View File

@@ -1,5 +1,9 @@
{extend name="baseH5" /}
{block name="get-data"}
{site:helper func="initSexTKD" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELRANK@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELRANK@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELRANK@DESCRIPTION"}{/block}

View File

@@ -1,11 +1,24 @@
{extend name="basePc" /}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="get-data"}
{if $Request.route.intNovelId}
{novel:info n_id="$Request.route.intNovelId" n_key="arrNovel" n_forge_id="0" /}
{else}
{novel:info n_id="$DomainModel->info_id" n_key="arrNovel" n_forge_id="0" /}
{/if}
{site:grm page_code="h5_novel_info" diff="$arrNovel.n_id" num="120" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intNovelId" /}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intNovelId"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId"}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}" />
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
<meta property="og:description" content='{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intNovelId" }' />
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}' />
<meta property="og:type" content="book" />
@@ -15,22 +28,22 @@
<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}/xiaoshuo/{$arrNovel.n_name_pinyin}-{$arrNovel.n_id}/zhang-1">
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}/xiaoshuo/{$arrNovel.n_name_pinyin}-{$arrNovel.n_id}/zhang-{$arrLatestChapter.c_sort_num ?? 1}">
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" diff="$Request.route.intNovelId" }' />
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": 'https://{$DomainModel->d_domain}/{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"@type": "book",
"@context": "https://schema.org",
"@type": "Book",
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
"author": {
@@ -43,8 +56,8 @@
"url": "https://{$DomainModel->d_domain}"
},
"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" /}',
"image": "{$arrNovel.n_cover_path ?? ''}",
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel.n_id" n_py="$arrNovel.n_name_pinyin" /}',
"genre": "{$arrNovel.n_category ??''}",
"inLanguage": "zh-CN",
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
@@ -53,6 +66,7 @@
"ratingValue": "4.5",
"reviewCount": "100",
},
}
</script>

View File

@@ -1,5 +1,17 @@
{extend name="basePc" /}
{block name="get-data"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
n_sex="$Request.route.strGender"
n_status="$Request.route.strStatus"
d_key="d_key"
button_num="10" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="70" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETLIBRARY@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETLIBRARY@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETLIBRARY@DESCRIPTION"}{/block}
@@ -66,14 +78,7 @@
{block name="main"}
{novel:pagerexp page="$Request.get.page" limit="30"
n_category="$Request.route.strCategory"
n_sex="$Request.route.strGender"
n_status="$Request.route.strStatus"
d_key="d_key"
button_num="10" cache_life="86400" func="generateCategoryPager" export_name="resData" /}
{site:grm page_code="pc_novel_library" diff="$resData.p_data.page" num="70" g_key="arrGrm" /}
<div class="content">
<nav class="breadcrumb" aria-label="breadcrumb">

View File

@@ -1,5 +1,7 @@
{extend name="basePc" /}
{block name="get-data"}
{site:helper func="initSexTKD" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELCHANNEL@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELCHANNEL@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELCHANNEL@DESCRIPTION"}{/block}

View File

@@ -1,5 +1,11 @@
{extend name="basePc" /}
{block name="get-data"}
{site:helper func="initSexTKD" /}
{site:grm page_code="h5_rank" diff="0" num="100" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="NOVEL@GETNOVELRANK@TITLE"}{/block}
{block name="keywords"}{site:replace code="NOVEL@GETNOVELRANK@KEYWORDS"}{/block}
{block name="description"}{site:replace code="NOVEL@GETNOVELRANK@DESCRIPTION"}{/block}
@@ -41,8 +47,6 @@
{block name="main"}
{site:grm page_code="h5_rank" diff="0" num="100" g_key="arrGrm" /}
<div class="content content_back">
<nav class="breadcrumb" aria-label="breadcrumb">

View File

@@ -1,5 +1,14 @@
{extend name="basePc" /}
{block name="get-data"}
{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" /}
{/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}
@@ -50,14 +59,6 @@
{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">

View File

@@ -28,6 +28,7 @@ class ConverterMovel
'{strNovelCategoryName}' => '',
'{strNovelSex}' => '',
'{strNovelStatus}' => '',
'{strNovelOrder}' => '',
'{intPage}' => '',
'{strNovelAuthor}' => '',
'{strNovelDescription}' => '',
@@ -50,6 +51,7 @@ class ConverterMovel
'{strNovelCategoryName}' => '当前页面小说分类名字',
'{strNovelSex}' => '当前页面小说是男生还是女生 小说',
'{strNovelStatus}' => '当前页面小说状态 是连载还是完结',
'{strNovelOrder}' => '当前页面排行依据',
'{intPage}' => '当前页面分页页码',
'{strNovelAuthor}' => '小说作者',
'{strNovelDescription}' => '小说简介',
@@ -90,7 +92,9 @@ class ConverterMovel
*/
static public function getVal(string $strKey)
{
return self::$arrMap[self::getKey($strKey)];
$key = self::getKey($strKey);
return isset(self::$arrMap[$key]) ? (string) self::$arrMap[$key] : '';
// return self::$arrMap[self::getKey($strKey)];
}
/**

View File

@@ -574,6 +574,16 @@ class NovelService
$intLifeTime = $intLifeTime;
}
// 更新值
ConverterMovel::setVal([
'intPage' => $intPage,
// 'strNovelSex' => empty($strNSex) ? '' : $this->arrSex[$strNSex],
'strNovelCategoryName' => empty($strNCategory) ? '' : str_replace("小说", "", $strNCategory),
'strNovelStatus' => empty($strNStatus) ? '' : $this->arrStatus[$strNStatus],
'strNovelOrder' => empty($strSortType) ? '' :$this->arrSortType[$strSortType],
'strSearchKeywords' => $strKey,
]);
if (empty($arrFilter['$and'])) {
$arrFilter = [];
}

View File

@@ -165,6 +165,20 @@ class SiteContext
return ConverterMovel::convert($strTitleTemplate);
}
/**
* 获取 公共替换 变量
*
* @param string $strCode
* @return string
*/
public function getConverterVal(string $strCode): string
{
if (empty($strCode)) {
return ''; // 或返回默认值
}
return ConverterMovel::getVal($strCode);
}
/**
* 获取干扰码
@@ -274,4 +288,21 @@ class SiteContext
'strSiteName' => $this->DomainModel->d_name,
]);
}
/**
* 视图反向控制器(注释函数),在视图开头调用,用来初始化一些操作。这里尽量不要复杂逻辑。这是个样例
*
* @return void
*/
public function initSexTKD()
{
$strSex = $this->Request->param('strChannel');
ConverterMovel::setVal([
'intPage' => 1,
'strNovelSex' => $strSex == 'man' ? '男生' : '女生',
]);
}
}

View File

@@ -21,6 +21,7 @@ class Site extends TagLib
'forgelist' => ['attr' => 'count,diff_key,cache_life,d_key,d_val', 'close' => 1],
'helper' => ['attr' => 'func', 'close' => 0],
'getval' => ['attr' => 'code', 'close' => 0],
];
private function customBuildVar($mixedArgs)
@@ -33,9 +34,32 @@ class Site extends TagLib
}
/**
* 小说详情URL生成器
* 内容替换
*
* @param array $n_id
* @param array
* @return string
*/
public function tagGetVal($tag)
{
$strCode = $tag['code'];
if (empty($strCode)) {
return ''; // 或返回默认值
}
$strParse = <<<EOD
<?php
\$strUrl = app(\\app\\services\\SiteContext::class)->getConverterVal("{$strCode}");
echo \$strUrl;
?>
EOD;
return $strParse;
}
/**
* 视图反向控制器(注释函数)
*
* @param array $func
* @return string
*/
public function tagHelper($tag)

View File

@@ -383,4 +383,11 @@ resData = [
# 样例
{site:helper func="initHomeTKD" /}
# 15、 获取公共替换变量的值
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)
$code # ConverterMovel 里面的arrMap 的key
# 样例
{site:getval code="strNovelCategoryName" /}
```