debug
This commit is contained in:
@@ -42,7 +42,7 @@ class Index extends BaseController
|
||||
break;
|
||||
case 'kuangYu':
|
||||
$strKey = sprintf('%s:H5:INDEX:ZUIJIAN:SEX:%s:%s', $Request->DomainModel->d_domain, 0, 8);
|
||||
$arrNewsNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 8, 0, NULL, ['og_novel_update_time' => -1]);
|
||||
$arrNewsNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 8, 0, NULL, ['n_update_time' => -1]);
|
||||
|
||||
$strKey = sprintf('%s:H5:INDEX:RANK:%s:SEX:%s', $Request->DomainModel->d_domain, 'daily', 0);
|
||||
$arrDayRankNovel = $NovelModel->getRankNovelOnCache($strKey, 10, 0, 'daily');
|
||||
@@ -141,7 +141,7 @@ class Index extends BaseController
|
||||
|
||||
// 男生频道,最新的 随机5个小说
|
||||
$strKey = sprintf('%s:PC:INDEX:ZUIJIAN:SEX:%s:%s', $Request->DomainModel->d_domain, 1, 5);
|
||||
$arrBoyNewsNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 5, 1, NULL, ['og_novel_update_time' => -1]);
|
||||
$arrBoyNewsNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 5, 1, NULL, ['n_update_time' => -1]);
|
||||
|
||||
|
||||
// 男生频道,周排行榜 随机10个小说
|
||||
@@ -158,7 +158,7 @@ class Index extends BaseController
|
||||
|
||||
// 女生频道,最新的 随机5个小说
|
||||
$strKey = sprintf('%s:PC:INDEX:ZUIJIAN:SEX:%s:%s', $Request->DomainModel->d_domain, 2, 5);
|
||||
$arrGirlNewsNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 5, 2, NULL, ['og_novel_update_time' => -1]);
|
||||
$arrGirlNewsNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 5, 2, NULL, ['n_update_time' => -1]);
|
||||
|
||||
// 女生频道,周排行榜 随机10个小说
|
||||
$strKey = sprintf('%s:PC:INDEX:RANK:%s:SEX:%s', $Request->DomainModel->d_domain, 'weekly', 2);
|
||||
@@ -174,7 +174,7 @@ class Index extends BaseController
|
||||
|
||||
// 最近更新-随机50
|
||||
$strKey = sprintf('%s:PC:INDEX:ZUIJIAN:SEX:%s:%s', $Request->DomainModel->d_domain, 0, 50);
|
||||
$arrNewsUpdateNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 50, 0, NULL, ['og_novel_update_time' => -1]);
|
||||
$arrNewsUpdateNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 50, 0, NULL, ['n_update_time' => -1]);
|
||||
|
||||
// Title 模板
|
||||
ConverterMovel::setVal([
|
||||
|
||||
@@ -248,11 +248,11 @@ class Novel extends BaseController
|
||||
// 模拟数据-最近更新-随机50
|
||||
$strKey = sprintf('%s:PC:Novel:Channel:Latest:%s', $Request->DomainModel->d_domain, $intType);
|
||||
$intCount = 20;
|
||||
$arrNewsUpdateNovel = $NovelModel->getCommonNovelOnCache($strKey, $intLifeTime, $intCount, $intType, NULL, ['og_novel_update_time' => -1]);
|
||||
$arrNewsUpdateNovel = $NovelModel->getCommonNovelOnCache($strKey, $intLifeTime, $intCount, $intType, NULL, ['n_update_time' => -1]);
|
||||
|
||||
// echo "<pre>";
|
||||
// var_dump($arrNewsUpdateNovel);exit;
|
||||
// TODO og_description 改成 og_description
|
||||
// TODO n_description 改成 n_description
|
||||
// 更新值
|
||||
ConverterMovel::setVal([
|
||||
'intPage' => 1,
|
||||
@@ -388,14 +388,14 @@ class Novel extends BaseController
|
||||
|
||||
foreach ($arrNovel['n_forge_novel'] as $arrForgeNovel) {
|
||||
if ($arrForgeNovel['n_forge_id'] == $intForgeId) {
|
||||
$arrNovel['og_novel_book_name'] = $arrForgeNovel['n_forge_title'];
|
||||
$arrNovel['n_name'] = $arrForgeNovel['n_forge_title'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 分类拼音
|
||||
$arrNovel['category_pinyin'] = CategoryModel::getPinYinByZh($arrNovel['og_novel_category']);
|
||||
$arrNovel['category_sex'] = $arrNovel['category_sex'] ?? 'man';
|
||||
$arrNovel['n_category_pinyin'] = CategoryModel::getPinYin($arrNovel['n_category']);
|
||||
$arrNovel['n_category_sex_en'] = $arrNovel['n_category_sex_en'] ?? 'man';
|
||||
|
||||
// 最后章节
|
||||
$ChapterModel = ChapterModel::getInstance();
|
||||
@@ -411,7 +411,7 @@ class Novel extends BaseController
|
||||
$strFocus = '';
|
||||
// 要点
|
||||
if ($arrLatestChapter) {
|
||||
$strFocus = strip_tags($arrLatestChapter['content']);
|
||||
$strFocus = strip_tags($arrLatestChapter['c_content']);
|
||||
$intCount = mb_strlen($strFocus);
|
||||
if ($intCount > 300) {
|
||||
$intPos = mt_rand(0, $intCount - 300);
|
||||
@@ -439,12 +439,12 @@ class Novel extends BaseController
|
||||
// 更新值
|
||||
ConverterMovel::setVal([
|
||||
'intPage' => 1,
|
||||
'strNovelName' => $arrNovel['og_novel_book_name'],
|
||||
'strNovelAuthor' => $arrNovel['og_novel_author'],
|
||||
'strNovelCategoryName' => $arrNovel['og_novel_category'],
|
||||
'strNovelSex' => $arrNovel['category_sex'] == 'man' ? '男生' : '女生',
|
||||
'strNovelStatus' => $arrNovel['og_novel_status'],
|
||||
'strNovelDescription' => $arrNovel['og_description'],
|
||||
'strNovelName' => $arrNovel['n_name'],
|
||||
'strNovelAuthor' => $arrNovel['n_author'],
|
||||
'strNovelCategoryName' => $arrNovel['n_category'],
|
||||
'strNovelSex' => $arrNovel['n_category_sex_en'] == 'man' ? '男生' : '女生',
|
||||
'strNovelStatus' => $arrNovel['n_status'],
|
||||
'strNovelDescription' => $arrNovel['n_description'],
|
||||
]);
|
||||
|
||||
$strTitleTemplate = $Request->DomainModel->getFomartSubject('NOVEL@GETNOVELINFO@TITLE',$intForgeId);
|
||||
@@ -457,7 +457,7 @@ class Novel extends BaseController
|
||||
|
||||
// js使用到
|
||||
$arrNovelJs = $arrNovel;
|
||||
unset($arrNovelJs['n_related_novel'], $arrNovelJs['n_forge_novel'], $arrNovelJs['og_description']);
|
||||
unset($arrNovelJs['n_related_novel'], $arrNovelJs['n_forge_novel'], $arrNovelJs['n_description']);
|
||||
|
||||
View::assign([
|
||||
'arrRelateveNovel' => $arrRelateveNovel,
|
||||
@@ -498,8 +498,8 @@ class Novel extends BaseController
|
||||
$arrNovel = $NovelModel->getNovelByNId($intNId);
|
||||
|
||||
// 分类拼音
|
||||
$arrNovel['category_pinyin'] = CategoryModel::getPinYinByZh($arrNovel['og_novel_category']);
|
||||
$arrNovel['category_sex'] = $arrNovel['category_sex'] ?? 'man';
|
||||
$arrNovel['n_category_pinyin'] = CategoryModel::getPinYin($arrNovel['n_category']);
|
||||
$arrNovel['n_category_sex_en'] = $arrNovel['n_category_sex_en'] ?? 'man';
|
||||
|
||||
// 最后章节
|
||||
$ChapterModel = ChapterModel::getInstance();
|
||||
@@ -515,7 +515,7 @@ class Novel extends BaseController
|
||||
$strFocus = '';
|
||||
// 要点
|
||||
if ($arrLatestChapter) {
|
||||
$strFocus = strip_tags($arrLatestChapter['content']);
|
||||
$strFocus = strip_tags($arrLatestChapter['c_content']);
|
||||
$intCount = mb_strlen($strFocus);
|
||||
if ($intCount > 300) {
|
||||
$intPos = mt_rand(0, $intCount - 300);
|
||||
@@ -543,12 +543,12 @@ class Novel extends BaseController
|
||||
// 更新值
|
||||
ConverterMovel::setVal([
|
||||
'intPage' => 1,
|
||||
'strNovelName' => $arrNovel['og_novel_book_name'],
|
||||
'strNovelAuthor' => $arrNovel['og_novel_author'],
|
||||
'strNovelCategoryName' => $arrNovel['og_novel_category'],
|
||||
'strNovelSex' => $arrNovel['category_sex'] == 'man' ? '男生' : '女生',
|
||||
'strNovelStatus' => $arrNovel['og_novel_status'],
|
||||
'strNovelDescription' => $arrNovel['og_description'],
|
||||
'strNovelName' => $arrNovel['n_name'],
|
||||
'strNovelAuthor' => $arrNovel['n_author'],
|
||||
'strNovelCategoryName' => $arrNovel['n_category'],
|
||||
'strNovelSex' => $arrNovel['n_category_sex_en'] == 'man' ? '男生' : '女生',
|
||||
'strNovelStatus' => $arrNovel['n_status'],
|
||||
'strNovelDescription' => $arrNovel['n_description'],
|
||||
]);
|
||||
|
||||
$strTitleTemplate = $Request->DomainModel->getFomartSubject(getFomartSubjectKey(__METHOD__) . '@TITLE',$intNId);
|
||||
@@ -595,8 +595,8 @@ class Novel extends BaseController
|
||||
$NovelModel = NovelModel::getInstance();
|
||||
$arrNovel = $NovelModel->getNovelByNId($intNId);
|
||||
|
||||
$arrNovel['category_pinyin'] = $arrNovel['category_pinyin'] ?? 'all';
|
||||
$arrNovel['category_sex'] = $arrNovel['category_sex'] ?? 'man';
|
||||
$arrNovel['n_category_pinyin'] = $arrNovel['n_category_pinyin'] ?? 'all';
|
||||
$arrNovel['n_category_sex_en'] = $arrNovel['n_category_sex_en'] ?? 'man';
|
||||
|
||||
// 最新章节
|
||||
$ChapterModel = ChapterModel::getInstance();
|
||||
@@ -611,9 +611,11 @@ class Novel extends BaseController
|
||||
$arrNextChapter = $ChapterModel->getNextChapter($arrChapter['n_id'], $arrChapter['c_sort_num'], $arrChapter['c_page']);
|
||||
|
||||
// 要点-先从章节随机截取,后面如果用上ai,看看使用ai 提炼 精简内容
|
||||
$strChapterDescription = strip_tags($arrChapter['content']);
|
||||
$strChapterDescription = strip_tags($arrChapter['c_content']);
|
||||
$intCount = mb_strlen($strChapterDescription);
|
||||
$strChapterDescription = ($intCount > 50) ? mb_substr($strChapterDescription, 0, 50) : $strChapterDescription;
|
||||
|
||||
$arrChapter['c_content'] = base64_encode($arrChapter['c_content']);
|
||||
}
|
||||
|
||||
$arrCategoryAll = CategoryModel::$arrCategoryAll;
|
||||
@@ -621,13 +623,13 @@ class Novel extends BaseController
|
||||
// 更新值
|
||||
ConverterMovel::setVal([
|
||||
'intPage' => 1,
|
||||
'strNovelName' => $arrNovel['og_novel_book_name'],
|
||||
'strNovelAuthor' => $arrNovel['og_novel_author'],
|
||||
'strNovelCategoryName' => $arrNovel['og_novel_category'],
|
||||
'strNovelStatus' => $arrNovel['og_novel_status'],
|
||||
'strNovelDescription' => $arrNovel['og_description'],
|
||||
'strNovelName' => $arrNovel['n_name'],
|
||||
'strNovelAuthor' => $arrNovel['n_author'],
|
||||
'strNovelCategoryName' => $arrNovel['n_category'],
|
||||
'strNovelStatus' => $arrNovel['n_status'],
|
||||
'strNovelDescription' => $arrNovel['n_description'],
|
||||
'strChapterDescription' => $strChapterDescription,
|
||||
'strNovelChapterName' => $arrChapter['name'] ?? '',
|
||||
'strNovelChapterName' => $arrChapter['c_name'] ?? '',
|
||||
'strNovelChapterSort' => $arrChapter['c_sort_num'] ?? '',
|
||||
]);
|
||||
|
||||
@@ -640,6 +642,7 @@ class Novel extends BaseController
|
||||
$strKeywords = ConverterMovel::convert($strKeywordsTemplate);
|
||||
$strDescription = ConverterMovel::convert($strDescriptionTemplate);
|
||||
|
||||
|
||||
View::assign([
|
||||
'arrNovel' => $arrNovel,
|
||||
'arrCategoryAll' => $arrCategoryAll,
|
||||
@@ -679,8 +682,8 @@ class Novel extends BaseController
|
||||
$intNId = $intNovelId;
|
||||
$arrNovel = $NovelModel->getNovelByNId($intNId);
|
||||
|
||||
$arrNovel['category_pinyin'] = $arrNovel['category_pinyin'] ?? 'all';
|
||||
$arrNovel['category_sex'] = $arrNovel['category_sex'] ?? 'man';
|
||||
$arrNovel['n_category_pinyin'] = $arrNovel['n_category_pinyin'] ?? 'all';
|
||||
$arrNovel['n_category_sex_en'] = $arrNovel['n_category_sex_en'] ?? 'man';
|
||||
|
||||
// 章节
|
||||
$ChapterModel = ChapterModel::getInstance();
|
||||
@@ -697,11 +700,11 @@ class Novel extends BaseController
|
||||
$arrNextChapter = $ChapterModel->getNextChapter($arrChapter['n_id'], $arrChapter['c_sort_num'], $arrChapter['c_page']);
|
||||
|
||||
// 要点-先从章节随机截取,后面如果用上ai,看看使用ai 提炼 精简内容
|
||||
$strChapterDescription = strip_tags($arrChapter['content']);
|
||||
$strChapterDescription = strip_tags($arrChapter['c_content']);
|
||||
$intCount = mb_strlen($strChapterDescription);
|
||||
$strChapterDescription = ($intCount > 50) ? mb_substr($strChapterDescription, 0, 50) : $strChapterDescription;
|
||||
|
||||
$arrChapter['content'] = base64_encode($arrChapter['content']);
|
||||
$arrChapter['c_content'] = base64_encode($arrChapter['c_content']);
|
||||
}
|
||||
|
||||
$arrCategoryAll = CategoryModel::$arrCategoryAll;
|
||||
@@ -709,13 +712,13 @@ class Novel extends BaseController
|
||||
// 更新值
|
||||
ConverterMovel::setVal([
|
||||
'intPage' => 1,
|
||||
'strNovelName' => $arrNovel['og_novel_book_name'],
|
||||
'strNovelAuthor' => $arrNovel['og_novel_author'],
|
||||
'strNovelCategoryName' => $arrNovel['og_novel_category'],
|
||||
'strNovelStatus' => $arrNovel['og_novel_status'],
|
||||
'strNovelDescription' => $arrNovel['og_description'],
|
||||
'strNovelName' => $arrNovel['n_name'],
|
||||
'strNovelAuthor' => $arrNovel['n_author'],
|
||||
'strNovelCategoryName' => $arrNovel['n_category'],
|
||||
'strNovelStatus' => $arrNovel['n_status'],
|
||||
'strNovelDescription' => $arrNovel['n_description'],
|
||||
'strChapterDescription' => $strChapterDescription,
|
||||
'strNovelChapterName' => $arrChapter['name'],
|
||||
'strNovelChapterName' => $arrChapter['c_name'],
|
||||
'strNovelChapterSort' => $arrChapter['c_sort_num'],
|
||||
]);
|
||||
|
||||
@@ -765,8 +768,8 @@ class Novel extends BaseController
|
||||
$intNId = $intNovelId;
|
||||
$arrNovel = $NovelModel->getNovelByNId($intNId);
|
||||
|
||||
$arrNovel['category_pinyin'] = $arrNovel['category_pinyin'] ?? 'all';
|
||||
$arrNovel['category_sex'] = $arrNovel['category_sex'] ?? 'man';
|
||||
$arrNovel['n_category_pinyin'] = $arrNovel['n_category_pinyin'] ?? 'all';
|
||||
$arrNovel['n_category_sex_en'] = $arrNovel['n_category_sex_en'] ?? 'man';
|
||||
|
||||
$ChapterModel = ChapterModel::getInstance();
|
||||
|
||||
@@ -789,18 +792,18 @@ class Novel extends BaseController
|
||||
$intButtomNum = 10;
|
||||
}
|
||||
|
||||
$strBaseUrl = sprintf('/pc/xiaoshuo/%s-%s/mulu/%s/{page}', $arrNovel['og_novel_pin_yin'], $intNId, $strOrder);
|
||||
$strBaseUrl = sprintf('/pc/xiaoshuo/%s-%s/mulu/%s/{page}', $arrNovel['n_name_pinyin'], $intNId, $strOrder);
|
||||
$arrPaginator = CusteomPage02::generate($intPage, $arrPage['total'], $intLimit, $strBaseUrl, $intButtomNum);
|
||||
|
||||
// 更新值
|
||||
ConverterMovel::setVal([
|
||||
'intPage' => $intPage,
|
||||
'strNovelSex' => $arrNovel['category_sex'] == 'man' ? '男生' : '女生',
|
||||
'strNovelName' => $arrNovel['og_novel_book_name'],
|
||||
'strNovelAuthor' => $arrNovel['og_novel_author'],
|
||||
'strNovelCategoryName' => $arrNovel['og_novel_category'],
|
||||
'strNovelStatus' => $arrNovel['og_novel_status'],
|
||||
'strNovelDescription' => $arrNovel['og_description'],
|
||||
'strNovelSex' => $arrNovel['n_category_sex_en'] == 'man' ? '男生' : '女生',
|
||||
'strNovelName' => $arrNovel['n_name'],
|
||||
'strNovelAuthor' => $arrNovel['n_author'],
|
||||
'strNovelCategoryName' => $arrNovel['n_category'],
|
||||
'strNovelStatus' => $arrNovel['n_status'],
|
||||
'strNovelDescription' => $arrNovel['n_description'],
|
||||
]);
|
||||
|
||||
$strTitleTemplate = $Request->DomainModel->getFomartSubject(getFomartSubjectKey(__METHOD__) . '@TITLE',$intNId);
|
||||
@@ -861,10 +864,10 @@ class Novel extends BaseController
|
||||
|
||||
$arrFilter = [
|
||||
'$or' => [
|
||||
['og_novel_book_name' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
['og_novel_author' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
['og_novel_category' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
['og_description' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
['n_name' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
['n_author' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
['n_category' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
['n_description' => ['$regex' => $strSearchKeywords, '$options' => 'i']],
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
@@ -16,15 +16,15 @@
|
||||
{foreach $arrRecommendNovel as $key=>$Novel }
|
||||
<dl class="rec-focus-book">
|
||||
<dt class="book-img">
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>
|
||||
<img height="100" width="80" alt="{$Novel.og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读"
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
|
||||
<img height="100" width="80" alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读"
|
||||
src="{$Novel.n_cover_path ?? ''}" >
|
||||
</a>
|
||||
</dt>
|
||||
<dd class="book-info">
|
||||
<h2><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel.og_novel_book_name}</a></h2>
|
||||
<p>作者:{$Novel.og_novel_author}</p>
|
||||
<p>{$Novel.og_description}</p>
|
||||
<h2><a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name}</a></h2>
|
||||
<p>作者:{$Novel.n_author}</p>
|
||||
<p>{$Novel.n_description}</p>
|
||||
</dd>
|
||||
</dl>
|
||||
{/foreach}
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<h3 class="wrap-title"><span>最新标签</span></h3>
|
||||
<div class="rec-focus" style="font-size:12px;">
|
||||
{foreach $arrRecommendNovel as $key=>$vo }
|
||||
<a href="/">{$vo.og_novel_book_name}</a>
|
||||
<a href="/">{$vo.n_name}</a>
|
||||
{/foreach}
|
||||
<a href="/sitemap_index.xml">XML地图</a>
|
||||
</div>
|
||||
|
||||
@@ -4,26 +4,26 @@
|
||||
{block name="description"}{$strDescription??''}{/block}
|
||||
{block name="head"}
|
||||
<!-- 社交媒体标签 -->
|
||||
<meta property="og:title" content="{$arrNovel['og_novel_book_name']??'未知小说'}章节目录 - {$DomainModel->d_name} 第{$intPage}页 " />
|
||||
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'}章节目录 - {$DomainModel->d_name} 第{$intPage}页 " />
|
||||
<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[og_novel_pin_yin]" /}' />
|
||||
content='https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' />
|
||||
<meta property="og:type" content="website" />
|
||||
<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.og_novel_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.og_novel_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.og_novel_book_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[og_novel_pin_yin]" c_sort="$intFirstChapterSort"/}'>
|
||||
<meta property="og:novel:status" content="{$arrNovel.og_novel_status ?? ''}">
|
||||
<meta property="og:novel:update_time" content="{$arrNovel.og_novel_update_time ?? ''}">
|
||||
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.name ?? ''}">
|
||||
content='https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$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_url"
|
||||
content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>
|
||||
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['og_novel_book_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
|
||||
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
|
||||
|
||||
@@ -33,23 +33,23 @@
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Book",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}",
|
||||
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{$arrNovel['og_novel_author'] ??'佚名'}"
|
||||
"name": "{$arrNovel['n_author'] ??'佚名'}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "{$DomainModel->d_name}",
|
||||
"url": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" order="zheng" page="$intPage"/}',
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="$intPage"/}',
|
||||
"inLanguage": "zh-CN",
|
||||
"genre": "{$arrNovel['og_novel_category'] ?? '未知分类'}",
|
||||
"genre": "{$arrNovel['n_category'] ?? '未知分类'}",
|
||||
"hasPart": {
|
||||
"@type": "WebPage",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}章节目录 第{$intPage}页",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" order="zheng" page="$intPage"/}'
|
||||
"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"/}'
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -72,15 +72,15 @@
|
||||
<meta itemprop="position" content="1" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<a href='{site:nflurl gender="all" category="$arrNovel[category_pinyin]" status="all" page="1"/}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.og_novel_category}</span>
|
||||
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
|
||||
<a href='{site:nflurl gender="all" category="$arrNovel[n_category_pinyin]" status="all" page="1"/}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.n_category}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="2" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['og_novel_book_name']}</span>
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['n_name']}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="3" />
|
||||
</li>
|
||||
@@ -91,7 +91,7 @@
|
||||
<div class="mod mod-attentions">
|
||||
{$arrGRM[0]|raw}
|
||||
<div class="mod-head">
|
||||
<h1>{$arrNovel['og_novel_book_name']}章节目录 - {$arrNovel['og_novel_author']} - {$DomainModel->d_name} 第{$intPage}页</h1>
|
||||
<h1>{$arrNovel['n_name']}章节目录 - {$arrNovel['n_author']} - {$DomainModel->d_name} 第{$intPage}页</h1>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -103,8 +103,8 @@
|
||||
{volist name="arrPage.data" id="Chapter" key="key"}
|
||||
<li>
|
||||
{$arrGRM[$key]|raw}
|
||||
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'
|
||||
title="{$arrNovel['og_novel_book_name']} {$Chapter.name}">{$Chapter.name}</a>
|
||||
<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}
|
||||
</ul>
|
||||
|
||||
@@ -20,26 +20,26 @@
|
||||
<script src="/public/js/yueduqsbs.js"></script>
|
||||
|
||||
<!-- 社交媒体标签 -->
|
||||
<meta property="og:title" content="{$arrNovel['og_novel_book_name']??'未知小说'} {$arrChapter.name} - {$DomainModel->d_name}" />
|
||||
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_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[og_novel_pin_yin]" /}' />
|
||||
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.og_novel_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.og_novel_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.og_novel_book_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[og_novel_pin_yin]" c_sort="$$arrChapter[c_sort_num]"/}'>
|
||||
<meta property="og:novel:status" content="{$arrNovel.og_novel_status ?? ''}">
|
||||
<meta property="og:novel:update_time" content="{$arrNovel.og_novel_update_time ?? ''}">
|
||||
<meta property="og:novel:latest_chapter_name" content="{$arrChapter.name}">
|
||||
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[og_novel_pin_yin]" /}'>
|
||||
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['og_novel_book_name']??'未知小说'} {$arrChapter.name} - {$DomainModel->d_name}" />
|
||||
<meta name="twitter:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />
|
||||
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
|
||||
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
|
||||
<!-- 结构化数据 -->
|
||||
@@ -47,10 +47,10 @@
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Book",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}",
|
||||
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{$arrNovel['og_novel_author'] ??'佚名'}"
|
||||
"name": "{$arrNovel['n_author'] ??'佚名'}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
@@ -58,14 +58,14 @@
|
||||
"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[og_novel_pin_yin]" 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.og_novel_category ??''}",
|
||||
"datePublished": "{$arrNovel['og_novel_update_time'] ?? time()}",
|
||||
"genre": "{$arrNovel.n_category ??''}",
|
||||
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
|
||||
"hasPart": {
|
||||
"@type": "CreativeWork",
|
||||
"name": "{$arrChapter.name ?? ''}",
|
||||
"url":'https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}',
|
||||
"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}"
|
||||
}
|
||||
}
|
||||
@@ -104,12 +104,12 @@
|
||||
<a href="javascript:" class="btn-normal red" data-size="14" role="button">上一章</a>
|
||||
{else}
|
||||
{$arrGRM[4]|raw}
|
||||
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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="$arrPreChapter[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[og_novel_pin_yin]" c_sort="$arrNextChapter[c_sort_num]" c_page="0"/}'
|
||||
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrNextChapter[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>
|
||||
@@ -117,7 +117,7 @@
|
||||
<article id="chapterContent" class="read-article" style="font-size: 1.125rem">
|
||||
<section class="read-section jsChapterWrapper" data-chapter-id="4b2d5aab58d71">
|
||||
|
||||
<script>document.writeln(qsbs.bb('{$arrChapter.content}'));</script>
|
||||
<script>document.writeln(qsbs.bb('{$arrChapter.c_content}'));</script>
|
||||
</section>
|
||||
</article>
|
||||
{$arrGRM[5]|raw}
|
||||
@@ -126,12 +126,12 @@
|
||||
<!-- <a id="j_chapterPrev" href="javascript:void(0);">上一章</a> -->
|
||||
<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[og_novel_pin_yin]" 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="$arrPreChapter[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[og_novel_pin_yin]" c_sort="$arrNextChapter[c_sort_num]" c_page="0"/}'
|
||||
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$arrNextChapter[c_sort_num]" c_page="0"/}'
|
||||
class="btn-normal red" data-size="14" role="button">下一章</a>
|
||||
{/if}
|
||||
|
||||
@@ -150,25 +150,25 @@
|
||||
<meta itemprop="position" content="1" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<a href='{site:nflurl gender="all" category="$arrNovel[category_pinyin]" status="all" page="1"/}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.og_novel_category}</span>
|
||||
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
|
||||
<a href='{site:nflurl gender="all" category="$arrNovel[n_category_pinyin]" status="all" page="1"/}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.n_category}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="2" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.og_novel_book_name}</span>
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.n_name}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="2" />
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<h1 id="chapterTitle" class="read-book-name">
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>
|
||||
{$arrNovel.og_novel_book_name}
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
|
||||
{$arrNovel.n_name}
|
||||
</a>
|
||||
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}'>{$arrChapter.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>
|
||||
@@ -202,7 +202,7 @@
|
||||
<i class="iconfont icon-lixianxiazai"></i>
|
||||
离线章节
|
||||
</a> -->
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}' 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>
|
||||
@@ -299,7 +299,7 @@
|
||||
<footer class="read-opt-footer">
|
||||
<div class="btn-group">
|
||||
<!-- id="readBtnChapter" -->
|
||||
<a href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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>
|
||||
@@ -339,28 +339,28 @@
|
||||
const strNovelId = `{$arrNovel.n_id}`;
|
||||
const arrNovel = {
|
||||
'n_id' : `{$arrNovel['n_id']}`,
|
||||
'og_novel_pin_yin' : `{$arrNovel['og_novel_pin_yin']}`,
|
||||
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
|
||||
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
|
||||
'og_novel_book_name' : `{$arrNovel['og_novel_book_name']}`,
|
||||
'og_novel_author' : `{$arrNovel['og_novel_author']}`,
|
||||
'og_novel_status' : `{$arrNovel['og_novel_status']}`,
|
||||
'n_name' : `{$arrNovel['n_name']}`,
|
||||
'n_author' : `{$arrNovel['n_author']}`,
|
||||
'n_status' : `{$arrNovel['n_status']}`,
|
||||
'c_sort_num' : `{$arrChapter.c_sort_num}`,
|
||||
'c_name' : `{$arrChapter.name}`,
|
||||
'c_name' : `{$arrChapter.c_name}`,
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var book = {};
|
||||
book.Info = {
|
||||
"Id": `{$arrNovel['n_id']}`,
|
||||
"Name": `{$arrNovel['og_novel_book_name']}`,
|
||||
"authorName": `{$arrNovel['og_novel_author']}`
|
||||
"Name": `{$arrNovel['n_name']}`,
|
||||
"authorName": `{$arrNovel['n_author']}`
|
||||
};
|
||||
book.chapter = {
|
||||
//页面进入加载的章节id
|
||||
id: '{$arrPreChapter.c_sort_num ?? 1}',
|
||||
//章节源id
|
||||
source_id: '{$arrPreChapter.c_sort_num ?? 1}',
|
||||
title: '{$arrPreChapter.name ?? 1}',
|
||||
title: '{$arrPreChapter.c_name ?? 1}',
|
||||
content: '',
|
||||
//章节vip标识
|
||||
vipStatus: 0,
|
||||
@@ -369,8 +369,8 @@
|
||||
//下一章id
|
||||
nextId: '{$arrNextChapter.c_sort_num ?? 1}'
|
||||
};
|
||||
book.chapterUrl = '{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}' ;
|
||||
book.url = '{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'
|
||||
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>
|
||||
|
||||
@@ -4,26 +4,26 @@
|
||||
{block name="description"}{$strDescription??''}{/block}
|
||||
{block name="head"}
|
||||
<!-- 社交媒体标签 -->
|
||||
<meta property="og:title" content="{$arrNovel['og_novel_book_name']??'未知小说'}" />
|
||||
<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[og_novel_pin_yin]" /}' />
|
||||
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.og_novel_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.og_novel_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.og_novel_book_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[og_novel_pin_yin]" c_sort="$intFirstChapterSort"/}'>
|
||||
<meta property="og:novel:status" content="{$arrNovel.og_novel_status ?? ''}">
|
||||
<meta property="og:novel:update_time" content="{$arrNovel.og_novel_update_time ?? ''}">
|
||||
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.name ?? ''}">
|
||||
content='https://{$DomainModel->d_domain}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$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_url"
|
||||
content='https://{$DomainModel->d_domain}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>
|
||||
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['og_novel_book_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
|
||||
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
|
||||
<!-- 结构化数据 -->
|
||||
@@ -31,21 +31,21 @@
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Book",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}",
|
||||
"description": "{$arrNovel['og_description'] ??'暂无简介'}",
|
||||
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
|
||||
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{$arrNovel['og_novel_author'] ??'佚名'}"
|
||||
"name": "{$arrNovel['n_author'] ??'佚名'}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "{$DomainModel->d_name}",
|
||||
"url": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
"datePublished": "{$arrNovel['og_novel_update_time'] ?? time()}",
|
||||
"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[og_novel_pin_yin]" /}',
|
||||
"genre": "{$arrNovel.og_novel_category ??''}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}',
|
||||
"genre": "{$arrNovel.n_category ??''}",
|
||||
"inLanguage": "zh-CN",
|
||||
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
|
||||
"aggregateRating": {
|
||||
@@ -78,20 +78,20 @@
|
||||
<meta itemprop="position" content="1" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<a href='{site:nflurl gender="all" category="$arrNovel[category_pinyin]" status="all" page="1"/}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.og_novel_category}</span>
|
||||
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
|
||||
<a href='{site:nflurl gender="all" category="$arrNovel[n_category_pinyin]" status="all" page="1"/}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.n_category}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="2" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['og_novel_book_name']}</span>
|
||||
<a href='{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['n_name']}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="3" />
|
||||
</li>
|
||||
</ol>
|
||||
<h1 class="site-description ">{$arrNovel['og_novel_book_name']}最新章节 - {$arrNovel['og_novel_author']} - {$DomainModel->d_name}</h1>
|
||||
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} - {$DomainModel->d_name}</h1>
|
||||
</nav>
|
||||
|
||||
<!--info-->
|
||||
@@ -101,15 +101,15 @@
|
||||
<dl class="base clearfix">
|
||||
<dt>
|
||||
<img src="/static/img/default.jpg" data-src="{$arrNovel.n_cover_path ?? ''}"
|
||||
alt="{$arrNovel['og_novel_book_name'] ?? ''}小说封面 - {$arrNovel.og_novel_author}最新章节" class="lazy lazyload-img" />
|
||||
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节" class="lazy lazyload-img" />
|
||||
|
||||
<i class='{eq name="arrNovel.og_novel_status" value="连载中"}serial{else}finish {/eq}'>已完结</i>
|
||||
<i class='{eq name="arrNovel.n_status" value="连载中"}serial{else}finish {/eq}'>已完结</i>
|
||||
</dt>
|
||||
<dd>
|
||||
<h2>{$arrNovel['og_novel_book_name']}</h2>
|
||||
<h2>{$arrNovel['n_name']}</h2>
|
||||
<p class="info">
|
||||
<span>分类:{$arrNovel.og_novel_category}</span>
|
||||
<span>作者:<a href='{site:souurl key="$arrNovel[og_novel_author]" p="1"/}'>{$arrNovel.og_novel_author}</a></span>
|
||||
<span>分类:{$arrNovel.n_category}</span>
|
||||
<span>作者:<a href='{site:souurl key="$arrNovel[n_author]" p="1"/}'>{$arrNovel.n_author}</a></span>
|
||||
<!-- <span>字数:54.20万字</span> -->
|
||||
<span>阅读:{$arrNovelClicks.total}</span>
|
||||
</p>
|
||||
@@ -121,7 +121,7 @@
|
||||
{if !empty($intFirstChapterSort)}
|
||||
<li>
|
||||
{$arrGRM[2]|raw}
|
||||
<a class="read-online reading" href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$intFirstChapterSort"/}'
|
||||
<a class="read-online reading" href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$intFirstChapterSort"/}'
|
||||
>点击阅读</a>
|
||||
</li>
|
||||
{/if}
|
||||
@@ -134,7 +134,7 @@
|
||||
{$arrGRM[3]|raw}
|
||||
<div class="content">
|
||||
<p>
|
||||
{$arrNovel.og_description ?? ''}
|
||||
{$arrNovel.n_description ?? ''}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -157,7 +157,7 @@
|
||||
{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[og_novel_pin_yin]" 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>
|
||||
@@ -170,23 +170,23 @@
|
||||
<!-- hot-book -->
|
||||
<div class="mod mod-attentions">
|
||||
<div class="mod-head">
|
||||
<h3>{$arrNovel.og_novel_book_name}最新章节</h3>
|
||||
<h3>{$arrNovel.n_name}最新章节</h3>
|
||||
</div>
|
||||
<div class="attentions">
|
||||
<ul class="clearfix">
|
||||
{volist name="arrChapter" id="Chapter" key="key"}
|
||||
<li>
|
||||
{$arrGRM[$key]|raw}
|
||||
<a href='{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'
|
||||
title="{$arrNovel.og_novel_book_name}-{$Chapter.name}">{$Chapter.name}</a>
|
||||
<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}
|
||||
|
||||
</ul>
|
||||
<div class="chapters-more">
|
||||
|
||||
<a href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" order="zheng" page="1"/}'
|
||||
class="reading btn-bookshelf">{$arrNovel.og_novel_book_name}更多章节</a>
|
||||
<a href='{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="1"/}'
|
||||
class="reading btn-bookshelf">{$arrNovel.n_name}更多章节</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -200,12 +200,12 @@
|
||||
{foreach $arrRelateveNovel as $Novel}
|
||||
<li>
|
||||
{$arrGRM[$key+10]|raw}
|
||||
<a href='{site:nurl n_id="Novel.n_id" n_py="Novel.og_novel_pin_yin"/}'>
|
||||
<a href='{site:nurl n_id="Novel.n_id" n_py="Novel.n_name_pinyin"/}'>
|
||||
<img class="lazy lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
|
||||
data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.og_novel_book_name ?? ''}" />
|
||||
<span>{$Novel.og_novel_book_name ?? ''}</span>
|
||||
data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''}" />
|
||||
<span>{$Novel.n_name ?? ''}</span>
|
||||
<em>
|
||||
<aria>作者:</aria>{$Novel.og_novel_author ?? ''}
|
||||
<aria>作者:</aria>{$Novel.n_author ?? ''}
|
||||
</em>
|
||||
</a>
|
||||
</li>
|
||||
@@ -220,12 +220,12 @@
|
||||
const strNovelId = `{$arrNovel.n_id}`;
|
||||
const arrNovel = {
|
||||
'n_id' : `{$arrNovel['n_id']}`,
|
||||
'og_novel_pin_yin' : `{$arrNovel['og_novel_pin_yin']}`,
|
||||
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
|
||||
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
|
||||
'og_novel_book_name' : `{$arrNovel['og_novel_book_name']}`,
|
||||
'og_novel_author' : `{$arrNovel['og_novel_author']}`,
|
||||
'og_novel_status' : `{$arrNovel['og_novel_status']}`,
|
||||
'og_novel_update_time' : `{$arrNovel['og_novel_update_time']}`,
|
||||
'n_name' : `{$arrNovel['n_name']}`,
|
||||
'n_author' : `{$arrNovel['n_author']}`,
|
||||
'n_status' : `{$arrNovel['n_status']}`,
|
||||
'n_update_time' : `{$arrNovel['n_update_time']}`,
|
||||
'c_sort_num' : 1,
|
||||
'c_name' : `第一章`,
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"url": "https://{$DomainModel->d_name}{site:souurl key='$strSearchKeywords' p='1'/}",
|
||||
"name": "{$DomainModel->d_name} - {$DomainModel->d_name}搜索 第{$intPage}页",
|
||||
"description": "搜索‘{$strSearchKeywords}’结果第{$intPage}页,提供{$strSearchKeywords}创作的小说免费阅读。",
|
||||
"datePublished": "{$arrNovel['og_novel_update_time'] ?? time()}",
|
||||
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
|
||||
"mainEntity": {
|
||||
"@type": "Book",
|
||||
"name": "{$DomainModel->d_name}",
|
||||
|
||||
@@ -4,48 +4,48 @@
|
||||
{block name="description"}{$strDescription??''}{/block}
|
||||
{block name="head"}
|
||||
<!-- 社交媒体标签 -->
|
||||
<meta property="og:title" content="{$arrNovel['og_novel_book_name']??'未知小说'}" />
|
||||
<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[og_novel_pin_yin]" /}' />
|
||||
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.og_novel_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.og_novel_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.og_novel_book_name ?? ''}">
|
||||
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
|
||||
<meta property="og:novel:read_url"
|
||||
content="https://{$DomainModel->d_domain}{$strPcPath}/xiaoshuo/{$arrNovel.og_novel_pin_yin}-{$arrNovel.n_id}/zhang-1">
|
||||
<meta property="og:novel:status" content="{$arrNovel.og_novel_status ?? ''}">
|
||||
<meta property="og:novel:update_time" content="{$arrNovel.og_novel_update_time ?? ''}">
|
||||
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.name ?? ''}">
|
||||
content="https://{$DomainModel->d_domain}{$strPcPath}/xiaoshuo/{$arrNovel.n_name_pinyin}-{$arrNovel.n_id}/zhang-1">
|
||||
<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_url"
|
||||
content="https://{$DomainModel->d_domain}{$strPcPath}/xiaoshuo/{$arrNovel.og_novel_pin_yin}-{$arrNovel.n_id}/zhang-{$arrLatestChapter.c_sort_num ?? 1}">
|
||||
content="https://{$DomainModel->d_domain}{$strPcPath}/xiaoshuo/{$arrNovel.n_name_pinyin}-{$arrNovel.n_id}/zhang-{$arrLatestChapter.c_sort_num ?? 1}">
|
||||
<!-- 可选:支持 Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content="{$arrNovel['og_novel_book_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
|
||||
<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[og_novel_pin_yin]" /}',
|
||||
"@context": 'https://{$DomainModel->d_domain}/{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}',
|
||||
"@type": "book",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}",
|
||||
"description": "{$arrNovel['og_description'] ??'暂无简介'}",
|
||||
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
|
||||
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{$arrNovel['og_novel_author'] ??'佚名'}"
|
||||
"name": "{$arrNovel['n_author'] ??'佚名'}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "{$DomainModel->d_name}",
|
||||
"url": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
"datePublished": "{$arrNovel['og_novel_update_time'] ?? time()}",
|
||||
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
|
||||
"image": "{$Novel.n_cover_path ?? ''}",
|
||||
"url": '{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}',
|
||||
"genre": "{$arrNovel.og_novel_category ??''}",
|
||||
"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",
|
||||
"aggregateRating": {
|
||||
@@ -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[og_novel_pin_yin]" /}'>
|
||||
href='{$DomainModel->d_domain}/{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
|
||||
{/block}
|
||||
{block name="logo-html"}
|
||||
<h2>
|
||||
@@ -79,15 +79,15 @@
|
||||
<meta itemprop="position" content="1" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<a href="{$strPcPath}/shuku/all/{$arrNovel.category_pinyin}/all/page1" itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.og_novel_category}</span>
|
||||
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
|
||||
<a href="{$strPcPath}/shuku/all/{$arrNovel.n_category_pinyin}/all/page1" 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[og_novel_pin_yin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['og_novel_book_name']}</span>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['n_name']}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="3" />
|
||||
</li>
|
||||
@@ -97,11 +97,11 @@
|
||||
<div class="info">
|
||||
<div class="info_box">
|
||||
<div class="info_L">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'
|
||||
title="{$arrNovel['og_novel_book_name']}" class="book_cov">
|
||||
<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->og_novel_book_name ?? ''}封面" class="lazyload_book_cover lazyload-img">
|
||||
<i class="serial">{$arrNovel.og_novel_status ?? ''}</i>
|
||||
alt="{$Novel->n_name ?? ''}封面" class="lazyload_book_cover lazyload-img">
|
||||
<i class="serial">{$arrNovel.n_status ?? ''}</i>
|
||||
</a>
|
||||
<div class="btn">
|
||||
<a href="javascript:;" class="sc" onclick="addBookshelfFun()">
|
||||
@@ -114,19 +114,19 @@
|
||||
<div class="info_C book_inf">
|
||||
<div class="c01">
|
||||
<h3><a
|
||||
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>{$arrNovel['og_novel_book_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>
|
||||
<p class="c02">
|
||||
<span class="zz">作者:{$arrNovel.og_novel_author}</span>
|
||||
<span>创建日期:{$arrNovel.og_novel_update_time}</span>
|
||||
<span class="zz">作者:{$arrNovel.n_author}</span>
|
||||
<span>创建日期:{$arrNovel.n_update_time}</span>
|
||||
</p>
|
||||
<div class="c03">
|
||||
<p class="jianjie">简介</p>
|
||||
<div class="c03_box">
|
||||
<p class="jj_con" id="book_desc">
|
||||
{$arrNovel.og_description}</p>
|
||||
{$arrNovel.n_description}</p>
|
||||
<span class="zk_btn" style="">展开<s></s></span>
|
||||
<span class="sq_btn" style="display: none;">收起<s></s></span>
|
||||
</div>
|
||||
@@ -142,8 +142,8 @@
|
||||
</div>
|
||||
<div class="c04">
|
||||
{if !empty($arrChapter)}
|
||||
<a href="{$strPcPath}/xiaoshuo/{$arrNovel.og_novel_pin_yin}-{$arrNovel.n_id}/zhang-1" class="read">立即阅读</a>
|
||||
<a href="{$strPcPath}/xiaoshuo/{$arrNovel.og_novel_pin_yin}-{$arrNovel.n_id}/mulu/zheng" class="mulu">目录</a>
|
||||
<a href="{$strPcPath}/xiaoshuo/{$arrNovel.n_name_pinyin}-{$arrNovel.n_id}/zhang-1" class="read">立即阅读</a>
|
||||
<a href="{$strPcPath}/xiaoshuo/{$arrNovel.n_name_pinyin}-{$arrNovel.n_id}/mulu/zheng" class="mulu">目录</a>
|
||||
{/if}
|
||||
</div>
|
||||
<!-- <div class="c05">
|
||||
@@ -159,9 +159,9 @@
|
||||
<div class="inf02">
|
||||
<h4>小说信息</h4>
|
||||
<p>类别:
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<a href='{$strPcPath}/shuku/all/{$arrNovel.category_pinyin}/all/page1' title="{$arrNovel.og_novel_category}">
|
||||
{$arrNovel.og_novel_category}
|
||||
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
|
||||
<a href='{$strPcPath}/shuku/all/{$arrNovel.n_category_pinyin}/all/page1' title="{$arrNovel.n_category}">
|
||||
{$arrNovel.n_category}
|
||||
</a>
|
||||
</p>
|
||||
<!-- <p>总字数:54.20万+</p> -->
|
||||
@@ -184,8 +184,8 @@
|
||||
<div class="zj_con">
|
||||
{volist name="arrChapter" id="Chapter" key="key"}
|
||||
<p>
|
||||
<a href="{$strPcPath}/xiaoshuo/{$arrNovel.og_novel_pin_yin}-{$Chapter.n_id}/zhang-{$Chapter.c_sort_num}"
|
||||
class="zj">{$Chapter.name}</a>
|
||||
<a href="{$strPcPath}/xiaoshuo/{$arrNovel.n_name_pinyin}-{$Chapter.n_id}/zhang-{$Chapter.c_sort_num}"
|
||||
class="zj">{$Chapter.c_name}</a>
|
||||
<span class="time">{$Chapter.created_at ?? '1天前'}</span>
|
||||
<!-- <span class="time">3天前</span>-->
|
||||
</p>
|
||||
@@ -199,7 +199,7 @@
|
||||
<div class="pl_con">
|
||||
{volist name="arrNovel.n_forge_novel" id="ForgeNovel" key="key"}
|
||||
<!-- n_forge_id -->
|
||||
<a href='{$strPcPath}/kan-xiaoshuo/{$arrNovel.og_novel_pin_yin}-{$arrNovel.n_id}-{$ForgeNovel.n_forge_id}'
|
||||
<a href='{$strPcPath}/kan-xiaoshuo/{$arrNovel.n_name_pinyin}-{$arrNovel.n_id}-{$ForgeNovel.n_forge_id}'
|
||||
class="red">{$ForgeNovel.n_forge_title}</a>
|
||||
{/volist}
|
||||
|
||||
@@ -213,23 +213,23 @@
|
||||
{volist name="arrRelateveNovel" id="Novel" key="key"}
|
||||
<li>
|
||||
<h3>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[og_novel_pin_yin]" /}'
|
||||
title="{$Novel['og_novel_book_name'] ?? ''}">
|
||||
{$Novel['og_novel_book_name'] ?? ''}
|
||||
<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[og_novel_pin_yin]" /}'
|
||||
title="$Novel['og_novel_book_name'] ?? ''}" class="book_cov">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'
|
||||
title="$Novel['n_name'] ?? ''}" class="book_cov">
|
||||
<img src="/template/kuangyu/home/bai_web/images/default.png"
|
||||
data-src="{$Novel['n_cover_path'] ?? ''}" class="lazyload_book_cover lazyload-img"
|
||||
alt="{$Novel['og_novel_book_name'] ?? ''}">
|
||||
alt="{$Novel['n_name'] ?? ''}">
|
||||
</a>
|
||||
<div class="book_inf">
|
||||
<span class="aut">{$Novel['og_novel_author'] ?? ''}</span>
|
||||
<span class="tag"><a href="/">{$Novel['og_novel_category'] ?? ''}</a></span>
|
||||
<span class="aut">{$Novel['n_author'] ?? ''}</span>
|
||||
<span class="tag"><a href="/">{$Novel['n_category'] ?? ''}</a></span>
|
||||
<p class="int">
|
||||
{$Novel['og_description'] ?? ''}</p>
|
||||
{$Novel['n_description'] ?? ''}</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@@ -244,11 +244,11 @@
|
||||
const strNovelId = `{$arrNovel.n_id}`;
|
||||
const arrNovel = {
|
||||
'n_id' : `{$arrNovel['n_id']}`,
|
||||
'og_novel_pin_yin' : `{$arrNovel['og_novel_pin_yin']}`,
|
||||
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
|
||||
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
|
||||
'og_novel_book_name' : `{$arrNovel['og_novel_book_name']}`,
|
||||
'og_novel_author' : `{$arrNovel['og_novel_author']}`,
|
||||
'og_novel_status' : `{$arrNovel['og_novel_status']}`,
|
||||
'n_name' : `{$arrNovel['n_name']}`,
|
||||
'n_author' : `{$arrNovel['n_author']}`,
|
||||
'n_status' : `{$arrNovel['n_status']}`,
|
||||
'c_sort_num' : 1,
|
||||
'c_name' : `第一章`,
|
||||
};
|
||||
|
||||
@@ -4,26 +4,26 @@
|
||||
{block name="description"}{$strDescription??''}{/block}
|
||||
{block name="head"}
|
||||
<!-- 社交媒体标签 -->
|
||||
<meta property="og:title" content="{$arrNovel['og_novel_book_name']??'未知小说'}" />
|
||||
<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[og_novel_pin_yin]" /}' />
|
||||
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.og_novel_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.og_novel_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.og_novel_book_name ?? ''}">
|
||||
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
|
||||
<meta property="og:novel:read_url"
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$intFirstChapterSort"/}'>
|
||||
<meta property="og:novel:status" content="{$arrNovel.og_novel_status ?? ''}">
|
||||
<meta property="og:novel:update_time" content="{$arrNovel.og_novel_update_time ?? ''}">
|
||||
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.name}">
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$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_url"
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>
|
||||
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['og_novel_book_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
|
||||
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
|
||||
<!-- 结构化数据 -->
|
||||
@@ -31,28 +31,28 @@
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Book",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}",
|
||||
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{$arrNovel['og_novel_author'] ??'佚名'}"
|
||||
"name": "{$arrNovel['n_author'] ??'佚名'}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "{$DomainModel->d_name}",
|
||||
"url": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" order="zheng" page="$intPage"/}',
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" order="zheng" page="$intPage"/}',
|
||||
"inLanguage": "zh-CN",
|
||||
"genre": "{$arrNovel['og_novel_category'] ?? '未知分类'}",
|
||||
"genre": "{$arrNovel['n_category'] ?? '未知分类'}",
|
||||
"hasPart": {
|
||||
"@type": "WebPage",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}章节目录 第{$intPage}页",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" order="zheng" page="$intPage"/}'
|
||||
"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"/}'
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{block name="head-css"}
|
||||
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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="$intPage"/}'>
|
||||
{/block}
|
||||
{block name="head-js"}{/block}
|
||||
|
||||
@@ -75,15 +75,15 @@
|
||||
<meta itemprop="position" content="1" />
|
||||
</li>
|
||||
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<a href='{$strPcPath}{site:nflurl gender="all" category="$arrNovel[category_pinyin]" status="all" page="1"/}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel.og_novel_category}</span>
|
||||
<?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">
|
||||
<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[og_novel_pin_yin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['og_novel_book_name']}</span>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}' itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['n_name']}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="3" />
|
||||
</li>
|
||||
@@ -100,11 +100,11 @@
|
||||
<div class="top">
|
||||
{$arrGRM[0]|raw}
|
||||
<h1>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}' >
|
||||
{$arrNovel['og_novel_book_name']}章节目录 - {$arrNovel['og_novel_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} 第{$intPage}页
|
||||
</a>
|
||||
</h1>
|
||||
<p>作者:{$arrNovel.og_novel_author}</p>
|
||||
<p>作者:{$arrNovel.n_author}</p>
|
||||
</div>
|
||||
<div class="fenlei">
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
<li>
|
||||
{$arrGRM[$key]|raw}
|
||||
<h2>
|
||||
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}' >{$Chapter.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}
|
||||
|
||||
@@ -12,30 +12,30 @@
|
||||
<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[og_novel_pin_yin]" 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['og_novel_book_name']??'未知小说'} {$arrChapter.name} - {$DomainModel->d_name}" />
|
||||
<meta property="og:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />
|
||||
<meta property="og:description" content="{$strDescription??'暂无简介'}" />
|
||||
<meta property="og:url"
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}' />
|
||||
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}" />
|
||||
<meta property="og:novel:category" content="{$arrNovel.og_novel_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.og_novel_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.og_novel_book_name ?? ''}">
|
||||
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
|
||||
<meta property="og:novel:read_url"
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$$arrChapter[c_sort_num]"/}'>
|
||||
<meta property="og:novel:status" content="{$arrNovel.og_novel_status ?? ''}">
|
||||
<meta property="og:novel:update_time" content="{$arrNovel.og_novel_update_time ?? ''}">
|
||||
<meta property="og:novel:latest_chapter_name" content="{$arrChapter.name}">
|
||||
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[og_novel_pin_yin]" /}'>
|
||||
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['og_novel_book_name']??'未知小说'} {$arrChapter.name} - {$DomainModel->d_name}" />
|
||||
<meta name="twitter:title" content="{$arrNovel['n_name']??'未知小说'} {$arrChapter.c_name} - {$DomainModel->d_name}" />
|
||||
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
|
||||
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
|
||||
<!-- 结构化数据 -->
|
||||
@@ -43,10 +43,10 @@
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Book",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}",
|
||||
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{$arrNovel['og_novel_author'] ??'佚名'}"
|
||||
"name": "{$arrNovel['n_author'] ??'佚名'}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
@@ -54,14 +54,14 @@
|
||||
"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[og_novel_pin_yin]" 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.og_novel_category ??''}",
|
||||
"datePublished": "{$arrNovel['og_novel_update_time'] ?? time()}",
|
||||
"genre": "{$arrNovel.n_category ??''}",
|
||||
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
|
||||
"hasPart": {
|
||||
"@type": "CreativeWork",
|
||||
"name": "{$arrChapter.name ?? ''}",
|
||||
"url":'https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}',
|
||||
"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}"
|
||||
}
|
||||
}
|
||||
@@ -159,26 +159,26 @@
|
||||
<div class="crumbs-nav">
|
||||
<a href="{$strPcPath}/">首页</a>
|
||||
<em class="iconfont"></em>
|
||||
{if $arrNovel.category_sex && $arrNovel.category_sex == 'man'}
|
||||
{if $arrNovel.n_category_sex_en && $arrNovel.n_category_sex_en == 'man'}
|
||||
{$arrGRM[15]|raw}
|
||||
|
||||
<a href='{$strPcPath}{site:nflurl gender="$strNanUrlTemp" category="all" status="all" page="1"/}'>男生</a>
|
||||
<em class="iconfont"></em>
|
||||
{$arrGRM[14]|raw}
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
|
||||
<a
|
||||
|
||||
href='{$strPcPath}{site:nflurl gender="$strNanUrlTemp" category="$arrNovel[category_pinyin]" status="all" page="1"/}'>{$arrNovel.og_novel_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[category_pinyin]" status="all" page="1"/}'>{$arrNovel.og_novel_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[og_novel_pin_yin]" /}'>{$arrNovel.og_novel_book_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,19 +188,19 @@
|
||||
<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[og_novel_pin_yin]" /}'>
|
||||
{$arrNovel.og_novel_book_name}
|
||||
<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[og_novel_pin_yin]" c_sort="$arrChapter[c_sort_num]" c_page="0"/}'
|
||||
>{$arrChapter.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"/}'
|
||||
>{$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[og_novel_pin_yin]" /}'>
|
||||
<em class="iconfont"></em> {$arrNovel.og_novel_book_name}</a>
|
||||
<a href="javascript:"> <em class="iconfont"></em> {$arrNovel.og_novel_author}</a>
|
||||
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>
|
||||
<i><em class="iconfont"></em><span class="j_updateTime">{$arrChapter.created_at ??
|
||||
''}</span></i>
|
||||
@@ -208,8 +208,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="read-content j_readContent">
|
||||
{if $arrChapter && $arrChapter.content}
|
||||
<script>document.writeln(qsbs.bb('{$arrChapter.content}'));</script>
|
||||
{if $arrChapter && $arrChapter.c_content}
|
||||
<script>document.writeln(qsbs.bb('{$arrChapter.c_content}'));</script>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@@ -227,13 +227,13 @@
|
||||
{else}
|
||||
{$arrGRM[10]|raw}
|
||||
<a id="j_chapterPrev"
|
||||
href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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="$arrPreChapter[c_sort_num]" c_page="0"/}'>上一章</a>
|
||||
{/if}
|
||||
<span>|</span>
|
||||
{if $arrNextChapter && $arrNextChapter.c_sort_num}
|
||||
{$arrGRM[9]|raw}
|
||||
<a id="j_chapterNext"
|
||||
href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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="$arrNextChapter[c_sort_num]" c_page="0"/}'>下一章</a>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@@ -243,7 +243,7 @@
|
||||
<dl>
|
||||
<dd id="j_navCatalogBtn">
|
||||
{$arrGRM[8]|raw}
|
||||
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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 +260,7 @@
|
||||
</dd>
|
||||
<dd>
|
||||
{$arrGRM[6]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>
|
||||
<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>
|
||||
@@ -375,13 +375,13 @@
|
||||
const strNovelId = `{$arrNovel.n_id}`;
|
||||
const arrNovel = {
|
||||
'n_id' : `{$arrNovel['n_id']}`,
|
||||
'og_novel_pin_yin' : `{$arrNovel['og_novel_pin_yin']}`,
|
||||
'n_name_pinyin' : `{$arrNovel['n_name_pinyin']}`,
|
||||
'n_cover_path' : `{$arrNovel['n_cover_path']}`,
|
||||
'og_novel_book_name' : `{$arrNovel['og_novel_book_name']}`,
|
||||
'og_novel_author' : `{$arrNovel['og_novel_author']}`,
|
||||
'og_novel_status' : `{$arrNovel['og_novel_status']}`,
|
||||
'n_name' : `{$arrNovel['n_name']}`,
|
||||
'n_author' : `{$arrNovel['n_author']}`,
|
||||
'n_status' : `{$arrNovel['n_status']}`,
|
||||
'c_sort_num' : `{$arrChapter.c_sort_num}`,
|
||||
'c_name' : `{$arrChapter.name}`,
|
||||
'c_name' : `{$arrChapter.c_name}`,
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -390,8 +390,8 @@
|
||||
var book = {};
|
||||
book.Info = {
|
||||
"Id": `{$arrNovel['n_id']}`,
|
||||
"Name": `{$arrNovel['og_novel_book_name']}`,
|
||||
"authorName": `{$arrNovel['og_novel_author']}`
|
||||
"Name": `{$arrNovel['n_name']}`,
|
||||
"authorName": `{$arrNovel['n_author']}`
|
||||
};
|
||||
book.chapter = {
|
||||
//页面进入加载的章节id
|
||||
@@ -405,7 +405,7 @@
|
||||
//下一章id
|
||||
nextId: '{$arrNextChapter.c_sort_num ?? 1}'
|
||||
};
|
||||
book.chapterUrl = '{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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>
|
||||
|
||||
@@ -4,26 +4,26 @@
|
||||
{block name="description"}{$strDescription??''}{/block}
|
||||
{block name="head"}
|
||||
<!-- 社交媒体标签 -->
|
||||
<meta property="og:title" content="{$arrNovel['og_novel_book_name']??'未知小说'}" />
|
||||
<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[og_novel_pin_yin]" /}' />
|
||||
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.og_novel_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.og_novel_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.og_novel_book_name ?? ''}">
|
||||
<meta property="og:novel:category" content="{$arrNovel.n_category ?? ''}">
|
||||
<meta property="og:novel:author" content="{$arrNovel.n_author ?? ''}">
|
||||
<meta property="og:novel:book_name" content="{$arrNovel.n_name ?? ''}">
|
||||
<meta property="og:novel:read_url"
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$intFirstChapterSort"/}'>
|
||||
<meta property="og:novel:status" content="{$arrNovel.og_novel_status ?? ''}">
|
||||
<meta property="og:novel:update_time" content="{$arrNovel.og_novel_update_time ?? ''}">
|
||||
<meta property="og:novel:latest_chapter_name" content="{$arrLatestChapter.name ?? ''}">
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$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_url"
|
||||
content='https://{$DomainModel->d_domain}{$strPcPath}{site:lcpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>
|
||||
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['og_novel_book_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:title" content="{$arrNovel['n_name'] ?? '未知小说'}" />
|
||||
<meta name="twitter:description" content="{$strDescription ?? '暂无简介'}" />
|
||||
<meta name="twitter:image" content="{$arrNovel.n_cover_path ?? ''}" />
|
||||
<!-- 结构化数据 -->
|
||||
@@ -31,21 +31,21 @@
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Book",
|
||||
"name": "{$arrNovel['og_novel_book_name'] ?? '未知小说'}",
|
||||
"description": "{$arrNovel['og_description'] ??'暂无简介'}",
|
||||
"name": "{$arrNovel['n_name'] ?? '未知小说'}",
|
||||
"description": "{$arrNovel['n_description'] ??'暂无简介'}",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "{$arrNovel['og_novel_author'] ??'佚名'}"
|
||||
"name": "{$arrNovel['n_author'] ??'佚名'}"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "{$DomainModel->d_name}",
|
||||
"url": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
"datePublished": "{$arrNovel['og_novel_update_time'] ?? time()}",
|
||||
"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[og_novel_pin_yin]" /}',
|
||||
"genre": "{$arrNovel.og_novel_category ??''}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}',
|
||||
"genre": "{$arrNovel.n_category ??''}",
|
||||
"inLanguage": "zh-CN",
|
||||
"bookFormat": "https://{$DomainModel->d_domain}/EBook",
|
||||
"aggregateRating": {
|
||||
@@ -60,7 +60,7 @@
|
||||
{/block}
|
||||
{block name="head-css"}
|
||||
<link rel="canonical"
|
||||
href='{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>
|
||||
href='{$DomainModel->d_domain}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'>
|
||||
{/block}
|
||||
{block name="logo-html"}
|
||||
<h2>
|
||||
@@ -70,7 +70,7 @@
|
||||
</h2>
|
||||
{/block}
|
||||
{block name="main"}
|
||||
<?php $arrNovel['category_pinyin'] ?? $arrNovel['category_pinyin'] = 'all'?>
|
||||
<?php $arrNovel['n_category_pinyin'] ?? $arrNovel['n_category_pinyin'] = 'all'?>
|
||||
<div class="content">
|
||||
<nav class="breadcrumb" aria-label="breadcrumb">
|
||||
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
|
||||
@@ -81,33 +81,33 @@
|
||||
<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[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.og_novel_category}</span>
|
||||
<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[og_novel_pin_yin]" /}'
|
||||
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" /}'
|
||||
itemprop="item">
|
||||
<span itemprop="name">{$arrNovel['og_novel_book_name']}</span>
|
||||
<span itemprop="name">{$arrNovel['n_name']}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="3" />
|
||||
</li>
|
||||
</ol>
|
||||
<h1 class="site-description ">{$arrNovel['og_novel_book_name']}最新章节 - {$arrNovel['og_novel_author']} -
|
||||
<h1 class="site-description ">{$arrNovel['n_name']}最新章节 - {$arrNovel['n_author']} -
|
||||
{$DomainModel->d_name}</h1>
|
||||
</nav>
|
||||
|
||||
<div class="info">
|
||||
<div class="info_box">
|
||||
<div class="info_L">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'
|
||||
title="{$arrNovel['og_novel_book_name']}" class="book_cov">
|
||||
<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['og_novel_book_name'] ?? ''}小说封面 - {$arrNovel.og_novel_author}最新章节"
|
||||
alt="{$arrNovel['n_name'] ?? ''}小说封面 - {$arrNovel.n_author}最新章节"
|
||||
class="lazyload_book_cover lazyload-img">
|
||||
<i class="serial">{$arrNovel.og_novel_status ?? ''}</i>
|
||||
<i class="serial">{$arrNovel.n_status ?? ''}</i>
|
||||
</a>
|
||||
<div class="btn">
|
||||
<a href="javascript:;" class="sc" onclick="addBookshelfFun()">
|
||||
@@ -120,19 +120,19 @@
|
||||
<div class="info_C book_inf">
|
||||
<div class="c01">
|
||||
<h2><a
|
||||
href='{$strPcPath}{site:nurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" /}'>{$arrNovel['og_novel_book_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>
|
||||
<p class="c02">
|
||||
<span class="zz">作者:{$arrNovel.og_novel_author}</span>
|
||||
<span>创建日期:{$arrNovel.og_novel_update_time}</span>
|
||||
<span class="zz">作者:{$arrNovel.n_author}</span>
|
||||
<span>创建日期:{$arrNovel.n_update_time}</span>
|
||||
</p>
|
||||
<div class="c03">
|
||||
<p class="jianjie">简介</p>
|
||||
<div class="c03_box">
|
||||
<p class="jj_con" id="book_desc">
|
||||
{$arrNovel.og_description ?? ''}</p>
|
||||
{$arrNovel.n_description ?? ''}</p>
|
||||
<span class="zk_btn">展开<s></s></span>
|
||||
<span class="sq_btn" style="display: none;">收起<s></s></span>
|
||||
</div>
|
||||
@@ -148,9 +148,9 @@
|
||||
</div>
|
||||
<div class="c04">
|
||||
{if !empty($arrChapter)}
|
||||
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$intFirstChapterSort"/}'
|
||||
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[n_name_pinyin]" c_sort="$intFirstChapterSort"/}'
|
||||
class="read">立即阅读</a>
|
||||
<a href='{$strPcPath}{site:nclurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" 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>
|
||||
@@ -167,9 +167,9 @@
|
||||
<div class="inf02">
|
||||
<h4>小说信息</h4>
|
||||
<p>类别:
|
||||
<a href='{$strPcPath}{site:nflurl gender="all" category="$arrNovel[category_pinyin]" status="all" page="1"/}'
|
||||
title="{$arrNovel.og_novel_category}">
|
||||
{$arrNovel.og_novel_category}
|
||||
<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> -->
|
||||
@@ -193,8 +193,8 @@
|
||||
{volist name="arrChapter" id="Chapter" key="key"}
|
||||
<p>
|
||||
{$arrGRM[$key]|raw}
|
||||
<a href='{$strPcPath}{site:cpurl n_id="$arrNovel[n_id]" n_py="$arrNovel[og_novel_pin_yin]" c_sort="$Chapter[c_sort_num]" c_page="0"/}'
|
||||
title="{$arrNovel.og_novel_book_name}-{$Chapter.name}" class="zj">{$Chapter.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"/}'
|
||||
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>
|
||||
@@ -208,7 +208,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[og_novel_pin_yin]" 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}
|
||||
|
||||
@@ -223,23 +223,23 @@
|
||||
<li>
|
||||
<h3>
|
||||
{$arrGRM[$key+10]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[og_novel_pin_yin]" /}'
|
||||
title="{$Novel['og_novel_book_name'] ?? ''}">
|
||||
{$Novel['og_novel_book_name'] ?? ''}
|
||||
<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[og_novel_pin_yin]" /}'
|
||||
title="$Novel['og_novel_book_name'] ?? ''}" class="book_cov">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'
|
||||
title="$Novel['n_name'] ?? ''}" class="book_cov">
|
||||
<img src="/template/kuangyu/home/bai_web/images/default.png"
|
||||
data-src="{$Novel['n_cover_path'] ?? ''}" class="lazyload_book_cover lazyload-img"
|
||||
alt="{$Novel['og_novel_book_name'] ?? ''}">
|
||||
alt="{$Novel['n_name'] ?? ''}">
|
||||
</a>
|
||||
<div class="book_inf">
|
||||
<span class="aut">{$Novel['og_novel_author'] ?? ''}</span>
|
||||
<span class="tag"><a href="/">{$Novel['og_novel_category'] ?? ''}</a></span>
|
||||
<span class="aut">{$Novel['n_author'] ?? ''}</span>
|
||||
<span class="tag"><a href="/">{$Novel['n_category'] ?? ''}</a></span>
|
||||
<p class="int">
|
||||
{$Novel['og_description'] ?? ''}</p>
|
||||
{$Novel['n_description'] ?? ''}</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@@ -253,12 +253,12 @@
|
||||
const strNovelId = `{$arrNovel.n_id}`;
|
||||
const arrNovel = {
|
||||
'n_id': `{$arrNovel['n_id']}`,
|
||||
'og_novel_pin_yin': `{$arrNovel['og_novel_pin_yin']}`,
|
||||
'n_name_pinyin': `{$arrNovel['n_name_pinyin']}`,
|
||||
'n_cover_path': `{$arrNovel['n_cover_path']}`,
|
||||
'og_novel_book_name': `{$arrNovel['og_novel_book_name']}`,
|
||||
'og_novel_author': `{$arrNovel['og_novel_author']}`,
|
||||
'og_novel_status': `{$arrNovel['og_novel_status']}`,
|
||||
'og_novel_update_time': `{$arrNovel['og_novel_update_time']}`,
|
||||
'n_name': `{$arrNovel['n_name']}`,
|
||||
'n_author': `{$arrNovel['n_author']}`,
|
||||
'n_status': `{$arrNovel['n_status']}`,
|
||||
'n_update_time': `{$arrNovel['n_update_time']}`,
|
||||
'c_sort_num': 1,
|
||||
'c_name': `第一章`,
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"url": "https://{$DomainModel->d_name}{site:souurl key='$strSearchKeywords' p='1'/}",
|
||||
"name": "{$DomainModel->d_name} - {$DomainModel->d_name}搜索 第{$intPage}页",
|
||||
"description": "搜索‘{$strSearchKeywords}’结果第{$intPage}页,提供{$strSearchKeywords}创作的小说免费阅读。",
|
||||
"datePublished": "{$arrNovel['og_novel_update_time'] ?? time()}",
|
||||
"datePublished": "{$arrNovel['n_update_time'] ?? time()}",
|
||||
"mainEntity": {
|
||||
"@type": "Book",
|
||||
"name": "{$DomainModel->d_name}",
|
||||
|
||||
@@ -62,13 +62,13 @@
|
||||
{if $key == 1}
|
||||
<h3>
|
||||
{$arrGRM[1]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'
|
||||
title="{$Novel.og_novel_book_name ?? ''}"
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'
|
||||
title="{$Novel.n_name ?? ''}"
|
||||
class="zdz">
|
||||
{$Novel.og_novel_book_name ?? ''}
|
||||
{$Novel.n_name ?? ''}
|
||||
</a>
|
||||
</h3>
|
||||
<p class="int"> {$Novel.og_description ?? ''}</p>
|
||||
<p class="int"> {$Novel.n_description ?? ''}</p>
|
||||
{/if}
|
||||
{/volist}
|
||||
</div>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<li>
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<h3>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel->og_novel_book_name ?? ''}" class="book_cov">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' title="{$Novel->n_name ?? ''}" class="book_cov">
|
||||
<img class="lazyload_book_cover lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel->n_cover_path ?? ''}"
|
||||
alt="{$Novel->og_novel_book_name ?? ''}- {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
|
||||
alt="{$Novel->n_name ?? ''}- {$Novel.n_category ?? ''}最新章节在线免费阅读">
|
||||
</a>
|
||||
</h3>
|
||||
<div class="book_inf">
|
||||
<h3><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel->og_novel_book_name ?? ''}" >{$Novel->og_novel_book_name ?? ''}</a></h3>
|
||||
<span class="aut">{$Novel->og_novel_author ?? ''}</span>
|
||||
<h3><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>
|
||||
<span class="aut">{$Novel->n_author ?? ''}</span>
|
||||
</div>
|
||||
</li>
|
||||
@@ -1,14 +1,14 @@
|
||||
<div class="bookLink">
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' >
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' >
|
||||
<div class="bookImg">
|
||||
<img class="lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
|
||||
</div>
|
||||
<div>
|
||||
<h2>{$Novel.og_novel_book_name ?? ''}</h2>
|
||||
<span>{$Novel->og_novel_author ?? ''}</span>
|
||||
<p>{$Novel.og_description ?? ''}</p>
|
||||
<h2>{$Novel.n_name ?? ''}</h2>
|
||||
<span>{$Novel->n_author ?? ''}</span>
|
||||
<p>{$Novel.n_description ?? ''}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="bookLink oneLine">
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' >
|
||||
<em>「{$Novel->og_novel_category ?? ''}」</em>
|
||||
{$Novel.og_novel_book_name ?? ''}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' >
|
||||
<em>「{$Novel->n_category ?? ''}」</em>
|
||||
{$Novel.n_name ?? ''}
|
||||
</a>
|
||||
</div>
|
||||
@@ -1,19 +1,19 @@
|
||||
<li>
|
||||
<?php $Novel['category_pinyin'] ?? $Novel['category_pinyin'] = 'all'?>
|
||||
<?php $Novel['n_category_pinyin'] ?? $Novel['n_category_pinyin'] = 'all'?>
|
||||
<h3>
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel->og_novel_book_name ?? ''}" >
|
||||
{$Novel->og_novel_book_name ?? ''}
|
||||
<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 class="book_inf">
|
||||
<span class="aut">{$Novel->og_novel_author ?? ''}</span>
|
||||
<span class="tag"><a href="{$strPcPath}/shuku/all/{$Novel->category_pinyin}/all/page1" >{$Novel->og_novel_category ?? ''}</a></span>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel->og_novel_book_name ?? ''}" class="book_cov">
|
||||
<span class="aut">{$Novel->n_author ?? ''}</span>
|
||||
<span class="tag"><a href="{$strPcPath}/shuku/all/{$Novel->n_category_pinyin}/all/page1" >{$Novel->n_category ?? ''}</a></span>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' title="{$Novel->n_name ?? ''}" class="book_cov">
|
||||
<img class="lazyload_book_cover lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}"
|
||||
alt="{$Novel->og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
|
||||
alt="{$Novel->n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
|
||||
</a>
|
||||
<p class="int"> {$Novel->og_description ?? ''}</p>
|
||||
<p class="int"> {$Novel->n_description ?? ''}</p>
|
||||
</div>
|
||||
</li>
|
||||
@@ -1,21 +1,21 @@
|
||||
<div class="f3_L">
|
||||
<h3>
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name ?? ''}" >
|
||||
{$Novel.og_novel_book_name ?? ''}</a></h3>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name ?? ''}" class="book_cov">
|
||||
<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>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' title="{$Novel.n_name ?? ''}" class="book_cov">
|
||||
<img class="lazyload_book_cover lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}"
|
||||
alt="{$Novel.og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
|
||||
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
|
||||
</a>
|
||||
<div class="book_inf">
|
||||
<div class="book_inf01">
|
||||
<span class="aut">作者:{$Novel->og_novel_author ?? ''}</span>
|
||||
<span class="fr">分类:<a href="/lists/19.html" >{$Novel->og_novel_category ?? ''}</a></span>
|
||||
<span class="aut">作者:{$Novel->n_author ?? ''}</span>
|
||||
<span class="fr">分类:<a href="/lists/19.html" >{$Novel->n_category ?? ''}</a></span>
|
||||
<!-- <span>字数:24.20万字+</span> -->
|
||||
<span class="fr">进度:{$Novel->og_novel_status ?? ''}</span>
|
||||
<span class="fr">进度:{$Novel->n_status ?? ''}</span>
|
||||
<span>总点击:{$Novel->og_novel_click ?? 0}</span>
|
||||
</div>
|
||||
<p class="int"> {$Novel->og_description ?? ''}</p>
|
||||
<p class="int"> {$Novel->n_description ?? ''}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2,19 +2,19 @@
|
||||
<em class="red_bg">{$key+=1}</em>
|
||||
<h3 class="name">
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name ?? ''}" >
|
||||
{$Novel.og_novel_book_name ?? ''}
|
||||
<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 class="open">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name ?? ''}" class="book_cov">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' title="{$Novel.n_name ?? ''}" class="book_cov">
|
||||
<img class="lazyload_book_cover lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.og_novel_book_name ?? ''}">
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''}">
|
||||
</a>
|
||||
<div class="book_inf">
|
||||
<span class="aut">作者:{$Novel->og_novel_author ?? ''}</span>
|
||||
<span>类别:<a href="/lists/19.html" >{$Novel->og_novel_category ?? ''}</a></span>
|
||||
<p class="int"> {$Novel->og_description ?? ''}</p>
|
||||
<span class="aut">作者:{$Novel->n_author ?? ''}</span>
|
||||
<span>类别:<a href="/lists/19.html" >{$Novel->n_category ?? ''}</a></span>
|
||||
<p class="int"> {$Novel->n_description ?? ''}</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@@ -2,17 +2,17 @@
|
||||
<em class="red_bg">1</em>
|
||||
<h3 class="name">
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name ?? ''}" >{$Novel.og_novel_book_name ?? ''}</a>
|
||||
<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 class="open">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name ?? ''}" class="book_cov">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' title="{$Novel.n_name ?? ''}" class="book_cov">
|
||||
<img class="lazyload_book_cover lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
|
||||
</a>
|
||||
<div class="book_inf">
|
||||
<span class="aut">作者:{$Novel.og_novel_author ?? ''}</span>
|
||||
<span>类别:<a href="/lists/19.html" >{$Novel.og_novel_category ?? ''}</a></span>
|
||||
<p class="int"> {$Novel.og_description ?? ''}</p>
|
||||
<span class="aut">作者:{$Novel.n_author ?? ''}</span>
|
||||
<span>类别:<a href="/lists/19.html" >{$Novel.n_category ?? ''}</a></span>
|
||||
<p class="int"> {$Novel.n_description ?? ''}</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@@ -1,20 +1,20 @@
|
||||
<li>
|
||||
<ul>
|
||||
<li class="lb">
|
||||
<?php $Novel['category_pinyin'] ?? $Novel['category_pinyin'] = 'all'?>
|
||||
<a href='{$strPcPath}{site:nflurl gender="all" category="$Novel[category_pinyin]" status="all" page="1"/}' >{$Novel->og_novel_category ?? ''}</a></li>
|
||||
<?php $Novel['n_category_pinyin'] ?? $Novel['n_category_pinyin'] = 'all'?>
|
||||
<a href='{$strPcPath}{site:nflurl gender="all" category="$Novel[n_category_pinyin]" status="all" page="1"/}' >{$Novel->n_category ?? ''}</a></li>
|
||||
<li class="sm">
|
||||
<h3>
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name ?? ''}" >
|
||||
{$Novel.og_novel_book_name ?? ''}</a>
|
||||
<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>
|
||||
</li>
|
||||
<li class="gx">
|
||||
<a href='{$strPcPath}{site:lcpurl n_id="$Novel[n_id]" n_py="$Novel[og_novel_pin_yin]" /}'
|
||||
title="{$Novel->og_novel_latest_chapter_name ?? 'null'}"
|
||||
>{$Novel->og_novel_latest_chapter_name ?? 'null'}</a></li>
|
||||
<li class="zz"><a href="{$strPcPath}{site:souurl key='$Novel[og_novel_author]' p='1'/}">{$Novel->og_novel_author ?? 'null'}</a></li>
|
||||
<li class="sj">{$Novel->og_novel_update_time ?? 'null'}</li>
|
||||
<a href='{$strPcPath}{site:lcpurl n_id="$Novel[n_id]" n_py="$Novel[n_name_pinyin]" /}'
|
||||
title="{$Novel->n_latest_chapter_name ?? 'null'}"
|
||||
>{$Novel->n_latest_chapter_name ?? 'null'}</a></li>
|
||||
<li class="zz"><a href="{$strPcPath}{site:souurl key='$Novel[n_author]' p='1'/}">{$Novel->n_author ?? 'null'}</a></li>
|
||||
<li class="sj">{$Novel->n_update_time ?? 'null'}</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -1,15 +1,15 @@
|
||||
<li>
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id ?? 1" n_py="$Novel->og_novel_pin_yin"/}' class="book_cov" title="{$Novel->og_novel_book_name ?? ''}">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id ?? 1" n_py="$Novel->n_name_pinyin"/}' class="book_cov" title="{$Novel->n_name ?? ''}">
|
||||
<img class="lazyload_book_cover lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel->og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}" alt="{$Novel->n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
|
||||
</a>
|
||||
<div class="book_inf">
|
||||
<h3><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel->og_novel_book_name ?? ''}" >{$Novel->og_novel_book_name ?? ''}</a></h3>
|
||||
<h3><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>
|
||||
<p>
|
||||
<span>作者:<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel->og_novel_author ?? ''}">{$Novel->og_novel_author ?? ''}</a></span>
|
||||
<span>分类:<a href="/lists/4.html" title="{$Novel->og_novel_category ?? ''}">{$Novel->og_novel_category ?? ''}</a></span>
|
||||
<span>状态:{$Novel->og_novel_status ?? ''}</span>
|
||||
<span>作者:<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' title="{$Novel->n_author ?? ''}">{$Novel->n_author ?? ''}</a></span>
|
||||
<span>分类:<a href="/lists/4.html" title="{$Novel->n_category ?? ''}">{$Novel->n_category ?? ''}</a></span>
|
||||
<span>状态:{$Novel->n_status ?? ''}</span>
|
||||
<!-- <span>总字数:43.80万字+</span> -->
|
||||
</p>
|
||||
<p class="tags">
|
||||
@@ -18,10 +18,10 @@
|
||||
</p>
|
||||
<p><b>最近更新:</b><a href="{$strPcPath}/chapter/1-1-1.html" title="219 桃花酿" >219 桃花酿</a>
|
||||
</p>
|
||||
<p class="int"> {$Novel->og_description ?? ''}</p>
|
||||
<p class="int"> {$Novel->n_description ?? ''}</p>
|
||||
</div>
|
||||
<div class="right">
|
||||
<span>更新时间:2025-03-20 23:59</span>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' class="read_btn btn">立即阅读</a>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' class="read_btn btn">立即阅读</a>
|
||||
</div>
|
||||
</li>
|
||||
@@ -1,10 +1,10 @@
|
||||
<li>
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<h3>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' title="{$Novel.og_novel_book_name}" class="book_cov">
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}' title="{$Novel.n_name}" class="book_cov">
|
||||
<img class="lazyload_lb_nv lazyload-img"
|
||||
src="/static/img/default.jpg" data-src="{$Novel->n_cover_path ?? '/static/img/default.jpg'}"
|
||||
alt="{$Novel->og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
|
||||
alt="{$Novel->n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读">
|
||||
</a>
|
||||
</h3>
|
||||
</li>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<li data-desc=" {$Novel.og_description ?? ''}" class="on">
|
||||
<li data-desc=" {$Novel.n_description ?? ''}" class="on">
|
||||
<s class="arr"></s>
|
||||
<s class="xh">{$key}</s>
|
||||
<i>{$Novel.og_novel_book_name ?? ''}</i>
|
||||
<i>{$Novel.n_name ?? ''}</i>
|
||||
</li>
|
||||
@@ -76,19 +76,19 @@
|
||||
{volist name="arrRecommendEndNovel" id="Novel" key="key"}
|
||||
{$arrGRM[$key]|raw}
|
||||
<li>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel[n_id]" n_py="$Novel[og_novel_pin_yin]"/}'
|
||||
title="{$Novel.og_novel_book_name ?? ''}">
|
||||
<img src="{$Novel.n_cover_path ?? ''}" alt="{$Novel.og_novel_book_name ?? ''}">
|
||||
<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>
|
||||
<p>
|
||||
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>
|
||||
<span class="bookName other">{$Novel.og_novel_book_name ?? ''}</span>
|
||||
<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[og_novel_author]" p="1"/}'>
|
||||
<span class="bookStatus other">{$Novel->og_novel_author ?? ''}</span>
|
||||
<a href='{$strPcPath}{site:souurl key="$Novel[n_author]" p="1"/}'>
|
||||
<span class="bookStatus other">{$Novel->n_author ?? ''}</span>
|
||||
</a>
|
||||
<span class="bookBrief">
|
||||
{$Novel.og_description ?? ''}</span>
|
||||
{$Novel.n_description ?? ''}</span>
|
||||
</p>
|
||||
</li>
|
||||
{/volist}
|
||||
@@ -125,31 +125,31 @@
|
||||
const DomBookshelfContainer = document.getElementById('bookshelf-ul');
|
||||
DomBookshelfContainer.innerHTML = ''
|
||||
arrBookshelf.forEach(book => {
|
||||
let strNovelUrl = formatNovelUrl(book.og_novel_pin_yin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.og_novel_pin_yin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.og_novel_author, 1)
|
||||
let strNovelUrl = formatNovelUrl(book.n_name_pinyin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.n_name_pinyin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.n_author, 1)
|
||||
const bookElement = document.createElement('li');
|
||||
if (isMobile()) {
|
||||
|
||||
bookElement.innerHTML = `
|
||||
<a href="${strNovelUrl}" alt="${book.og_novel_book_name}" title="${book.og_novel_book_name}">
|
||||
<a href="${strNovelUrl}" alt="${book.n_name}" title="${book.n_name}">
|
||||
<img src="${book.n_cover_path}">
|
||||
</a>
|
||||
<p>
|
||||
<a href="${strNovelUrl}" >
|
||||
<span class="bookName">${book.og_novel_book_name}</span>
|
||||
<span class="bookName">${book.n_name}</span>
|
||||
</a>
|
||||
<span class="bookStatus">
|
||||
<b class="authorSt"><em>${book.og_novel_status}</em>
|
||||
<b class="authorSt"><em>${book.n_status}</em>
|
||||
<a href='${strSearchUrl}'>
|
||||
<em class="none">${book.og_novel_author}</em>
|
||||
<em class="none">${book.n_author}</em>
|
||||
</a>
|
||||
</b>
|
||||
<b class="authorSt chapterSt">
|
||||
<a href="${strNovelChapterUrl}" >
|
||||
<em class="ct">${book.c_name}</em>
|
||||
</a>
|
||||
<em class="time">${book.og_novel_update_time}</em></b>
|
||||
<em class="time">${book.n_update_time}</em></b>
|
||||
</span>
|
||||
<a href="${strNovelChapterUrl}" >
|
||||
<i class="goon">阅读</i>
|
||||
@@ -158,24 +158,24 @@
|
||||
`;
|
||||
} else {
|
||||
bookElement.innerHTML = `
|
||||
<a href="${strPcPath}${strNovelUrl}" alt="${book.og_novel_book_name}" title="${book.og_novel_book_name}">
|
||||
<a href="${strPcPath}${strNovelUrl}" alt="${book.n_name}" title="${book.n_name}">
|
||||
<img src="${book.n_cover_path}">
|
||||
</a>
|
||||
<p>
|
||||
<a href="${strPcPath}${strNovelUrl}" >
|
||||
<span class="bookName">${book.og_novel_book_name}</span>
|
||||
<span class="bookName">${book.n_name}</span>
|
||||
</a>
|
||||
<span class="bookStatus">
|
||||
<b class="authorSt"><em>${book.og_novel_status}</em>
|
||||
<b class="authorSt"><em>${book.n_status}</em>
|
||||
<a href='${strPcPath}${strSearchUrl}'>
|
||||
<em class="none">${book.og_novel_author}</em>
|
||||
<em class="none">${book.n_author}</em>
|
||||
</a>
|
||||
</b>
|
||||
<b class="authorSt chapterSt">
|
||||
<a href="${strPcPath}${strNovelChapterUrl}" >
|
||||
<em class="ct">${book.c_name}</em>
|
||||
</a>
|
||||
<em class="time">${book.og_novel_update_time}</em></b>
|
||||
<em class="time">${book.n_update_time}</em></b>
|
||||
</span>
|
||||
<a href="${strPcPath}${strNovelChapterUrl}" >
|
||||
<i class="goon">阅读</i>
|
||||
@@ -203,30 +203,30 @@
|
||||
const DomBookshelfContainer = document.getElementById('history-ul');
|
||||
DomBookshelfContainer.innerHTML = ''
|
||||
arrBookshelf.forEach(book => {
|
||||
let strNovelUrl = formatNovelUrl(book.og_novel_pin_yin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.og_novel_pin_yin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.og_novel_author, 1)
|
||||
let strNovelUrl = formatNovelUrl(book.n_name_pinyin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.n_name_pinyin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.n_author, 1)
|
||||
const bookElement = document.createElement('li');
|
||||
if (isMobile()) {
|
||||
bookElement.innerHTML = `
|
||||
<a href="${strNovelUrl}" alt="${book.og_novel_book_name}" title="${book.og_novel_book_name}">
|
||||
<a href="${strNovelUrl}" alt="${book.n_name}" title="${book.n_name}">
|
||||
<img src="${book.n_cover_path}">
|
||||
</a>
|
||||
<p>
|
||||
<a href="${strNovelUrl}" >
|
||||
<span class="bookName">${book.og_novel_book_name}</span>
|
||||
<span class="bookName">${book.n_name}</span>
|
||||
</a>
|
||||
<span class="bookStatus">
|
||||
<b class="authorSt"><em>${book.og_novel_status}</em>
|
||||
<b class="authorSt"><em>${book.n_status}</em>
|
||||
<a href='${strSearchUrl}'>
|
||||
<em class="none">${book.og_novel_author}</em>
|
||||
<em class="none">${book.n_author}</em>
|
||||
</a>
|
||||
</b>
|
||||
<b class="authorSt chapterSt">
|
||||
<a href="${strNovelChapterUrl}" >
|
||||
<em class="ct">${book.c_name}</em>
|
||||
</a>
|
||||
<em class="time">${book.og_novel_update_time}</em></b>
|
||||
<em class="time">${book.n_update_time}</em></b>
|
||||
</span>
|
||||
<a href="${strNovelChapterUrl}" >
|
||||
<i class="goon">阅读</i>
|
||||
@@ -235,24 +235,24 @@
|
||||
`;
|
||||
} else {
|
||||
bookElement.innerHTML = `
|
||||
<a href="${strPcPath}${strNovelUrl}" alt="${book.og_novel_book_name}" title="${book.og_novel_book_name}">
|
||||
<a href="${strPcPath}${strNovelUrl}" alt="${book.n_name}" title="${book.n_name}">
|
||||
<img src="${book.n_cover_path}">
|
||||
</a>
|
||||
<p>
|
||||
<a href="${strPcPath}${strNovelUrl}" >
|
||||
<span class="bookName">${book.og_novel_book_name}</span>
|
||||
<span class="bookName">${book.n_name}</span>
|
||||
</a>
|
||||
<span class="bookStatus">
|
||||
<b class="authorSt"><em>${book.og_novel_status}</em>
|
||||
<b class="authorSt"><em>${book.n_status}</em>
|
||||
<a href='${strSearchUrl}'>
|
||||
<em class="none">${book.og_novel_author}</em>
|
||||
<em class="none">${book.n_author}</em>
|
||||
</a>
|
||||
</b>
|
||||
<b class="authorSt chapterSt">
|
||||
<a href="${strPcPath}${strNovelChapterUrl}" >
|
||||
<em class="ct">${book.c_name}</em>
|
||||
</a>
|
||||
<em class="time">${book.og_novel_update_time}</em></b>
|
||||
<em class="time">${book.n_update_time}</em></b>
|
||||
</span>
|
||||
<a href="${strPcPath}${strNovelChapterUrl}" >
|
||||
<i class="goon">阅读</i>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<li class="s2">
|
||||
<h5 class="tit">
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>我真是一条龙</a>
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>我真是一条龙</a>
|
||||
</h5> <i class="num"><em>{$key+=1}</em></i>
|
||||
</li>
|
||||
@@ -1,18 +1,18 @@
|
||||
<li class="s1">
|
||||
<img class="pic lazy lazyload-img" data-encrypted="false"
|
||||
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}"
|
||||
alt="{$Novel.og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读" />
|
||||
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读" />
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<h3>
|
||||
<a class="tit" href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel.og_novel_book_name ?? ''}</a>
|
||||
<a class="tit" href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name ?? ''}</a>
|
||||
</h3>
|
||||
<p class="intro">{$Novel.og_description ?? ''}</p>
|
||||
<p class="intro">{$Novel.n_description ?? ''}</p>
|
||||
<p class="info">
|
||||
<span>
|
||||
<aria>作者:</aria>{$Novel.og_novel_author ?? ''}
|
||||
<aria>作者:</aria>{$Novel.n_author ?? ''}
|
||||
</span>
|
||||
<em class="type">{$Novel->og_novel_category ?? ''}</em>
|
||||
<em class='{eq name="$Novel->og_novel_status ?? null " value="连载中"}serial{else}finish {/eq}'>{$Novel->og_novel_status ?? ''}</em>
|
||||
<em class="type">{$Novel->n_category ?? ''}</em>
|
||||
<em class='{eq name="$Novel->n_status ?? null " value="连载中"}serial{else}finish {/eq}'>{$Novel->n_status ?? ''}</em>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<li class="s2">
|
||||
<h5 class="tit">
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel.og_novel_book_name ?? ''}</a>
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>{$Novel.n_name ?? ''}</a>
|
||||
</h5> <i class="num"><em>{$key}</em></i>
|
||||
</li>
|
||||
@@ -1,12 +1,12 @@
|
||||
<li>
|
||||
{$arrGRM[$key+[start]]|raw}
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>
|
||||
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}'>
|
||||
<img class="lazy lazyload-img" data-encrypted="false" src="/static/img/default.jpg"
|
||||
data-src="{$Novel.n_cover_path ?? ''}"
|
||||
alt="{$Novel.og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读" />
|
||||
<h3>{$Novel.og_novel_book_name ?? ''}</h3>
|
||||
alt="{$Novel.n_name ?? ''} - {$Novel.n_category ?? ''}最新章节在线免费阅读" />
|
||||
<h3>{$Novel.n_name ?? ''}</h3>
|
||||
<em>
|
||||
<aria>作者:</aria>{$Novel.og_novel_author ?? ''}
|
||||
<aria>作者:</aria>{$Novel.n_author ?? ''}
|
||||
</em>
|
||||
</a>
|
||||
</li>
|
||||
@@ -139,7 +139,7 @@ class CategoryModel extends MongoModel
|
||||
* @param string $strZh
|
||||
* @return string
|
||||
*/
|
||||
static public function getPinYinByZh(string $strZh)
|
||||
static public function getPinYin(string $strZh)
|
||||
{
|
||||
$intKey = array_search($strZh, self::$arrCategory);
|
||||
return self::$arrCategoryPinYin[$intKey];
|
||||
@@ -151,7 +151,7 @@ class CategoryModel extends MongoModel
|
||||
* @param string $strName
|
||||
* @return string
|
||||
*/
|
||||
static public function checkSex(string $strName): string
|
||||
static public function getSexEn(string $strName): string
|
||||
{
|
||||
return in_array($strName, self::$arrMan) ? 'man' : 'women';
|
||||
}
|
||||
@@ -162,7 +162,7 @@ class CategoryModel extends MongoModel
|
||||
* @param string $strName
|
||||
* @return string
|
||||
*/
|
||||
static public function checkSexZh(string $strName): string
|
||||
static public function getSexZh(string $strName): string
|
||||
{
|
||||
return in_array($strName, self::$arrMan) ? '男生' : '女生';
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ class ChapterModel extends MongoModel
|
||||
'_id' => 0,
|
||||
'c_source_id' => 0,
|
||||
'c_site_code' => 0,
|
||||
'c_site_uuid' => 0,
|
||||
'c_source_uuid' => 0,
|
||||
|
||||
],
|
||||
];
|
||||
@@ -120,12 +120,18 @@ class ChapterModel extends MongoModel
|
||||
$arrChapter = $this->getOne($arrFilter, $arrOptions);
|
||||
|
||||
if (!empty($arrChapter)) {
|
||||
applyToKeys($arrChapter, ['created_at', 'updated_at'], 'formatMongoDate');
|
||||
try {
|
||||
applyToKeys($arrChapter, ['created_at', 'updated_at'], 'formatMongoDate');
|
||||
} catch (\Exception $e) {
|
||||
var_dump($arrChapter);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
|
||||
if ($boolReadContent) {
|
||||
$arrChapter['content'] = StorageCore::getInstance()->read($arrChapter['c_content_path']);
|
||||
$arrChapter['c_content'] = StorageCore::getInstance()->read($arrChapter['c_content_path']);
|
||||
} else {
|
||||
$arrChapter['content'] = '';
|
||||
$arrChapter['c_content'] = '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,9 +200,9 @@ class ChapterModel extends MongoModel
|
||||
|
||||
foreach ($arrResult as &$arrItem) {
|
||||
applyToKeys($arrItem, ['created_at', 'updated_at'], 'formatMongoDate');
|
||||
$arrItem['content'] = '';
|
||||
$arrItem['c_content'] = '';
|
||||
if ($boolReadContent) {
|
||||
$arrItem['content'] = StorageCore::getInstance()->read($arrItem['c_content_path']);
|
||||
$arrItem['c_content'] = StorageCore::getInstance()->read($arrItem['c_content_path']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ class NovelClicksModel extends MongoModel
|
||||
],
|
||||
[
|
||||
'$inc' => ['nc_clicks' => 1],
|
||||
'$set' => ['n_category' => $Novel->og_novel_category]
|
||||
'$set' => ['n_category' => $Novel->n_category]
|
||||
],
|
||||
[
|
||||
'upsert' => true
|
||||
|
||||
@@ -44,7 +44,7 @@ class NovelModel extends MongoModel
|
||||
'projection' => [
|
||||
'_id' => 0,
|
||||
'n_site_code' => 0,
|
||||
'n_site_uuid' => 0,
|
||||
'n_source_uuid' => 0,
|
||||
'n_source_id' => 0,
|
||||
],
|
||||
];
|
||||
@@ -63,7 +63,7 @@ class NovelModel extends MongoModel
|
||||
|
||||
try {
|
||||
$arrConditions = array_map(function ($strKeyword) {
|
||||
return ['og_novel_book_name' => ['$regex' => trim($strKeyword), '$options' => 'i']];
|
||||
return ['n_name' => ['$regex' => trim($strKeyword), '$options' => 'i']];
|
||||
}, $arrKeywords);
|
||||
|
||||
$UpdateResult = $this->getCol()->updateMany(
|
||||
@@ -305,16 +305,16 @@ class NovelModel extends MongoModel
|
||||
switch ($intType) {
|
||||
case 1:
|
||||
$arrCategory = array_values(CategoryModel::getManCategory());
|
||||
$arrFilter['og_novel_category'] = ['$in' => $arrCategory];
|
||||
$arrFilter['n_category'] = ['$in' => $arrCategory];
|
||||
break;
|
||||
case 2:
|
||||
$arrCategory = array_values(CategoryModel::getWomenCategory());
|
||||
$arrFilter['og_novel_category'] = ['$in' => $arrCategory];
|
||||
$arrFilter['n_category'] = ['$in' => $arrCategory];
|
||||
break;
|
||||
}
|
||||
|
||||
if ($strStatus !== NULL) {
|
||||
$arrFilter['og_novel_status'] = $strStatus;
|
||||
$arrFilter['n_status'] = $strStatus;
|
||||
}
|
||||
return $this->findPaginatedWithCache($arrFilter, $intPage, $intLimit, $arrSort, $strKey, $intLifeTime,);
|
||||
}
|
||||
@@ -394,11 +394,11 @@ class NovelModel extends MongoModel
|
||||
$arrFilter = [];
|
||||
|
||||
if (in_array($intType, [1, 2])) {
|
||||
$arrFilter['og_novel_category'] = ['$in' => CategoryModel::getCategoryByType($intType)];
|
||||
$arrFilter['n_category'] = ['$in' => CategoryModel::getCategoryByType($intType)];
|
||||
}
|
||||
|
||||
if ($strStatus !== NULL) {
|
||||
$arrFilter['og_novel_status'] = $strStatus;
|
||||
$arrFilter['n_status'] = $strStatus;
|
||||
}
|
||||
|
||||
return $this->findManyShuffledWithCache($arrFilter, $intCount, $arrSort, $strKey, $intLifeTime);
|
||||
@@ -434,11 +434,11 @@ class NovelModel extends MongoModel
|
||||
];
|
||||
|
||||
if ($strStatus !== NULL) {
|
||||
$arrFilter['og_novel_status'] = $strStatus;
|
||||
$arrFilter['n_status'] = $strStatus;
|
||||
}
|
||||
|
||||
if (in_array($intType, [1, 2])) {
|
||||
$arrFilter['og_novel_category'] = ['$in' => CategoryModel::getCategoryByType($intType)];
|
||||
$arrFilter['n_category'] = ['$in' => CategoryModel::getCategoryByType($intType)];
|
||||
}
|
||||
|
||||
$arrOptions = [
|
||||
|
||||
@@ -16,9 +16,9 @@ class Scheduler
|
||||
{
|
||||
protected $intSlice = 8;
|
||||
|
||||
protected $intStartNSourceId = 7377;
|
||||
protected $intStartNSourceId = 1;
|
||||
|
||||
protected $intEndNSourceId = 7377;
|
||||
protected $intEndNSourceId = 100;
|
||||
|
||||
/**
|
||||
* Undocumented variable
|
||||
@@ -102,11 +102,9 @@ class Scheduler
|
||||
|
||||
$arrCover = [];
|
||||
foreach ($arrNovelPageList as $NovelPage) {
|
||||
$arrNovel = $NovelPage->getNovelInfo();
|
||||
// $boolResult = $NovelPage->saveNovelInfo();
|
||||
|
||||
|
||||
return;
|
||||
// $arrNovel = $NovelPage->getNovelInfo();
|
||||
$boolResult = $NovelPage->saveNovelInfo();
|
||||
// return;
|
||||
|
||||
if ($boolResult == false) {
|
||||
continue;
|
||||
@@ -129,7 +127,7 @@ class Scheduler
|
||||
}
|
||||
|
||||
$arrChapterList = $NovelPage->getChapters();
|
||||
$this->fetchChapter($arrNovel['n_id'], $NovelPage->getData()['page'], $arrChapterList);
|
||||
$this->fetchChapter($NovelPage->intNId, $NovelPage->getData()['page'], $arrChapterList);
|
||||
}
|
||||
|
||||
if ($arrCover) {
|
||||
@@ -284,7 +282,7 @@ class Scheduler
|
||||
|
||||
foreach ($arrData['filter'] as $intKey => $arrChapterFilter) {
|
||||
$strUUId = sprintf('%s-chapter-%s-%s', $Site->getSiteCode(), $arrChapterFilter['c_source_id'], $arrChapterFilter['c_page']);
|
||||
$arrChapter = $ChapterModel->findOne(['c_site_uuid' => $strUUId]);
|
||||
$arrChapter = $ChapterModel->findOne(['c_source_uuid' => $strUUId]);
|
||||
|
||||
if (!empty($arrChapter) && !empty($arrChapter['content'])) {
|
||||
unset($arrData['filter'][$intKey]);
|
||||
|
||||
@@ -70,6 +70,22 @@ class ChapterPage extends BasePage
|
||||
$this->arrChapterInfo['c_page_title'] = $this->getQueryList()->find('title')->text();
|
||||
$this->arrChapterInfo['c_page_keywords'] = $this->getQueryList()->find('meta[name="keywords"]')->attr('content');
|
||||
$this->arrChapterInfo['c_page_description'] = $this->getQueryList()->find('meta[name="description"]')->attr('content');
|
||||
|
||||
$strPattern = "/lastread\.set\((.*?)\);/";
|
||||
|
||||
if (preg_match($strPattern, $this->getContent(), $arrMatches)) {
|
||||
$strMatch = $arrMatches[1]; // 提取括号内的内容
|
||||
|
||||
$arrData = array_map('trim', explode(",", $strMatch));
|
||||
|
||||
$arrData = array_map(function ($item) {
|
||||
return trim($item, "'");
|
||||
}, $arrData);
|
||||
|
||||
$this->arrChapterInfo['c_page_data'] = $arrData;
|
||||
} else {
|
||||
$this->arrChapterInfo['c_page_data'] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->arrChapterInfo;
|
||||
@@ -83,85 +99,78 @@ class ChapterPage extends BasePage
|
||||
protected $arrChapterInfo;
|
||||
|
||||
|
||||
public function filterOtherFields(&$arrChapter)
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @param integer $intNId
|
||||
* @return boolean
|
||||
*/
|
||||
public function saveChapter(int $intNId): bool
|
||||
{
|
||||
$arrFields = [
|
||||
'n_id',
|
||||
'name',
|
||||
'c_sort_num',
|
||||
'c_page',
|
||||
'c_source_id',
|
||||
'c_site_code',
|
||||
'c_site_uuid',
|
||||
'c_content_path',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
$arrPageChapter = $this->getChapterInfo();
|
||||
|
||||
if (
|
||||
empty($arrPageChapter) ||
|
||||
empty($arrPageChapter['c_page_title']) ||
|
||||
empty($arrPageChapter['c_page_data']) ||
|
||||
count($arrPageChapter['c_page_data']) < 5
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$strUUId = $this->getSite()->getSiteUUId('chapter-' . $this->arrData['c_source_id'] . '-' . $this->arrData['c_page']);
|
||||
|
||||
$arrChapter = [
|
||||
'n_id' => $intNId,
|
||||
'c_name' => $arrPageChapter['c_page_data'][3],
|
||||
'c_sort_num' => $this->arrData['c_sort_num'],
|
||||
'c_page' => $this->arrData['c_page'],
|
||||
'c_source_id' => $this->arrData['c_source_id'],
|
||||
'c_site_code' => $this->getSite()->getSiteCode(),
|
||||
'c_source_uuid' => $strUUId,
|
||||
];
|
||||
|
||||
foreach ($arrChapter as $strKey => $strVal) {
|
||||
if (!in_array($strKey, $arrFields)) {
|
||||
unset($arrChapter[$strKey]);
|
||||
}
|
||||
}
|
||||
}
|
||||
$arrExistsChapter = $this->getChapterModel()->findOne(['c_source_uuid' => $strUUId], $this->arrOptions);
|
||||
|
||||
public function saveChapter(int $intNId): array
|
||||
{
|
||||
if ($arrExistsChapter) {
|
||||
|
||||
try {
|
||||
$this->getChapterInfo();
|
||||
$arrExistsChapter = (array) $arrExistsChapter;
|
||||
|
||||
$strUUId = $this->getSite()->getSiteUUId('chapter-' . $this->arrData['c_source_id'] . '-' . $this->arrData['c_page']);
|
||||
$arrExisting = $this->getChapterModel()->findOne(['c_site_uuid' => $strUUId], $this->arrOptions);
|
||||
$arrUpdate = [
|
||||
'updated_at' => new \MongoDB\BSON\UTCDateTime(),
|
||||
];
|
||||
|
||||
if ($arrExisting) {
|
||||
$this->getChapterModel()->updateOne(
|
||||
['c_source_uuid' => $strUUId],
|
||||
['$set' => $arrUpdate],
|
||||
);
|
||||
$this->strCContentPath = $arrExistsChapter['c_content_path'];
|
||||
} else {
|
||||
|
||||
$arrExisting = (array) $arrExisting;
|
||||
$this->arrChapterInfo = array_merge($arrExisting, $this->getChapterInfo());
|
||||
$arrInsertNovel = $arrChapter;
|
||||
|
||||
$this->arrChapterInfo['updated_at'] = new \MongoDB\BSON\UTCDateTime();
|
||||
|
||||
$arrUpdate = $this->arrChapterInfo;
|
||||
|
||||
$this->filterOtherFields($arrUpdate);
|
||||
|
||||
$this->getChapterModel()->updateOne(
|
||||
['c_site_uuid' => $strUUId],
|
||||
['$set' => $arrUpdate],
|
||||
);
|
||||
} else {
|
||||
|
||||
$this->arrChapterInfo['n_id'] = $intNId;
|
||||
$this->arrChapterInfo['name'] = $this->arrData['name'];
|
||||
$this->arrChapterInfo['c_sort_num'] = $this->arrData['c_sort_num'];
|
||||
$this->arrChapterInfo['c_page'] = $this->arrData['c_page'];
|
||||
$this->arrChapterInfo['c_source_id'] = $this->arrData['c_source_id'];
|
||||
$this->arrChapterInfo['c_site_code'] = $this->getSite()->getSiteCode();
|
||||
$this->arrChapterInfo['c_site_uuid'] = $strUUId;
|
||||
$this->arrChapterInfo['c_content_path'] = '/novel/' . ($intNId % 100) . '/' . $intNId . '/' . $this->arrChapterInfo['c_sort_num'] . '_' . $this->arrChapterInfo['c_page'] . '.txt';
|
||||
$this->arrChapterInfo['created_at'] = new \MongoDB\BSON\UTCDateTime();
|
||||
$arrInsert = $this->arrChapterInfo;
|
||||
|
||||
$this->filterOtherFields($arrInsert);
|
||||
|
||||
$this->getChapterModel()->insert($arrInsert);
|
||||
$arrInsertNovel['c_content_path'] = '/novel/' . ($intNId % 100) . '/' . $intNId . '/' . $arrChapter['c_sort_num'] . '_' . $arrChapter['c_page'] . '.txt';
|
||||
$arrInsertNovel['created_at'] = new \MongoDB\BSON\UTCDateTime();
|
||||
|
||||
try {
|
||||
$this->getChapterModel()->insert($arrInsertNovel);
|
||||
$this->updateNovelHaveChapter($intNId);
|
||||
}
|
||||
|
||||
if (mb_strlen($this->strChapterContent) > 20) {
|
||||
if (!StorageCore::getInstance()->has($this->arrChapterInfo['c_content_path'])) {
|
||||
StorageCore::getInstance()->set($this->arrChapterInfo['c_content_path'], $this->strChapterContent);
|
||||
$this->strCContentPath = $arrInsertNovel['c_content_path'];
|
||||
} catch (\Exception $e) {
|
||||
if ($e->getCode() === 11000) {
|
||||
return $this->saveChapter($intNId);
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
return $this->arrChapterInfo;
|
||||
} catch (\Exception $e) {
|
||||
throw new \Exception("Upsert failed: " . $e->getMessage());
|
||||
}
|
||||
|
||||
StorageCore::getInstance()->put($this->strCContentPath, $this->strChapterContent);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public $strCContentPath;
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
@@ -179,7 +188,7 @@ class ChapterPage extends BasePage
|
||||
|
||||
if (!empty($arrLasteChapter)) {
|
||||
$arrUpdate['$set']['n_have_chapter'] = 1;
|
||||
$arrUpdate['$set']['og_novel_latest_chapter_name'] = $arrLasteChapter['name'];
|
||||
$arrUpdate['$set']['n_latest_chapter_name'] = $arrLasteChapter['c_name'];
|
||||
$this->getMongoBase()->updateOne('novel', $arrFilter, $arrUpdate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace app\task\crawler\zw\page;
|
||||
use app\model\CategoryModel;
|
||||
use app\model\CountersModel;
|
||||
use app\model\NovelModel;
|
||||
|
||||
use storage\StorageCore;
|
||||
|
||||
class NovelPage extends BasePage
|
||||
{
|
||||
@@ -71,22 +71,31 @@ class NovelPage extends BasePage
|
||||
{
|
||||
$strUUId = $this->getSite()->getSiteUUId($intNSourceId);
|
||||
|
||||
$arrExisting = $this->getNovelModel()->findOne(['n_site_uuid' => $strUUId], $this->arrOptions);
|
||||
$arrExistsNovel = $this->getNovelModel()->findOne(['n_source_uuid' => $strUUId], $this->arrOptions);
|
||||
|
||||
if ($arrExisting) {
|
||||
$arrNovelInfo = (array) $arrExisting;
|
||||
if ($arrExistsNovel) {
|
||||
$arrNovelInfo = (array) $arrExistsNovel;
|
||||
} else {
|
||||
$arrNovelInfo = [
|
||||
'og_novel_book_name' => $strName,
|
||||
'og_novel_pin_yin' => zhToPinYin($strName),
|
||||
'n_id' => CountersModel::getInstance()->getNextSequence('novel'),
|
||||
'n_name' => $strName,
|
||||
'n_name_pinyin' => zhToPinYin($strName),
|
||||
'n_site_code' => $this->getSite()->getSiteCode(),
|
||||
'n_site_uuid' => $strUUId,
|
||||
'n_source_uuid' => $strUUId,
|
||||
'n_source_id' => $intNSourceId,
|
||||
'n_level' => 1,
|
||||
'n_have_chapter' => 0,
|
||||
'n_id' => CountersModel::getInstance()->getNextSequence('novel'),
|
||||
'created_at' => new \MongoDB\BSON\UTCDateTime(),
|
||||
];
|
||||
$this->getNovelModel()->insert($arrNovelInfo);
|
||||
try {
|
||||
$this->getNovelModel()->insert($arrNovelInfo);
|
||||
} catch (\Exception $e) {
|
||||
if ($e->getCode() === 11000) {
|
||||
return $this->findOrCreateNovel($intNSourceId, $strName);
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $arrNovelInfo;
|
||||
}
|
||||
@@ -116,24 +125,8 @@ class NovelPage extends BasePage
|
||||
});
|
||||
|
||||
$this->getReletedNovel();
|
||||
|
||||
$this->arrNovelInfo['n_related_novel'] = $this->arrRelatedNovel;
|
||||
$this->arrNovelInfo['n_forge_novel'] = $this->arrForgeNovel;
|
||||
|
||||
// $this->arrNovelInfo['og_novel_pin_yin'] = zhToPinYin($this->arrNovelInfo['og_novel_book_name'] ?? '');
|
||||
|
||||
// if (!empty($this->arrNovelInfo['og_novel_category'])) {
|
||||
// $this->arrNovelInfo['category_pinyin'] = CategoryModel::getPinYinByZh($this->arrNovelInfo['og_novel_category']);
|
||||
// $this->arrNovelInfo['category_sex'] = CategoryModel::checkSex($this->arrNovelInfo['og_novel_category']);
|
||||
// $this->arrNovelInfo['category_sex_zh'] = CategoryModel::checkSexZh($this->arrNovelInfo['og_novel_category']);
|
||||
// }
|
||||
|
||||
// $this->arrNovelInfo['n_site_code'] = $this->getSite()->getSiteCode();
|
||||
// $this->arrNovelInfo['n_source_id'] = $this->arrData['n_source_id'];
|
||||
}
|
||||
|
||||
print_r($this->arrNovelInfo);
|
||||
|
||||
return $this->arrNovelInfo;
|
||||
}
|
||||
|
||||
@@ -145,29 +138,31 @@ class NovelPage extends BasePage
|
||||
*/
|
||||
public function generateCoverPath($strName): string
|
||||
{
|
||||
return sprintf('/img/%s/%s.jpg', date('Y/m/d', time() - 24 * 3600 * 14), $strName);
|
||||
$intTime = time() - mt_rand(1, 2 * 24 * 3600 * 360);
|
||||
|
||||
return sprintf('/img/%s/%s.jpg', date('Y/m/d/H', $intTime), $strName);
|
||||
}
|
||||
|
||||
public function filterOtherFields(&$arrNovel)
|
||||
{
|
||||
$arrFields = [
|
||||
'n_id',
|
||||
'og_novel_book_name',
|
||||
'og_novel_pin_yin',
|
||||
'og_novel_status',
|
||||
'og_novel_author',
|
||||
'og_description',
|
||||
'og_novel_category',
|
||||
'category_pinyin',
|
||||
'category_sex',
|
||||
'category_sex_zh',
|
||||
'n_name',
|
||||
'n_name_pinyin',
|
||||
'n_status',
|
||||
'n_author',
|
||||
'n_description',
|
||||
'n_category',
|
||||
'n_category_pinyin',
|
||||
'n_category_sex_en',
|
||||
'n_category_sex_zh',
|
||||
'n_cover_path',
|
||||
'og_novel_latest_chapter_name',
|
||||
'og_novel_update_time',
|
||||
'n_latest_chapter_name',
|
||||
'n_update_time',
|
||||
'n_forge_novel',
|
||||
'n_related_novel',
|
||||
'og_site_code',
|
||||
'n_site_uuid',
|
||||
'n_site_code',
|
||||
'n_source_uuid',
|
||||
'n_source_id',
|
||||
'n_have_chapter',
|
||||
'created_at',
|
||||
@@ -184,65 +179,123 @@ class NovelPage extends BasePage
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
* @return void
|
||||
* @return bool
|
||||
*/
|
||||
public function saveNovelInfo()
|
||||
public function saveNovelInfo(): bool
|
||||
{
|
||||
try {
|
||||
|
||||
$this->getNovelInfo();
|
||||
|
||||
if (!isset($this->arrNovelInfo['og_novel_book_name'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$strUUId = $this->getSite()->getSiteUUId($this->arrData['n_source_id']);
|
||||
|
||||
$arrExisting = $this->getNovelModel()->findOne(['n_site_uuid' => $strUUId], $this->arrOptions);
|
||||
|
||||
if ($arrExisting) {
|
||||
|
||||
$arrExisting = (array) $arrExisting;
|
||||
$this->arrNovelInfo = array_merge($arrExisting, $this->arrNovelInfo);
|
||||
|
||||
if (
|
||||
!isset($this->arrNovelInfo['n_cover_path']) ||
|
||||
empty($this->arrNovelInfo['n_cover_path']) ||
|
||||
!file_exists($this->arrNovelInfo['n_cover_path']) ||
|
||||
|
||||
(basename($this->arrNovelInfo['n_cover_path']) == '.jpg')
|
||||
) {
|
||||
$this->arrNovelInfo['n_cover_path'] = $this->generateCoverPath($this->arrNovelInfo['og_novel_pin_yin']);
|
||||
}
|
||||
|
||||
$this->arrNovelInfo['updated_at'] = new \MongoDB\BSON\UTCDateTime();
|
||||
|
||||
$arrUpdate = $this->arrNovelInfo;
|
||||
$this->filterOtherFields($arrUpdate);
|
||||
|
||||
$this->getNovelModel()->updateOne(
|
||||
['n_site_uuid' => $strUUId],
|
||||
['$set' => $arrUpdate],
|
||||
);
|
||||
} else {
|
||||
$this->arrNovelInfo['n_site_uuid'] = $strUUId;
|
||||
$this->arrNovelInfo['n_id'] = CountersModel::getInstance()->getNextSequence('novel');
|
||||
$this->arrNovelInfo['n_level'] = 1;
|
||||
$this->arrNovelInfo['n_have_chapter'] = 0;
|
||||
$this->arrNovelInfo['n_cover_path'] = $this->generateCoverPath($this->arrNovelInfo['og_novel_pin_yin']);
|
||||
|
||||
$arrInsert = $this->arrNovelInfo;
|
||||
$this->filterOtherFields($arrInsert);
|
||||
|
||||
$this->getNovelModel()->insert($arrInsert);
|
||||
}
|
||||
return $this->arrNovelInfo;
|
||||
} catch (\Exception $e) {
|
||||
throw new \Exception("Upsert failed: " . $e->getMessage());
|
||||
$arrPageInfo = $this->getNovelInfo();
|
||||
if (
|
||||
empty($arrPageInfo) ||
|
||||
empty($arrPageInfo['og_title']) ||
|
||||
empty($arrPageInfo['og_image']) ||
|
||||
empty($arrPageInfo['og_novel_category'])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$arrNovelInfo = [
|
||||
// 'n_id'=> $arrPageInfo['xxxxx'],
|
||||
'n_name' => $arrPageInfo['og_title'],
|
||||
'n_name_pinyin' => zhToPinYin($arrPageInfo['og_title']),
|
||||
'n_status' => $arrPageInfo['og_novel_status'],
|
||||
'n_author' => $arrPageInfo['og_novel_author'],
|
||||
'n_description' => $arrPageInfo['og_description'],
|
||||
'n_category' => $arrPageInfo['og_novel_category'],
|
||||
// 'n_category_pinyin' => $arrPageInfo['xxxxx'],
|
||||
// 'n_category_sex_en' => $arrPageInfo['xxxxx'],
|
||||
// 'n_category_sex_zh' => $arrPageInfo['xxxxx'],
|
||||
// 'n_cover_path' => $arrPageInfo['xxxxx'],
|
||||
'n_latest_chapter_name' => $arrPageInfo['og_novel_latest_chapter_name'],
|
||||
'n_update_time' => $arrPageInfo['og_novel_update_time'],
|
||||
'n_forge_novel' => $this->arrForgeNovel,
|
||||
'n_related_novel' => $this->arrRelatedNovel,
|
||||
|
||||
'n_site_code' => $this->getSite()->getSiteCode(),
|
||||
'n_source_id' => $this->arrData['n_source_id'],
|
||||
'n_source_uuid' => $this->getSite()->getSiteUUId($this->arrData['n_source_id']),
|
||||
|
||||
// 'n_have_chapter' => $arrPageInfo['xxxxx'],
|
||||
// 'created_at' => $arrPageInfo['xxxxx'],
|
||||
// 'updated_at' => $arrPageInfo['xxxxx'],
|
||||
|
||||
];
|
||||
|
||||
$arrExistsNovel = $this->getNovelModel()->findOne(['n_source_uuid' => $arrNovelInfo['n_source_uuid']], $this->arrOptions);
|
||||
|
||||
if ($arrExistsNovel) {
|
||||
|
||||
$arrExistsNovel = (array) $arrExistsNovel;
|
||||
|
||||
$arrUpdate = [
|
||||
'n_latest_chapter_name' => $arrNovelInfo['n_latest_chapter_name'],
|
||||
'n_update_time' => $arrNovelInfo['n_update_time'],
|
||||
'updated_at' => new \MongoDB\BSON\UTCDateTime(),
|
||||
];
|
||||
|
||||
# 如果没有分类,说明这条数据是最初从关联shu那里采集的,需要补全全部信息
|
||||
if (empty($arrExistsNovel['n_category'])) {
|
||||
$arrUpdate = array_merge($arrUpdate, $arrNovelInfo);
|
||||
$arrUpdate['n_related_novel'] = $this->arrRelatedNovel;
|
||||
$arrUpdate['n_forge_novel'] = $this->arrForgeNovel;
|
||||
$arrUpdate['n_category_pinyin'] = CategoryModel::getPinYin($this->arrNovelInfo['og_novel_category']);
|
||||
$arrUpdate['n_category_sex_en'] = CategoryModel::getSexEn($this->arrNovelInfo['og_novel_category']);
|
||||
$arrUpdate['n_category_sex_zh'] = CategoryModel::getSexZh($this->arrNovelInfo['og_novel_category']);
|
||||
$arrUpdate['n_related_novel'] = $this->arrRelatedNovel;
|
||||
$arrUpdate['n_forge_novel'] = $this->arrForgeNovel;
|
||||
}
|
||||
|
||||
# 图片不存在的时候,需要重新生成
|
||||
if (
|
||||
!isset($arrExistsNovel['n_cover_path']) ||
|
||||
empty($arrExistsNovel['n_cover_path']) ||
|
||||
!StorageCore::getInstance()->has($arrExistsNovel['n_cover_path']) ||
|
||||
(basename($arrExistsNovel['n_cover_path']) == '.jpg')
|
||||
) {
|
||||
$arrUpdate['n_cover_path'] = $this->generateCoverPath($arrNovelInfo['n_name_pinyin']);
|
||||
$this->strCoverLocalPath = $arrUpdate['n_cover_path'];
|
||||
} else {
|
||||
$this->strCoverLocalPath = $arrExistsNovel['n_cover_path'];
|
||||
}
|
||||
|
||||
$this->getNovelModel()->updateOne(
|
||||
['n_source_uuid' => $arrNovelInfo['n_source_uuid']],
|
||||
['$set' => $arrUpdate],
|
||||
);
|
||||
$this->intNId = $arrExistsNovel['n_id'];
|
||||
} else {
|
||||
|
||||
$arrNovelInfo['n_category_pinyin'] = CategoryModel::getPinYin($this->arrNovelInfo['og_novel_category']);
|
||||
$arrNovelInfo['n_category_sex_en'] = CategoryModel::getSexEn($this->arrNovelInfo['og_novel_category']);
|
||||
$arrNovelInfo['n_category_sex_zh'] = CategoryModel::getSexZh($this->arrNovelInfo['og_novel_category']);
|
||||
$arrNovelInfo['n_id'] = CountersModel::getInstance()->getNextSequence('novel');
|
||||
$arrNovelInfo['n_level'] = 1;
|
||||
$arrNovelInfo['n_have_chapter'] = 0;
|
||||
$arrNovelInfo['n_cover_path'] = $this->generateCoverPath($arrNovelInfo['n_name_pinyin']);
|
||||
$arrNovelInfo['n_related_novel'] = $this->arrRelatedNovel;
|
||||
$arrNovelInfo['n_forge_novel'] = $this->arrForgeNovel;
|
||||
$arrNovelInfo['created_at'] = new \MongoDB\BSON\UTCDateTime();
|
||||
|
||||
try {
|
||||
$this->getNovelModel()->insert($arrNovelInfo);
|
||||
$this->intNId = $arrNovelInfo['n_id'];
|
||||
$this->strCoverLocalPath = $arrNovelInfo['n_cover_path'];
|
||||
} catch (\Exception $e) {
|
||||
if ($e->getCode() === 11000) {
|
||||
return $this->saveNovelInfo();
|
||||
} else {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public $strCoverLocalPath = '';
|
||||
|
||||
public $intNId;
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*
|
||||
@@ -250,14 +303,9 @@ class NovelPage extends BasePage
|
||||
*/
|
||||
public function getDownCoverInfo(): array
|
||||
{
|
||||
if (!key_exists('og_image', $this->arrNovelInfo)) {
|
||||
print_r($this->arrNovelInfo);
|
||||
echo $this->getContent();
|
||||
}
|
||||
|
||||
return [
|
||||
'uri' => $this->arrNovelInfo['og_image'],
|
||||
'local_path' => $this->arrNovelInfo['n_cover_path'],
|
||||
'local_path' => $this->strCoverLocalPath,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,71 @@ class Site
|
||||
$this->initClient();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
*/
|
||||
public function initClient()
|
||||
{
|
||||
$arrConfig = [
|
||||
'http_version' => '1.1', // 强制用 HTTP/1.1,已有,保持
|
||||
'base_uri' => $this->strDomain, // 基础域名,已有,保持
|
||||
'http_errors' => false, // 不抛 HTTP 错误,已有,保持
|
||||
'timeout' => 60, // 从 160 秒改为 60 秒
|
||||
'connect_timeout' => 10, // 从 30 秒改为 10 秒
|
||||
'curl' => [
|
||||
CURLOPT_TCP_KEEPALIVE => 1, // 启用 TCP Keep-Alive,已有,保持
|
||||
CURLOPT_TCP_KEEPIDLE => 120, // Keep-Alive 空闲时间
|
||||
CURLOPT_TCP_KEEPINTVL => 60, // Keep-Alive 探测间隔
|
||||
// CURLOPT_SSL_VERIFYPEER => true, // 验证 SSL,已有,保持
|
||||
],
|
||||
'headers' => [
|
||||
'User-Agent' => 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
|
||||
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
|
||||
'Accept-Language' => 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
||||
'Referer' => $this->strDomain,
|
||||
'Connection' => 'keep-alive',
|
||||
'sec-ch-ua' => '"Not/A)Brand";v="8", "Chromium";v="130", "Google Chrome";v="130"',
|
||||
'sec-ch-ua-mobile' => '?1',
|
||||
'sec-ch-ua-platform' => '"Android"',
|
||||
'sec-fetch-dest' => 'document',
|
||||
'sec-fetch-mode' => 'navigate',
|
||||
'sec-fetch-site' => 'same-origin',
|
||||
'sec-fetch-user' => '?1',
|
||||
'upgrade-insecure-requests' => '1',
|
||||
],
|
||||
'pool_size' => 10,
|
||||
'verify' => false,
|
||||
];
|
||||
|
||||
$arrProxy = config('proxy');
|
||||
if ($arrProxy['proxy_status']) {
|
||||
|
||||
$strCode = $arrProxy['proxy_code'];
|
||||
$strProxyHost = $arrProxy['proxy_host'];
|
||||
$strKey = $arrProxy['proxy_key'];
|
||||
$strSecret = $arrProxy['proxy_secret'];
|
||||
|
||||
|
||||
switch ($strCode) {
|
||||
case 'XIONGMAO':
|
||||
$intTime = time();
|
||||
$strTxt = "orderno=" . $strKey . ",secret=" . $strSecret . ",timestamp=" . $intTime;
|
||||
$strSign = strtoupper(md5($strTxt));
|
||||
$strAuth = 'sign=' . $strSign . '&orderno=' . $strKey . '×tamp=' . $intTime;
|
||||
$arrConfig['proxy'] = $strProxyHost;
|
||||
$arrConfig['headers']['Proxy-Authorization'] = $strAuth;
|
||||
break;
|
||||
case 'KUAI':
|
||||
$arrConfig['proxy'] = $strProxyHost;
|
||||
$arrConfig['curl'][CURLOPT_PROXYAUTH] = CURLAUTH_BASIC;
|
||||
$arrConfig['curl'][CURLOPT_PROXYUSERPWD] = "$strKey:$strSecret";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->Client = new Client($arrConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* Undocumented function
|
||||
|
||||
@@ -28,7 +28,7 @@ class NovelPage extends ZwNovelPage
|
||||
$this->arrRelatedNovel[] = [
|
||||
"n_id" => $arrNovelInfo["n_id"],
|
||||
"n_source_id" => $arrNovelInfo["n_source_id"],
|
||||
"og_novel_book_name" => $arrNovelInfo["og_novel_book_name"],
|
||||
"n_name" => $arrNovelInfo["n_name"],
|
||||
];
|
||||
} elseif (is_numeric(strpos($strUri, 'kan'))) {
|
||||
$intNForgeId = (int)supperExtractFilename($strUri);
|
||||
|
||||
@@ -39,7 +39,7 @@ class NovelPage extends ZwNovelPage
|
||||
$this->arrRelatedNovel[] = [
|
||||
"n_id" => $arrNovelInfo["n_id"],
|
||||
"n_source_id" => $arrNovelInfo["n_source_id"],
|
||||
"og_novel_book_name" => $arrNovelInfo["og_novel_book_name"],
|
||||
"n_name" => $arrNovelInfo["n_name"],
|
||||
];
|
||||
}
|
||||
});
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
"aws/aws-sdk-php": "^3.337",
|
||||
"league/flysystem": "^1.1",
|
||||
"league/flysystem-aws-s3-v3": "^1.0",
|
||||
"mongodb/mongodb": "^1.21",
|
||||
"topthink/think-throttle": "^2.0",
|
||||
"phpoffice/phpspreadsheet": "^4.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"topthink/think-dumper": "^1.0",
|
||||
"topthink/think-trace": "^1.0"
|
||||
"topthink/think-trace": "^1.0",
|
||||
"mongodb/mongodb": "^1.21"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
||||
154
code/composer.lock
generated
154
code/composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "feae02549eadbd38bfb677ca95107ab0",
|
||||
"content-hash": "b478b1d55a2646f40e59782fcccfd100",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aws/aws-crt-php",
|
||||
@@ -1231,82 +1231,6 @@
|
||||
},
|
||||
"time": "2022-12-02T22:17:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mongodb/mongodb",
|
||||
"version": "1.21.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mongodb/mongo-php-library.git",
|
||||
"reference": "37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a",
|
||||
"reference": "37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-runtime-api": "^2.0",
|
||||
"ext-mongodb": "^1.21.0",
|
||||
"php": "^8.1",
|
||||
"psr/log": "^1.1.4|^2|^3"
|
||||
},
|
||||
"replace": {
|
||||
"mongodb/builder": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^12.0",
|
||||
"phpunit/phpunit": "^10.5.35",
|
||||
"rector/rector": "^1.2",
|
||||
"squizlabs/php_codesniffer": "^3.7",
|
||||
"vimeo/psalm": "6.5.*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"MongoDB\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Andreas Braun",
|
||||
"email": "andreas.braun@mongodb.com"
|
||||
},
|
||||
{
|
||||
"name": "Jeremy Mikola",
|
||||
"email": "jmikola@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jérôme Tamarelle",
|
||||
"email": "jerome.tamarelle@mongodb.com"
|
||||
}
|
||||
],
|
||||
"description": "MongoDB driver library",
|
||||
"homepage": "https://jira.mongodb.org/browse/PHPLIB",
|
||||
"keywords": [
|
||||
"database",
|
||||
"driver",
|
||||
"mongodb",
|
||||
"persistence"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/mongodb/mongo-php-library/issues",
|
||||
"source": "https://github.com/mongodb/mongo-php-library/tree/1.21.1"
|
||||
},
|
||||
"time": "2025-02-28T17:24:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mtdowling/jmespath.php",
|
||||
"version": "2.8.0",
|
||||
@@ -3000,6 +2924,82 @@
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "mongodb/mongodb",
|
||||
"version": "1.21.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mongodb/mongo-php-library.git",
|
||||
"reference": "37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a",
|
||||
"reference": "37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-runtime-api": "^2.0",
|
||||
"ext-mongodb": "^1.21.0",
|
||||
"php": "^8.1",
|
||||
"psr/log": "^1.1.4|^2|^3"
|
||||
},
|
||||
"replace": {
|
||||
"mongodb/builder": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^12.0",
|
||||
"phpunit/phpunit": "^10.5.35",
|
||||
"rector/rector": "^1.2",
|
||||
"squizlabs/php_codesniffer": "^3.7",
|
||||
"vimeo/psalm": "6.5.*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"MongoDB\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Andreas Braun",
|
||||
"email": "andreas.braun@mongodb.com"
|
||||
},
|
||||
{
|
||||
"name": "Jeremy Mikola",
|
||||
"email": "jmikola@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Jérôme Tamarelle",
|
||||
"email": "jerome.tamarelle@mongodb.com"
|
||||
}
|
||||
],
|
||||
"description": "MongoDB driver library",
|
||||
"homepage": "https://jira.mongodb.org/browse/PHPLIB",
|
||||
"keywords": [
|
||||
"database",
|
||||
"driver",
|
||||
"mongodb",
|
||||
"persistence"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/mongodb/mongo-php-library/issues",
|
||||
"source": "https://github.com/mongodb/mongo-php-library/tree/1.21.1"
|
||||
},
|
||||
"time": "2025-02-28T17:24:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "topthink/think-dumper",
|
||||
"version": "v1.0.4",
|
||||
|
||||
@@ -3,7 +3,7 @@ return [
|
||||
'collection' => 'chapter',
|
||||
'indexes' => [
|
||||
[
|
||||
'key' => ['c_site_uuid' => 1],
|
||||
'key' => ['c_source_uuid' => 1],
|
||||
'options' => ['unique' => true]
|
||||
],
|
||||
|
||||
|
||||
@@ -10,12 +10,16 @@ return [
|
||||
'key' => ['n_name' => 1],
|
||||
'options' => ['unique' => false]
|
||||
],
|
||||
[
|
||||
'key' => ['n_category' => 1],
|
||||
'options' => ['unique' => false]
|
||||
],
|
||||
[
|
||||
'key' => ['n_status' => 1],
|
||||
'options' => ['unique' => false]
|
||||
],
|
||||
[
|
||||
'key' => ['n_site_uuid' => 1],
|
||||
'key' => ['n_source_uuid' => 1],
|
||||
'options' => ['unique' => true]
|
||||
],
|
||||
[
|
||||
|
||||
@@ -76,17 +76,17 @@ class NovelManage extends Command
|
||||
foreach ($arrDocs as $arrDoc) {
|
||||
$arrUpdateData = [];
|
||||
|
||||
if (!empty($arrDoc['og_novel_category'])) {
|
||||
$arrUpdateData['category_pinyin'] = CategoryModel::getPinYinByZh($arrDoc['og_novel_category']);
|
||||
$arrUpdateData['category_sex'] = CategoryModel::checkSex($arrDoc['og_novel_category']);
|
||||
$arrUpdateData['category_sex_zh'] = CategoryModel::checkSexZh($arrDoc['og_novel_category']);
|
||||
if (!empty($arrDoc['n_category'])) {
|
||||
$arrUpdateData['n_category_pinyin'] = CategoryModel::getPinYin($arrDoc['n_category']);
|
||||
$arrUpdateData['n_category_sex_en'] = CategoryModel::getSexEn($arrDoc['n_category']);
|
||||
$arrUpdateData['n_category_sex_zh'] = CategoryModel::getSexZh($arrDoc['n_category']);
|
||||
}
|
||||
|
||||
$arrLasteChapter = $ChapterModel->getLatestChapterByNId($arrDoc['n_id'], false);
|
||||
|
||||
if (!empty($arrLasteChapter)) {
|
||||
$arrUpdateData['n_have_chapter'] = 1;
|
||||
$arrUpdateData['og_novel_latest_chapter_name'] = $arrLasteChapter['name'];
|
||||
$arrUpdateData['n_latest_chapter_name'] = $arrLasteChapter['name'];
|
||||
}
|
||||
|
||||
if (!empty($arrUpdateData)) {
|
||||
|
||||
@@ -61,6 +61,12 @@ class StorageCore
|
||||
$this->Filesystem->writeStream($strPath, $Resource);
|
||||
}
|
||||
|
||||
public function put($strKey, $strContent, array $arrConfig = [])
|
||||
{
|
||||
$strContent = zstd_compress($strContent);
|
||||
return $this->Filesystem->put($strKey, $strContent, $arrConfig);
|
||||
}
|
||||
|
||||
public function write($strKey, $strContent, array $arrConfig = [])
|
||||
{
|
||||
$strContent = zstd_compress($strContent);
|
||||
|
||||
@@ -219,9 +219,9 @@ function displayBookshelf() {
|
||||
const DomBookshelfContainer = document.getElementById('bookshelfMod-head');
|
||||
const DomBookshelfContainerH5 = document.getElementById('list');
|
||||
arrBookshelf.forEach(book => {
|
||||
let strNovelUrl = formatNovelUrl(book.og_novel_pin_yin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.og_novel_pin_yin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.og_novel_author, 1)
|
||||
let strNovelUrl = formatNovelUrl(book.n_name_pinyin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.n_name_pinyin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.n_author, 1)
|
||||
if (isMobile()) {
|
||||
const bookElement = document.createElement('li');
|
||||
bookElement.classList.add('book-shelf'); // 添加类名
|
||||
@@ -232,13 +232,13 @@ function displayBookshelf() {
|
||||
<img class="lazyload-img" src="${book.n_cover_path}" >
|
||||
</div>
|
||||
<div class="rightBlock">
|
||||
<span class="rightBlock_title">${book.og_novel_book_name}</span>
|
||||
<span class="rightBlock_name">${book.og_novel_author}</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>
|
||||
@@ -259,17 +259,17 @@ function displayBookshelf() {
|
||||
</a>
|
||||
</td>
|
||||
<td class="t2">
|
||||
<a href="${strPcPath}${strNovelUrl}" >${book.og_novel_book_name}</a>
|
||||
<a href="${strPcPath}${strNovelUrl}" >${book.n_name}</a>
|
||||
</td>
|
||||
<td class="t3">
|
||||
<a href="${strPcPath}${strNovelChapterUrl}" >${book.c_name}</a>
|
||||
</td>
|
||||
<td class="t4">
|
||||
<a href="${strPcPath}${strSearchUrl}" >${book.og_novel_author}</a>
|
||||
<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>
|
||||
@@ -348,9 +348,9 @@ function displayHistory() {
|
||||
const DomHistoryContainer = document.getElementById('bookshelfMod-head');
|
||||
const DomBookshelfContainerH5 = document.getElementById('list');
|
||||
arrHistory.forEach(book => {
|
||||
let strNovelUrl = formatNovelUrl(book.og_novel_pin_yin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.og_novel_pin_yin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.og_novel_author, 1)
|
||||
let strNovelUrl = formatNovelUrl(book.n_name_pinyin, book.n_id)
|
||||
let strNovelChapterUrl = formatNovelChapterUrl(book.n_name_pinyin, book.n_id, book.c_sort_num)
|
||||
let strSearchUrl = formatSearchUrl(book.n_author, 1)
|
||||
if (isMobile()) {
|
||||
const bookElement = document.createElement('li');
|
||||
bookElement.classList.add('book-history'); // 添加类名
|
||||
@@ -361,13 +361,13 @@ function displayHistory() {
|
||||
<img class="lazyload-img" src="${book.n_cover_path}" >
|
||||
</div>
|
||||
<div class="rightBlock">
|
||||
<span class="rightBlock_title">${book.og_novel_book_name}</span>
|
||||
<span class="rightBlock_name">${book.og_novel_author}</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>
|
||||
@@ -386,17 +386,17 @@ function displayHistory() {
|
||||
</a>
|
||||
</td>
|
||||
<td class="t2">
|
||||
<a href="${strPcPath}${strNovelUrl}" >${book.og_novel_book_name}</a>
|
||||
<a href="${strPcPath}${strNovelUrl}" >${book.n_name}</a>
|
||||
</td>
|
||||
<td class="t3">
|
||||
<a href="${strPcPath}${strNovelChapterUrl}" >${book.c_name}</a>
|
||||
</td>
|
||||
<td class="t4">
|
||||
<a href="${strPcPath}${strSearchUrl}" >${book.og_novel_author}</a>
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user