This commit is contained in:
make
2025-04-16 09:28:31 +08:00
parent 58fc0fb50b
commit d02aac7691
10 changed files with 364 additions and 405 deletions

View File

@@ -7,6 +7,7 @@ namespace app\home\controller;
use app\home\BaseController;
use app\model\ConverterMovel;
use app\model\DomainModel;
use app\model\CategoryModel;
use app\model\NovelModel;
use storage\StorageCore;
use think\facade\View;
@@ -33,16 +34,16 @@ class Index extends BaseController
switch ($strTemplatesModel) {
case 'default':
// 默认模板 630zw
// TODO default模板h5 首页数据: 获取所有分类数据,然后 每个分类 随机获取 10个小说 ,所有分类数据 放到一个数组里, 前端一个循环渲染,排版都是一样的
$arrNovelCategory = [];
// TODO default模板-h5 首页数据: 获取所有分类数据,然后 每个分类 随机获取 10个小说 ,
// 所有分类数据 放到一个数组里, 前端一个循环渲染,排版都是一样的
$arrAllCategoryNovel = [];
View::assign([
'arrNovelCategory' => $arrNovelCategory,
'arrAllCategoryNovel' => $arrAllCategoryNovel,
]);
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]);
$strKey = sprintf('%s:H5:INDEX:RANK:%s:SEX:%s', $Request->DomainModel->d_domain, 'daily', 0);
$arrDayRankNovel = $NovelModel->getRankNovelOnCache($strKey, 10, 0, 'daily');
@@ -57,57 +58,55 @@ class Index extends BaseController
$strKey = sprintf('%s:H5:INDEX:RANK:%s:%s', $Request->DomainModel->d_domain, 'total', 'finished');
$arrEndNovelRankNovel = $NovelModel->getRankNovelOnCache($strKey, 10, 0, 'total', $strStatus);
$strHostNovelDescriptionTemplate = $Request->DomainModel->getFomartSubject('INDEX_POPULAR_NOVELS');
$strNewsNovelDescriptionTemplate = $Request->DomainModel->getFomartSubject('INDEX_NEWS_NOVELS');
$strRankNovelDescriptionTemplate = $Request->DomainModel->getFomartSubject('INDEX_RANK_NOVELS');
$strHostNovelDescription = ConverterMovel::convert($strHostNovelDescriptionTemplate);
$strNewsNovelDescription = ConverterMovel::convert($strNewsNovelDescriptionTemplate);
$strRankNovelDescription = ConverterMovel::convert($strRankNovelDescriptionTemplate);
View::assign([
'arrNewsNovel' => $arrNewsNovel,
'arrDayRankNovel' => $arrDayRankNovel,
'arrWeekRankNovel' => $arrWeekRankNovel,
'arrMoonRankNovel' => $arrMoonRankNovel,
'arrEndNovelRankNovel' => $arrEndNovelRankNovel,
'strPageCode' => 'home',
'strHostNovelDescription' => $strHostNovelDescription,
'strNewsNovelDescription' => $strNewsNovelDescription,
'strRankNovelDescription' => $strRankNovelDescription,
]);
break;
}
// 推荐等级为9的连载的 随机15个小说
// 推荐等级为9的 随机15个小说
$strKey = sprintf('%s:H5:INDEX:TUIJIAN:%s', $Request->DomainModel->d_domain, 8);
$arrRecommendNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 8);
$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]);
// Title 模板
ConverterMovel::setVal([
'strIndexTitle' => $this->request->DomainModel->d_index_title,
'strIndexKeywords' => $this->request->DomainModel->d_index_keywords,
'strIndexDescription' => $this->request->DomainModel->d_index_description,
]);
// $strTitle = $Request->DomainModel->getFomartSubject(getFomartSubjectKey(__METHOD__));
$strTitleTemplate = $Request->DomainModel->getFomartSubject(getFomartSubjectKey(__METHOD__) . '@TITLE');
$strKeywordsTemplate = $Request->DomainModel->getFomartSubject(getFomartSubjectKey(__METHOD__) . '@KEYWORDS');
$strDescriptionTemplate = $Request->DomainModel->getFomartSubject(getFomartSubjectKey(__METHOD__) . '@DESCRIPTION');
$strHostNovelDescriptionTemplate = $Request->DomainModel->getFomartSubject('INDEX_POPULAR_NOVELS');
$strNewsNovelDescriptionTemplate = $Request->DomainModel->getFomartSubject('INDEX_NEWS_NOVELS');
$strRankNovelDescriptionTemplate = $Request->DomainModel->getFomartSubject('INDEX_RANK_NOVELS');
$strTitle = ConverterMovel::convert($strTitleTemplate);
$strKeywords = ConverterMovel::convert($strKeywordsTemplate);
$strDescription = ConverterMovel::convert($strDescriptionTemplate);
$strHostNovelDescription = ConverterMovel::convert($strHostNovelDescriptionTemplate);
$strNewsNovelDescription = ConverterMovel::convert($strNewsNovelDescriptionTemplate);
$strRankNovelDescription = ConverterMovel::convert($strRankNovelDescriptionTemplate);
View::assign([
'arrRecommendNovel' => $arrRecommendNovel,
// 'arrNewsNovel' => $arrNewsNovel,
// 'arrDayRankNovel' => $arrDayRankNovel,
// 'arrWeekRankNovel' => $arrWeekRankNovel,
// 'arrMoonRankNovel' => $arrMoonRankNovel,
// 'arrEndNovelRankNovel' => $arrEndNovelRankNovel,
'arrNewsNovel' => $arrNewsNovel,
'strPageCode' => 'home',
'strTitle' => $strTitle,
'strKeywords' => $strKeywords,
'strDescription' => $strDescription,
'strHostNovelDescription' => $strHostNovelDescription,
'strNewsNovelDescription' => $strNewsNovelDescription,
'strRankNovelDescription' => $strRankNovelDescription,
// 'arrNovelCategory' => $arrNovelCategory,
]);
$strView = $boolIsMobile ? '' : 'pc/index';
@@ -129,21 +128,36 @@ class Index extends BaseController
$NovelModel = NovelModel::getInstance();
// 推荐等级为9的连载的 随机15个小说
$strKey = sprintf('%s:PC:INDEX:TUIJIAN:%s', $Request->DomainModel->d_domain, 13);
$strTemplatesModel = $Request->TemplatesModel->t_code;
$arrRecommendSerializationNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 13, 0, NULL);
$intRecommendSerializationNovel = 4;
$intRecommendEndNovel = 9;
// 推荐等级为9的完结的 随机12个小说
$strKey = sprintf('%s:PC:INDEX:TUIJIAN:WANJIE:%s', $Request->DomainModel->d_domain, 12);
$arrRecommendEndNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, 12, 0, "已完结");
switch ($strTemplatesModel) {
case 'default':
// 默认模板 630zw
// TODO 1.获取所有分类数据,
// 2.然后 每个分类 随机获取 10个小说 ,
// 3.所有分类数据 放到一个数组里, 前端一个循环渲染,排版都是一样的
$arrAllCategoryNovel = [];
// TODO 最新入库小说 随机30个
$arrNewsNovel = [];
View::assign([
'arrAllCategoryNovel' => $arrAllCategoryNovel,
'arrNewsNovel' => $arrNewsNovel,
'arrCategoryAll' => CategoryModel::$arrCategoryAll,
]);
break;
case 'kuangYu':
$intRecommendSerializationNovel = 13;
$intRecommendEndNovel = 12;
// 男生频道,最新的 随机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]);
// 男生频道,周排行榜 随机10个小说
$strKey = sprintf('%s:PC:INDEX:RANK:%s:SEX:%s', $Request->DomainModel->d_domain, 'weekly', 1);
$arrBoyWeekRankNovel = $NovelModel->getRankNovelOnCache($strKey, 5, 1, 'weekly');
@@ -171,6 +185,26 @@ class Index extends BaseController
// 女生频道,总排行榜 随机10个小说
$strKey = sprintf('%s:PC:INDEX:RANK:%s:SEX:%s', $Request->DomainModel->d_domain, 'total', 2);
$arrBGirlTotalRankNovel = $NovelModel->getRankNovelOnCache($strKey, 5, 2, 'total');
View::assign([
'arrBoyNewsNovel' => $arrBoyNewsNovel,
'arrBoyWeekRankNovel' => $arrBoyWeekRankNovel,
'arrBoyMoonRankNovel' => $arrBoyMoonRankNovel,
'arrBoyTotalRankNovel' => $arrBoyTotalRankNovel,
'arrGirlNewsNovel' => $arrGirlNewsNovel,
'arrGirlWeekRankNovel' => $arrGirlWeekRankNovel,
'arrGirlMoonRankNovel' => $arrGirlMoonRankNovel,
'arrBGirlTotalRankNovel' => $arrBGirlTotalRankNovel,
]);
break;
}
// 推荐等级为9的连载的 随机15个小说
$strKey = sprintf('%s:PC:INDEX:TUIJIAN:%s', $Request->DomainModel->d_domain, $intRecommendSerializationNovel);
$arrRecommendSerializationNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, $intRecommendSerializationNovel, 0, NULL);
// 推荐等级为9的完结的 随机12个小说
$strKey = sprintf('%s:PC:INDEX:TUIJIAN:WANJIE:%s', $Request->DomainModel->d_domain, $intRecommendEndNovel);
$arrRecommendEndNovel = $NovelModel->getCommonNovelOnCache($strKey, $intTTL, $intRecommendEndNovel, 0, "已完结");
// 最近更新-随机50
$strKey = sprintf('%s:PC:INDEX:ZUIJIAN:SEX:%s:%s', $Request->DomainModel->d_domain, 0, 50);
@@ -195,14 +229,6 @@ class Index extends BaseController
'arrNewsUpdateNovel' => $arrNewsUpdateNovel,
'arrRecommendSerializationNovel' => $arrRecommendSerializationNovel,
'arrRecommendEndNovel' => $arrRecommendEndNovel,
'arrBoyNewsNovel' => $arrBoyNewsNovel,
'arrBoyWeekRankNovel' => $arrBoyWeekRankNovel,
'arrBoyMoonRankNovel' => $arrBoyMoonRankNovel,
'arrBoyTotalRankNovel' => $arrBoyTotalRankNovel,
'arrGirlNewsNovel' => $arrGirlNewsNovel,
'arrGirlWeekRankNovel' => $arrGirlWeekRankNovel,
'arrGirlMoonRankNovel' => $arrGirlMoonRankNovel,
'arrBGirlTotalRankNovel' => $arrBGirlTotalRankNovel,
'arrAdBanner' => [],
'strPageCode' => 'home',
'strTitle' => $strTitle,

View File

@@ -33,7 +33,7 @@
</div>
{foreach $arrNovelCategory as $category}
{foreach $arrAllCategoryNovel as $category}
<div class="wrap-box">
<h3 class="wrap-title">

View File

@@ -1,255 +1,138 @@
{extend name="basePc" /}
{block name='nav-active-class'}home{/block}
{block name="title"}{/block}
{block name="head-js"}{/block}
{block name="title"}{$strTitle??''}{/block}
{block name="keywords"}{$strKeywords??''}{/block}
{block name="description"}{$strDescription??''}{/block}
{block name="head-css"}
<link rel="canonical" href="https://{$DomainModel->d_domain}/">
{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content="{$strTitle??''}" />
<meta property="og:description" content="{$strDescription??''}" />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="article" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://{$DomainModel->d_domain}",
"@type": "book",
"headline": "{$strTitle??''}",
"description": "{$strDescription??''}",
"datePublished": "{:date('Y-m-d')}"
}
</script>
{/block}
{block name="main"}
<div class="content">
<div class="f1 area2 pdcon">
<div class="f1_L">
<div class="tjw">
<ul id="mod_index_lb_nv_pic">
{foreach $arrRecommendSerializationNovel as $key=>$Novel}
{if $key < 5} {include file="Pc/Public/swiperListImg" /} {/if} {/foreach} </ul>
<div class="container biqunaicc">
<div class="row">
<div class="layout layout-col2">
{foreach $arrRecommendSerializationNovel as $key=>$Novel }
<div class="item">
<div class="image">
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>
<img style="min-height:120px;" class="lazyload-img"
src="/static/img/default.jpg" data-src="{$Novel.n_cover_path ?? ''}"
alt="{$Novel.og_novel_book_name ?? ''} - {$Novel.og_novel_category ?? ''}最新章节在线免费阅读">
</a>
</div>
<ol id="btn_index_lb_nv">
{foreach $arrRecommendSerializationNovel as $key=>$Novel}
{if $key < 5} {include file="Pc/Public/swiperListText" /} {/if} {/foreach}
</ol>
<div class="book_inf" id="mod_index_lb_nv_txt">
<h3><a href="/novel/334.html" title="落魄千金美食发家日常" target="_blank" class="zdz">落魄千金美食发家日常</a></h3>
<p class="int"> 正文已完结,福利番外待续! 预收《癫疯人生有多爽你知道吗》《当家主母的咸鱼美食日常》戳专栏求收藏。 ——————— 温仲夏身为百万粉丝美食博主,一朝穿越。
好消息,穿成尚书千金。 坏消息,父兄获罪被贬到千里之外。 身边只有一个柔弱的嫂嫂和年幼的小弟。 开局就是一个交不上房租,大雪天几乎要流落街头的惨境。 温仲夏来不及哭,撸起袖子就是干。
红烧肉火锅烧烤爆米花卷饼卤肉奶茶小蛋糕…… 她就不信这些东京人都不爱吃。 不成的话,她还有麻辣烫烤鸭炸鸡酸辣粉炸酱面汤圆大馄饨…… 一不小心,落魄千金混成东京知名女掌柜。 ……
小剧场:
一众贵女听闻温仲夏当街叫卖吃食后,纷纷对她这种抛头露面的行为狠狠批判。 几天后,她们却在温仲夏的食店门口不期而遇。 “你怎么来了,不会是来买蛋挞的吧?” “难道你也是?”
“我可不是,我还要买奶油蛋糕呢。” 说好的不齿与之为伍呢? 这时店内传来吆喝:“数量有限,先到先得。” 贵女们忙不迭地往里冲。 “我先来的!” ①本文主线是美食和日常。
②背景主要参考宋朝,不严谨的地方请见谅。
本站提示各位书友要是觉得《落魄千金美食发家日常》还不错的话请不要忘记向您QQ群和微博里的朋友推荐哦</p>
<dl>
<dt>
<span>{$Novel.og_novel_author ?? ''}</span>
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel.og_novel_book_name ?? ''}</a>
</dt>
<dd style="height:90px">
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'
style="color: #555">
{$Novel.og_description ?? ''}
</a>
</dd>
</dl>
</div>
</div>
<div class="md">
{foreach $arrRecommendSerializationNovel as $key=>$Novel}
{if $key > 4 && $key < 9}
{include file="Pc/Public/hostListImg" /}
{/if}
{/foreach}
{foreach $arrRecommendSerializationNovel as $key=>$Novel}
{if $key > 8 }
{include file="Pc/Public/hostListText" /}
{/if}
{/foreach}
</div>
</div>
<!--热门推荐 开始-->
<div class="f2 area">
<div class="area_head">
<span class="log_line"></span>
<h4><s class="book"></s>完本推荐</h4>
<span class="log_line"></span>
</div>
<ul class="f2_list" mod="hot_tj">
{foreach $arrRecommendEndNovel as $key=>$Novel}
{include file="Pc/Public/endNovelList" /}
{/foreach}
</ul>
</div>
<div class="adv">
{foreach $arrAdBanner as $key=>$Novel}
{include file="Pc/Public/adBanner" /}
{/foreach}
</div>
<!--热门推荐 结束-->
<div class="f3 area">
<div class="area_head">
<span class="log_line"></span>
<h4><s class="hot"></s>男生频道</h4>
<span class="log_line"></span>
</div>
{foreach $arrBoyNewsNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyNewsOne" /}
{/if}
{/foreach}
<div class="f3_C">
<ul>
{foreach $arrBoyNewsNovel as $key=>$Novel}
{if $key >= 1}
{include file="Pc/Public/indexBoyNewsList" /}
{/if}
{/foreach}
</ul>
</div>
<div class="com_R">
<h2>
<s></s>排行榜
<span class="btn_toggle_mod_bang"
style="width: 33px; line-height: 24px; text-align: center; border-radius: 4px; margin-left: 40px; cursor: pointer; font-size: 13px; color: #fff; background: #c4c4c4;"></span><span
class="btn_toggle_mod_bang"
style="width: 33px; line-height: 24px; text-align: center; border-radius: 4px; margin-left: 5px; cursor: pointer; font-size: 13px;"></span><span
class="btn_toggle_mod_bang"
style="width: 33px; line-height: 24px; text-align: center; border-radius: 4px; margin-left: 5px; cursor: pointer; font-size: 13px;"></span>
</h2>
<div class="list_wrap">
<ol class="list" mod="rank_data_list">
{foreach $arrBoyWeekRankNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyRankOne" /}
{/if}
{if $key >= 1}
{include file="Pc/Public/indexBoyRankList" /}
{/if}
{/foreach}
</ol>
<span class="more"><a href="/pc/rank.html" target="_blank"><s></s><i>查看更多</i><s></s></a></span>
</div>
<div class="list_wrap" style="display: none;">
<ol class="list" mod="rank_data_list">
{foreach $arrBoyMoonRankNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyRankOne" /}
{/if}
{if $key >= 1}
{include file="Pc/Public/indexBoyRankList" /}
{/if}
{/foreach}
</ol>
<span class="more"><a href="/pc/rank.html" target="_blank"><s></s><i>查看更多</i><s></s></a></span>
</div>
<div class="list_wrap" style="display: none;">
<ol class="list" mod="rank_data_list">
{foreach $arrBoyTotalRankNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyRankOne" /}
{/if}
{if $key >= 1}
{include file="Pc/Public/indexBoyRankList" /}
{/if}
{/foreach}
</ol>
<span class="more"><a href="/pc/rank.html" target="_blank"><s></s><i>查看更多</i><s></s></a></span>
</div>
</div>
</div>
<div class="adv">
{foreach $arrAdBanner as $key=>$Novel}
{include file="Pc/Public/adBanner" /}
{/foreach}
</div>
<div class="f3 area">
<div class="area_head">
<span class="log_line"></span>
<h4><s class="hot"></s>女生频道</h4>
<span class="log_line"></span>
</div>
{foreach $arrGirlNewsNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyNewsOne" /}
{/if}
{/foreach}
<div class="f3_C">
<ul>
{foreach $arrGirlNewsNovel as $key=>$Novel}
{if $key >= 1}
{include file="Pc/Public/indexBoyNewsList" /}
{/if}
{/foreach}
</ul>
</div>
<div class="com_R">
<h2>
<s></s>排行榜
<span class="btn_toggle_mod_bang"
style="width: 33px; line-height: 24px; text-align: center; border-radius: 4px; margin-left: 40px; cursor: pointer; font-size: 13px; color: #fff; background: #c4c4c4;"></span><span
class="btn_toggle_mod_bang"
style="width: 33px; line-height: 24px; text-align: center; border-radius: 4px; margin-left: 5px; cursor: pointer; font-size: 13px;"></span><span
class="btn_toggle_mod_bang"
style="width: 33px; line-height: 24px; text-align: center; border-radius: 4px; margin-left: 5px; cursor: pointer; font-size: 13px;"></span>
</h2>
<div class="list_wrap">
<ol class="list" mod="rank_data_list">
{foreach $arrGirlWeekRankNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyRankOne" /}
{/if}
{if $key >= 1}
{include file="Pc/Public/indexBoyRankList" /}
{/if}
{/foreach}
</ol>
<span class="more"><a href="/pc/rank.html" target="_blank"><s></s><i>查看更多</i><s></s></a></span>
</div>
<div class="list_wrap" style="display: none;">
<ol class="list" mod="rank_data_list">
{foreach $arrGirlMoonRankNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyRankOne" /}
{/if}
{if $key >= 1}
{include file="Pc/Public/indexBoyRankList" /}
{/if}
{/foreach}
</ol>
<span class="more"><a href="/pc/rank.html" target="_blank"><s></s><i>查看更多</i><s></s></a></span>
</div>
<div class="list_wrap" style="display: none;">
<ol class="list" mod="rank_data_list">
{foreach $arrBGirlTotalRankNovel as $key=>$Novel}
{if $key == 0}
{include file="Pc/Public/indexBoyRankOne" /}
{/if}
{if $key >= 1}
{include file="Pc/Public/indexBoyRankList" /}
{/if}
{/foreach}
</ol>
<span class="more"><a href="/pc/rank.html" target="_blank"><s></s><i>查看更多</i><s></s></a></span>
</div>
</div>
</div>
<div class="adv">
{foreach $arrAdBanner as $key=>$Novel}
{include file="Pc/Public/adBanner" /}
{/foreach}
</div>
<div class="f4 area">
<div class="area_head">
<span class="log_line"></span>
<h4><s class="new"></s>作品更新</h4>
<span class="log_line"></span>
</div>
<div class="f4_L">
<div class="new_list">
<ol class="cur">
<div class="layout layout-col1">
<h2 class="layout-tit">经典推荐</h2>
<ul class="txt-list txt-list-row3">
{foreach $arrRecommendEndNovel as $key=>$Novel }
<li>
<ul class="list_h">
<li class="lb">类别</li>
<li class="sm">书名</li>
<li class="gx">最新更新章节</li>
<li class="zz">作者</li>
<li class="sj">更新时间</li>
</ul>
<span class="s1">[{$Novel->og_novel_category ?? ''}</span>
<span class="s2"><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel->og_novel_book_name}</a></span>
<span class="s5"><a href='{site:souurl key="$Novel->og_novel_author" p="1"/}'>{$Novel->og_novel_author}</a></span>
</li>
{foreach $arrNewsUpdateNovel as $key=>$Novel}
{if $key >= 1}
{include file="Pc/Public/indexNewsUpdateList" /}
{/foreach}
</ul>
</div>
</div>
<div class="row">
<div class="layout">
{foreach $arrAllCategoryNovel as $category}
<div class="tp-box">
<h2>{$category.xsfl_name}</h2> <!-- 分类标题 -->
<div class="top">
{foreach $arrNovels[$category.xsfl_source_id] as $key2 => $Novel}
{if $key2 == 0}
<div class="image">
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>
<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 ?? ''}最新章节在线免费阅读">
</a>
</div>
<dl>
<dt><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel->og_novel_book_name}</a></dt>
<dd><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}' style="color: #555">{$Novel.og_description ?? ''}</a></dd>
</dl>
{/if}
{/foreach}
</ol>
</div>
<ul>
{foreach $arrNovels[$category.xsfl_source_id] as $key2 => $Novel}
{if $key2 >= 1}
<li><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel->og_novel_book_name}</a>/<a href='{site:souurl key="$Novel->og_novel_author" p="1"/}'>{$Novel->og_novel_author}</a></li>
{/if}
{/foreach}
</ul>
</div>
{/foreach}
</div>
</div>
<div class="row">
<div class="layout layout2 layout-col1 fr">
<h2 class="layout-tit">最新入库小说</h2>
<ul class="txt-list txt-list-row3">
{foreach $arrNewsNovel as $key=>$Novel }
<li>
<span class="s1">[{$Novel->og_novel_category ?? ''}]</span>
<span class="s2"><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel->og_novel_book_name}</a></span>
<span class="s5"><a href='{site:souurl key="$Novel->og_novel_author" p="1"/}'>{$Novel->og_novel_author}</a></span>
</li>
{/foreach}
</ul>
</div>
<div class="layout layout2 layout-col2 fl">
<h2 class="layout-tit">最近更新小说列表</h2>
<ul class="txt-list txt-list-row5">
{foreach $arrNewsUpdateNovel as $key=>$Novel }
<li>
<span class="s1">[{$Novel->og_novel_category ?? ''}]</span>
<span class="s2"><a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel->og_novel_book_name}</a></span>
<span class="s5"><a href='{site:souurl key="$Novel->og_novel_author" p="1"/}'>{$Novel->og_novel_author}</a></span>
<span class="s4">{$Novel.og_novel_author ?? ''}</span>
<span class="s5">{:date('m-d')}</span>
</li>
{/foreach}
</ul>
</div>
</div>
</div>
{/block}
{block name="customize"} {/block}
{block name="customize"}
{/block}

View File

@@ -67,8 +67,8 @@
<div class="wrap-box">
<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>&nbsp;&nbsp;
{foreach $arrNewsNovel as $key=>$Novel }
<a href='{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel.og_novel_book_name}</a>&nbsp;&nbsp;
{/foreach}
<a href="/sitemap_index.xml">XML地图</a>&nbsp;&nbsp;
</div>

View File

@@ -1,77 +1,101 @@
<!DOCTYPE html>
<html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<meta name="keywords" content="狂雨小说">
<meta name="description" content="狂雨小说">
<title>狂雨小说</title>
<link rel="stylesheet" href="/template/kuangyu/home/bai_web/css/style.css" type="text/css">
<link rel="stylesheet" href="/public/layer/need/layer.css" type="text/css">
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Cache-Control" content="no-cache,must-revalidate">
<meta http-equiv="Cache-Control" content="no-siteapp">
<meta http-equiv="Cache-Control" content="no-transform">
<meta name="robots" content="index, follow" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{block name="title"}{/block}</title>
<meta name="keywords" content='{block name="keywords"}{/block}'>
<meta name="description" content='{block name="description"}{/block}'>
<meta http-equiv="mobile-agent" content="format=html5; url={$DomainModel->d_domain}">
<meta name="shenma-site-verification" content="941546c24f6fa26aab1a1c67341a9e07_1653579597">
<link rel="alternate" type="application/vnd.wap.xhtml+xml" media="handheld"
href="{$DomainModel->d_domain}">
<link rel="shortcut icon" href="/template/default/img/favicon.ico" type="image/x-icon">
<link href="/public/layer/need/layer.css" rel="stylesheet">
<link href="/template/default/pc/css/style.css" rel="stylesheet" type="text/css">
{block name="meta-other"}{/block}
{block name="head"}{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
<script>
const strPcPath = `{$strPcPath}`;
</script>
</head>
<body class="{block name='body-class'}{/block}" id="{block name='body-id'}{/block}">
<!--公共头部 开始-->
<body class="novel_home">
<div class="topbar">
<div class="topbar-con">
<div class="topbar-sethome"><a href="javascript:winSetHP();">将本站设为首页</a></div>
<div class="topbar-addfavorite"><a href="javascript:winAddFav()">收藏{$DomainModel->d_name}</a></div>
<div class="topbar-right" id="qs_login"><a href="{$strPcPath}{$strBookShelfUrlTemp}">我的书架</a>
</div>
</div>
</div>
<div class="header">
<div class="headWrap">
<h1>
<a href="/">
狂雨小说
</a>
</h1>
<h1 class="logo"><a href="{$strPcPath}"><span>{$DomainModel->d_name}</span></a></h1>
<form id="novel_search" class="search-form" method="get" action="{$strPcPath}{$strSearchIndexUrlTemp}"><input type="text"
class="input-text input-key" name="key" placeholder="输入书名/作者进行搜索"><button type="submit"
class="btn-tosearch" form="novel_search" value="submit">搜索</button></form>
</div>
<ul class="nav">
<li class=' {eq name="strPageCode" value="home"}on {/eq}'>
<a href="/pc/index.html" target="_self" title="首页">首页</a>
</li>
<li class=' {eq name="strPageCode" value="boys"}on {/eq}'>
<a href="/pc/novel-boys-channel.html" target="_self" title="男生">男生</a>
</li>
<li class=' {eq name="strPageCode" value="girls"}on {/eq}'>
<a href="/pc/novel-girls-channel.html" target="_self" title="女生">女生</a>
</li>
<li class=' {eq name="strPageCode" value="library"}on {/eq}'>
<a href="/pc/shuku.html" target="_self" title="书库">书库</a>
</li>
<li class=' {eq name="strPageCode" value="rank"}on {/eq}'>
<a href="/pc/rank.html" target="_self" title="排行">排行</a>
</li>
<li class=' {eq name="strPageCode" value="article"}on {/eq}'>
<a href="/pc/article/list.html" target="_self" title="文章">文章</a>
</li>
<!-- <li><a href="/">首 页</a></li>
<li><a href="/nindex">小说首页</a></li> -->
<li><a href="{$strPcPath}">首 页</a></li>
{foreach $arrCategoryAll as $Sexkey=>$SexCategory }
{foreach $SexCategory as $CategoryPinyin=>$CategoryName }
<li><a href='{$strPcPath}{site:nflurl gender="$Sexkey" category="$CategoryPinyin" status="all" page="1"/}'>{$CategoryName}</a></li>
{/foreach}
{/foreach}
<li><a href="{$strPcPath}{$strBookShelfUrlTemp}">阅读记录</a></li>
</ul>
{block name="main"}
{/block}
<div class="row">
<div class="layout layout3 layout-col3">
<h2 class="layout-tit">最新标签</h2>
<ul class="txt-list txt-list-row5 tag_news">
{foreach $arrNewsNovel as $key=>$Novel }
<a href='{$strPcPath}{site:nurl n_id="$Novel->n_id" n_py="$Novel->og_novel_pin_yin"/}'>{$Novel.og_novel_book_name}</a>&nbsp;&nbsp;
{/foreach}
<a href="/sitemap_index.xml">XML地图</a>
</ul>
<div class="headWrap_r">
<div class="search long" id="mod_top_search">
<div class="search_sel">
<input type="text" url="/search.html" class="search-val" value="" placeholder="我要搜.. "
maxlength="100" autocomplete="off">
</div>
<a href="" class="search_btn"><s></s></a>
</div>
<div class="login">
<span class="login_before"><a href="/pc/user.html"><s></s><i>个人中心</i></a></span>
</div>
</div>
<div class="footer" id="footer">
<div class="pc-footer">
<p>本站所有内容来源于互联网公开且无需登录即可获取的网页内容本站爬虫遵循robots协议若您的网站不希望被本站爬虫抓取可通过屏蔽novelspider字段实现。<br>本站仅对抓取到的内容由程序自动进行排版处理再展现,不涉及更改内容,不针对任何内容表述任何立场。<br>同时您可手动提交相关目标站点网址给我们(站点内容必须允许游客访问,本站爬虫不会抓取需要登录后才展现内容的站点),爬虫程序会依据负载状态自动爬取相关页面。<br>如内容有违规,请通过本站反馈邮箱提交给我们进行删除处理。
</p>
<p> 反馈邮箱:
{site:cfg code="YOU_XIANG" encode="false"/} Inc. All Rights Reserved. </p>
</div>
</div>
<!--公共头部 结束-->
<div id="shuqian"></div>
<script src="/static/001/pc/js/jquery.min.js"></script>
<script src="/assets/vendor/layer/layer.js" type="module" charset="utf-8"></script>
<script src="/static/001/pc/js/common.js"></script>
<script src="/static/001/js/index.js"></script>
{block name="main"} {/block}
{block name="customize"}
{include file="Pc/Public/footer" /}
{/block}
{block name="customize"}{/block}
<script src="/public/jquery/jquery-3.7.1.min.js"></script>
<script src="/public/layer/layer.js"></script>
<script src="/public/lazyload/jquery.lazyload.min.js"></script>
<script type="text/javascript" src="/template/kuangyu/home/bai_web/js/global.js"></script>
<script src="/template/kuangyu/public/js/common.js"></script>
{block name="footer-js"}{/block}
<!-- 全局统计 -->
{site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/}
<!-- 站点统计 -->
{$DomainModel->d_statis|raw}
</body>
</html>

View File

@@ -1,4 +1,5 @@
<div class="f3_L">
<?php $Novel['category_pinyin'] ?? $Novel['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 ?? ''}" >
@@ -11,7 +12,7 @@
<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="fr">分类:<a href='{$strPcPath}{site:nflurl gender="all" category="$Novel->category_pinyin" status="all" page="1"/}' >{$Novel->og_novel_category ?? ''}</a></span>
<!-- <span>字数24.20万字+</span> -->
<span class="fr">进度:{$Novel->og_novel_status ?? ''}</span>
<span>总点击:{$Novel->og_novel_click ?? 0}</span>

View File

@@ -1,4 +1,5 @@
<li>
<?php $Novel['category_pinyin'] ?? $Novel['category_pinyin'] = 'all'?>
<em class="red_bg">{$key+=1}</em>
<h3 class="name">
{$arrGRM[$key+[start]]|raw}
@@ -13,7 +14,7 @@
</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>
<span>类别:<a href='{$strPcPath}{site:nflurl gender="all" category="$Novel->category_pinyin" status="all" page="1"/}' >{$Novel->og_novel_category ?? ''}</a></span>
<p class="int"> {$Novel->og_description ?? ''}</p>
</div>
</div>

View File

@@ -1,4 +1,5 @@
<li class="lis_sh">
<?php $Novel['category_pinyin'] ?? $Novel['category_pinyin'] = 'all'?>
<em class="red_bg">1</em>
<h3 class="name">
{$arrGRM[$key+[start]]|raw}
@@ -11,7 +12,7 @@
</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>
<span>类别:<a href='{$strPcPath}{site:nflurl gender="all" category="$Novel[category_pinyin]" status="all" page="1"/}' >{$Novel.og_novel_category ?? ''}</a></span>
<p class="int"> {$Novel.og_description ?? ''}</p>
</div>
</div>

View File

@@ -1,27 +0,0 @@
<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 ?? ''}">
<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 ?? ''}最新章节在线免费阅读">
</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>
<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>总字数43.80万字+</span> -->
</p>
<p class="tags">
<i>标签:</i>
<i></i>
</p>
<p><b>最近更新:</b><a href="{$strPcPath}/chapter/1-1-1.html" title="219 桃花酿" >219 桃花酿</a>
</p>
<p class="int"> {$Novel->og_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>
</div>
</li>

View File

@@ -31,10 +31,60 @@
// } catch (err) { }
// })();
function formatNovelUrl(strPinYin, intNId) {
return strNovelUrlTemp
.replace('{strPinYin}', encodeURIComponent(strPinYin))
.replace('{intNId}', intNId);
}
function formatNovelChapterUrl(strPinYin, intNId, intSort,intPage=0) {
return strNovelChapterUrlTemp
.replace('{strPinYin}', encodeURIComponent(strPinYin))
.replace('{intNId}', intNId)
.replace('{intChapterPage}', intPage)
.replace('{intChapterSort}', intSort);
}
function formatSearchUrl(strKey,intPage=1) {
return strSearchUrlTemp
.replace('{strSearchKeywords}', strKey)
.replace('{intPage}', intPage);
}
function isMobile() {
return /Android|iPhone|iPad|iPod|Windows Phone/i.test(navigator.userAgent);
}
function handleRedirect() {
const { pathname, origin, search } = window.location;
// 规范化路径名,将多个斜杠替换为单个斜杠
const normalizedPath = pathname.replace(/\/+/g, '/');
const strCurrentPath = normalizedPath || '/index.html';
// 构建URL确保斜杠正确
const buildUrl = (path) => {
// 确保路径以单个斜杠开头,并移除多余斜杠
const cleanPath = `/${path.replace(/\/+/g, '/')}`.replace(/^\/+/, '/');
return `${origin}${cleanPath}${search}`;
};
if (isMobile()) {
// 移动端逻辑将PC路径重定向到移动端路径
if (strCurrentPath.startsWith(strPcPath)) {
const newPath = strCurrentPath.replace(strPcPath, '') || '/';
window.location.href = buildUrl(newPath);
}
} else {
// PC端逻辑将非PC路径重定向到PC路径
if (!strCurrentPath.startsWith(strPcPath)) {
// 确保 PC 首页以斜杠结尾
const newPath = strCurrentPath === '/' ? `${strPcPath}/` : `${strPcPath}${strCurrentPath}`;
window.location.href = buildUrl(newPath);
}
}
}
handleRedirect();
function layerPopup(strContent, intTime) {
layer.open({