diff --git a/code/app/home/config/router.php b/code/app/home/config/router.php index 327cc9f..aec7356 100644 --- a/code/app/home/config/router.php +++ b/code/app/home/config/router.php @@ -58,6 +58,14 @@ Route::get('/sitemap-chapters-:page', function (\think\Request $Request, SiteCon })->ext('xml'); +/** + * 搜索首页 + */ +Route::get('/searchhome/0', function (\think\Request $Request, SiteContext $SiteContext) { + return view('novel/getSearchIndex.html'); +})->ext('html'); + + /** * 路由配置文件 */ diff --git a/code/app/home/view/shikong/baseH5.html b/code/app/home/view/shikong/baseH5.html index cb060d7..1273c85 100644 --- a/code/app/home/view/shikong/baseH5.html +++ b/code/app/home/view/shikong/baseH5.html @@ -51,7 +51,7 @@ - +
+{/block} + +{block name='nav-active-class'}searchhome{/block} +{block name="body-class"}novel_so novel_search_page{/block} + +{block name="logo-html"} +

+ {$DomainModel->d_name} +

+{/block} + +{block name="head-css"} + +{/block} + +{block name="subcategory"}{/block} +{block name="main"} + +
+
+
+
+
+
+
+
+ +
+ +
+
+
{site:wz wz="搜索" /}
+
+ +
+
+ + + {novel:list count="8" sort_type="tuijian" d_key="key" d_val="Novel" cache_life="86400"} + +
+
+ {$Novel.n_name}
+
+ {$Novel.n_author} +
+
+ + {/novel:list} + + +
+
+
+
+
+
+ + + + + +{/block} \ No newline at end of file diff --git a/code/app/home/view/shikong/novel/getSearchNovel.html b/code/app/home/view/shikong/novel/getSearchNovel.html index 1c6d512..34ee2eb 100644 --- a/code/app/home/view/shikong/novel/getSearchNovel.html +++ b/code/app/home/view/shikong/novel/getSearchNovel.html @@ -1,11 +1,26 @@ {extend name="baseH5" /} + +{block name="get-data"} +{novel:pagerexp page="$Request.get.page" limit="30" +key="$Request.get.keyword" +d_key="d_key" +d_val="Novel" +p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /} + +{site:grm page_code="h5_novel_search" diff="$Request.url" num="30" g_key="arrGrm" /} + +{/block} + + + + {block name="title"}{site:replace code="NOVEL@GETSEARCHNOVEL@TITLE"}{/block} {block name="keywords"}{site:replace code="NOVEL@GETSEARCHNOVEL@KEYWORDS"}{/block} {block name="description"}{site:replace code="NOVEL@GETSEARCHNOVEL@DESCRIPTION"}{/block} {block name="head"} - + @@ -37,7 +52,7 @@ {/block} -{block name='nav-active-class'}home{/block} + {block name="body-class"}novel_so novel_search_page{/block} {block name="logo-html"} @@ -46,69 +61,62 @@ {/block} +{block name="head-css"} + +{/block} + + +{block name="subcategory"} +“ {$Request.get.keyword} ” 的搜索结果 共{$resData.p_data.total} +{/block} + +{block name='nav-active-class'}search{/block} + {block name="main"} -{novel:pagerexp page="$Request.get.page" limit="30" -key="$Request.get.keyword" -d_key="d_key" -d_val="Novel" -p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /} -{site:grm page_code="h5_novel_search" diff="$Request.url" num="30" g_key="arrGrm" /} -
-

{$Request.get.keyword}搜索结果 - {$DomainModel->d_name} 第{$resData.p_data.page}页

- {if $resData.p_data.total < 1}

没有相关数据

- {else} - -
+
+

{$Request.get.keyword}搜索结果 - {$DomainModel->d_name} 第{$resData.p_data.page}页

+
+
{foreach $resData.data as $key=>$Novel} -
-
- {$arrGrm[$key]|raw} - - {$Novel['n_name'] ?? ''}小说封面 - {$Novel.n_author}最新章节 - -
-
-

{$Novel.n_name}

-

作者:{$Novel.n_author}

-

{$Novel.n_description}

-
-
+ {include file="public/novel-list" /} {/foreach} + +
- {/if} +
+
    + {volist name="resData.p_data.pager" id="vo" key="k"} + {switch $vo.label} + {case value="上一页"} + {if $resData.p_data.page == 1} +
  • «
  • + {else} +
  • «
  • + {/if} + {/case} + {case value="下一页"} + {if $resData.p_data.page >= $resData.p_data.total} +
  • »
  • + {else} +
  • »
  • + {/if} + {/case} + {default /} + {if preg_match('/^\d+$/', $vo.label)} +
  • {$vo.label}
  • + {/if} + {/switch} + {/volist} +
+
+
-
- {volist name="$resData.p_data.pager" id="vo" key="k"} - {switch $vo.label} - {case value="上一页"} - {if $resData.p_data.page == 1} - « - {else} - « - {/if} - {/case} - {case value="下一页"} - {if $resData.p_data.page >= $resData.p_data.total} - » - {else} - » - {/if} - {/case} - {default /} - {if preg_match('/^\d+$/', $vo.label)} - {$vo.label} - {/if} - {/switch} - {/volist} -
{/block} diff --git a/code/app/home/view/shikong/user/getBookShelf.html b/code/app/home/view/shikong/user/getBookShelf.html index 55a721a..d90b7ac 100644 --- a/code/app/home/view/shikong/user/getBookShelf.html +++ b/code/app/home/view/shikong/user/getBookShelf.html @@ -17,16 +17,27 @@ {/block} {block name="main"} +
+
-
-

我的书架

-
+
+
+
+
我的书架
+
+
+
+
+
+ +
+
+
+
+
- - - {/block} {block name="customize"} diff --git a/code/app/services/SiteContext.php b/code/app/services/SiteContext.php index 010514e..9162e48 100644 --- a/code/app/services/SiteContext.php +++ b/code/app/services/SiteContext.php @@ -312,10 +312,14 @@ class SiteContext { $strOrder = $this->Request->param('strOrder'); $strStatus = $this->Request->param('strStatus'); + $strNovelOrder = ''; + if(!empty($strOrder) && $strOrder != 'all'){ + $strNovelOrder = StaticConfig::$arrNovelRankSortType[$strOrder]; + } ConverterMovel::setVal([ 'intPage' => 1, - 'strNovelOrder' => StaticConfig::$arrNovelRankSortType[$strOrder], - 'strNovelStatus' => StaticConfig::$arrNovelStatus[$strStatus], + 'strNovelOrder' => $strNovelOrder, + 'strNovelStatus' => empty($strStatus) ? "" : StaticConfig::$arrNovelStatus[$strStatus], ]); } } diff --git a/code/extend/template/taglib/Novel.php b/code/extend/template/taglib/Novel.php index 3f5aea0..3db2203 100644 --- a/code/extend/template/taglib/Novel.php +++ b/code/extend/template/taglib/Novel.php @@ -12,6 +12,7 @@ class Novel extends TagLib 'pagerexp' => ['attr' => 'page,limit,n_category,sort_type,n_status,n_sex,key,diff_key,cache_life,d_key,d_val,p_val,func,export_name', 'close' => 0], 'info' => ['attr' => 'n_id,n_forge_id,n_key', 'close' => 0], 'sort' => ['attr' => 'd_key,d_val'], + 'ranksort' => ['attr' => 'd_key,d_val'], 'status' => ['attr' => 'd_key,d_val'], 'sex' => ['attr' => 'd_key,d_val'], 'category' => ['attr' => 'd_key,d_val,n_sex'], @@ -281,7 +282,39 @@ EOT; $strParse = <<arrSortType; +\$arrSort = app(\\app\\services\\StaticConfig::class)::\$arrNovelSortType; + +if (!empty(\$arrSort) && is_array(\$arrSort)): + +?> +EOT; + $strParse .= << \${$d_val}): ?> +EOT; + $strParse .= $content; + $strParse .= << + +EOT; + return $strParse; + } + + /** + * 获取排序筛选参数 + * + * @param array $tag + * @param string $content + * @return string + */ + public function tagRankSort($tag, $content) + { + + $d_key = $tag['d_key'] ?? 'd_key'; + $d_val = $tag['d_val'] ?? 'd_val'; + + $strParse = <<arrStatus; +\$arrStatus = app(\\app\\services\\StaticConfig::class)::\$arrNovelStatus; if (!empty(\$arrStatus) && is_array(\$arrStatus)): @@ -346,7 +379,7 @@ EOT; $strParse = <<arrSex; +\$arrSex = app(\\app\\services\\StaticConfig::class)::\$arrNovelSex; if (!empty(\$arrSex) && is_array(\$arrSex)): diff --git a/code/public/template/shikong/css/search.css b/code/public/template/shikong/css/search.css index 208a4dd..4ab77ff 100644 --- a/code/public/template/shikong/css/search.css +++ b/code/public/template/shikong/css/search.css @@ -10,6 +10,7 @@ body { .search-home { padding: 10px 20px 20px; color: #fff; + background: #161313; } .search-form { @@ -217,4 +218,9 @@ body { } /* .s-footer-tel , .footer-box{ color:#fff -} */ \ No newline at end of file +} */ + +.novel_search_page .title-h1{ + text-align: center; + font-size: 0.2rem; +} \ No newline at end of file diff --git a/doc/TemplateTag.md b/doc/TemplateTag.md index ee73851..f5b0170 100644 --- a/doc/TemplateTag.md +++ b/doc/TemplateTag.md @@ -227,8 +227,19 @@ resData = [
  • 键: {$key} - 值: {$val}
  • {/novel:sort} +# 08、获取小说排行榜排序筛选条件 +# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): + $d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称 + $d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称 +# 样例 +{novel:ranksort d_key="key" d_val="val"} +
  • 键: {$key} - 值: {$val}
  • +{/novel:ranksort} -# 08、获取小说分类筛选条件 + + + +# 09、获取小说分类筛选条件 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称 $d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称 @@ -238,7 +249,7 @@ resData = [ {/novel:category} -# 09、 获取指定小说多个章节数据并且遍历 +# 10、 获取指定小说多个章节数据并且遍历 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $count ?? '10'; # 查询条数 $n_id ; # 小说ID @@ -257,7 +268,7 @@ resData = [ {/chapter:list} -# 10、 获取小说章节详情数据 +# 11、 获取小说章节详情数据 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $n_id ; # 传入的小说ID $c_sort_num ; # 传入的章节索引 @@ -268,7 +279,7 @@ resData = [ {$arrChapter01.c_name} -# 11-1、 获取指定小说章节分页数据并且遍历 +# 12-1、 获取指定小说章节分页数据并且遍历 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $page ?? '1'; # 页码 $limit ?? '10'; # 查询条数 @@ -291,7 +302,7 @@ resData = [ {/chapter:pager} -# 11-2、 获取分页小说章节数据不遍历 +# 12-2、 获取分页小说章节数据不遍历 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $page ?? '1'; # 页码 $limit ?? '10'; # 查询条数 @@ -321,7 +332,7 @@ resData = [ ] {php}var_dump($resData['p_data']);{/php} -# 12、 获取干扰码 +# 13、 获取干扰码 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $page_code ?? ""; # 页面编码 @@ -332,7 +343,7 @@ resData = [ {php}var_dump($arrGrm);{/php} -# 13、 获取指定类型小说排行榜并且遍历 +# 14、 获取指定类型小说排行榜并且遍历 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $count ?? '10'; # 查询条数 $sort_type ?? "daily"; # 排序方式: @@ -361,7 +372,7 @@ resData = [ {/novel:ranklist} -# 14、 获取随机伪造小说列表并且遍历 +# 15、 获取随机伪造小说列表并且遍历 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $count ?? '10'; # 查询条数 $diff_key ?? ""; # 缓存键值差异 @@ -381,7 +392,7 @@ resData = [ {/site:forgelist} -# 14、 视图反向控制器(注释函数),在视图开头调用,用来初始化一些操作。这里尽量不要复杂逻辑 +# 16、 视图反向控制器(注释函数),在视图开头调用,用来初始化一些操作。这里尽量不要复杂逻辑 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $func # SiteContext 里面的方法名 @@ -389,7 +400,7 @@ resData = [ {site:helper func="initHomeTKD" /} -# 15、 获取公共替换变量的值 +# 17、 获取公共替换变量的值 # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号): $code # ConverterMovel 里面的arrMap 的key # 样例