diff --git a/code/app/home/config/router.php b/code/app/home/config/router.php
index 4323084..e4a9532 100644
--- a/code/app/home/config/router.php
+++ b/code/app/home/config/router.php
@@ -180,7 +180,23 @@ $arrRoutes = [
],
//排行榜
- 'video_rank_index' => ['/paihang/index', '/rank/index', '/paihang-quan', '/top/index', '/paihang-bang', '/ranks/index', '/sort/index', '/order/index', '/total/index'],
+ 'video_rank_index' => ['/paihang/index', '/rank/index', '/paihang-quan', '/top/index', '/paihang-bang', '/ranks/index', '/sort/index', '/order/index', '/phb/index'],
+
+ //排行榜
+ 'video_rank_list' => [
+ '/paihang/:strClass/:strCategory/:strSortType',
+ '/rank:strCategory/:strClass-:strSortType',
+ '/:strClass/:strCategory/:strSortType-paihang',
+
+ '/:strCategory/:strClass-:strSortType-top',
+ '/:strClass-:strSortType/paihangbang-:strCategory',
+ '/:strClass-:strSortType/:strCategory-ranks',
+
+ '/sort:strCategory/:strClass-:strSortType',
+ '/:strClass/:strCategory/:strSortType-order',
+ '/:strClass-:strSortType/:strCategory-phb',
+
+ ],
// 视频站点url -- end
@@ -404,7 +420,38 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
'strClass' => '[a-z\-]*', // 允许空值
]);
break;
-
+
+ case 'video_rank_index':
+ $strView = 'pc/getRank.html';
+ if ($platform == 'h5') {
+ $strView = 'video/getRank.html';
+ }
+ //视频排行榜 首页
+ Route::get($strRoute, function () use ($strView) {
+ return view($strView);
+ })
+ ->pattern([
+
+ ]);
+ break;
+
+ case 'video_rank_list':
+ $strView = 'pc/getRankList.html';
+ if ($platform == 'h5') {
+ $strView = 'video/getRankList.html';
+ }
+ //视频分类 分页
+ Route::get($strRoute, function () use ($strView) {
+ return view($strView);
+ })
+ ->pattern([
+ 'strClass' => '[a-z\-]*', // 允许空值
+ 'strCategory' => '[a-z\-]*', // 允许空值
+ 'strSortType' => '[a-z\-]*', // 允许空值
+ 'intPage' => '\d*', // 允许空值
+ ]);
+ break;
+
case 'video_category':
$strView = 'pc/getCategory.html';
if ($platform == 'h5') {
diff --git a/code/app/home/view/videoDadi/base.html b/code/app/home/view/videoDadi/base.html
index 7edd6a5..465d548 100644
--- a/code/app/home/view/videoDadi/base.html
+++ b/code/app/home/view/videoDadi/base.html
@@ -107,6 +107,10 @@
{/video:categorytype}
+
+ 排行榜
+
+
@@ -165,7 +169,11 @@
- {site:site valcode="site_tongji" encode="false"/}
+
+ {site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/}
+
+
+ {$DomainModel->d_statis|raw}
diff --git a/code/app/home/view/videoDadi/index.md b/code/app/home/view/videoDadi/index.md
index d7ec7cf..120b38b 100644
--- a/code/app/home/view/videoDadi/index.md
+++ b/code/app/home/view/videoDadi/index.md
@@ -8,8 +8,8 @@ $v_lang = $tag['v_lang'] ?? "all"; // 语言
$v_area = $tag['v_area'] ?? "all"; // 地区
$v_year = $tag['v_year'] ?? "all"; // 年份
-2. 排行榜标签 怎加 分类查询
-{video:ranklist v_category="$val.v_category_en"
+2. 排行榜标签 增加 分类查询
+{video:ranklist v_class="dianying" v_category="$val.v_category_en"
diff --git a/code/app/home/view/videoDadi/index/index.html b/code/app/home/view/videoDadi/index/index.html
index d74384d..3748355 100644
--- a/code/app/home/view/videoDadi/index/index.html
+++ b/code/app/home/view/videoDadi/index/index.html
@@ -58,12 +58,12 @@
-
更多更多
火爆推荐
+ href='{site:vclurl class="all" category="all" area="all" lang="all" year="all" order="tuijian" page="1"/}'>火爆推荐
@@ -106,24 +106,24 @@
- {video:categorytype category_type="ONE" d_key="key" d_val="val"}
-
+ {video:ranksort d_key="key" d_val="val"}
+
-
{$val.v_category}总榜单
+
{$val}排行榜
- {video:ranklist count="10" sort_type="total" d_key="key" d_val="Video" cache_life="86400"}
+ {video:ranklist count="10" sort_type="$key" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{/video:ranklist}
- {/video:categorytype}
+ {/video:ranksort}
diff --git a/code/app/home/view/videoDadi/public/video-panel.html b/code/app/home/view/videoDadi/public/video-panel.html
index 173c852..1962dbc 100644
--- a/code/app/home/view/videoDadi/public/video-panel.html
+++ b/code/app/home/view/videoDadi/public/video-panel.html
@@ -6,7 +6,7 @@
更多更多
diff --git a/code/app/home/view/videoDadi/video/getCategory.html b/code/app/home/view/videoDadi/video/getCategory.html
index e9c8916..3a055d0 100644
--- a/code/app/home/view/videoDadi/video/getCategory.html
+++ b/code/app/home/view/videoDadi/video/getCategory.html
@@ -34,14 +34,14 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
按类型
+ class='{if empty( $Request.route.strCategory) || $Request.route.strCategory == "" || $Request.route.strCategory == "all"}active{/if}'>
全部
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
{if $val.v_category_en == $Request.route.strClass}
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
+ class="{if $Request.route.strCategory == $arrChildrenCategory.v_category_en}active{/if}">
{$arrChildrenCategory.v_category}
{/foreach}
@@ -52,12 +52,12 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
- 按地区
-
+ class='{if empty( $Request.route.strArea) || $Request.route.strArea == "" || $Request.route.strArea == "all"}active{/if}'>
全部
{video:area d_key="key" d_val="val"}
- -
+
-
{$val}
@@ -67,12 +67,12 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
- 按年份
-
+ class='{if empty( $Request.route.strYear) || $Request.route.strYear == "" || $Request.route.strYear == "all"}active{/if}'>
全部
{for start="2025" end="1967" comparison="gt" step="-1" name="i"}
- -
+
-
{$i}
@@ -82,12 +82,12 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
- 按语言
-
+ class='{if empty( $Request.route.strLang) || $Request.route.strLang == "" || $Request.route.strLang == "all"}active{/if}'>
全部
{video:lang d_key="key" d_val="val"}
- -
+
-
{$val}
@@ -103,7 +103,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
{video:sort d_key="key" d_val="val"}
- -
+
-
{$val}
@@ -142,7 +142,9 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
- - {$vo.label}
+ -
+ {$vo.label}
+
{/if}
{/switch}
{/volist}
diff --git a/code/app/home/view/videoDadi/video/getRank.html b/code/app/home/view/videoDadi/video/getRank.html
new file mode 100644
index 0000000..a315184
--- /dev/null
+++ b/code/app/home/view/videoDadi/video/getRank.html
@@ -0,0 +1,105 @@
+{extend name="base" /}
+
+{block name="get-data"}
+
+{video:pagerexp page="1" limit="30"
+v_class="$Request.route.strClass"
+d_key="d_key"
+d_val="Video"
+p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" export_name="resData" /}
+
+
+{/block}
+
+{block name="head-css"}
+
+{/block}
+
+{block name="head-js"}
+
+{/block}
+
+{block name="main"}
+
+
+
+
+
+
+
+
排行榜筛选
+
+
+
+ - 按分类
+ -
+ 全部
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+ -
+ {$val.v_category}
+
+ {/video:categorytype}
+
+
+
+
+ - 按类型
+ -
+ 全部
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+ {if $val.v_category_en == $Request.route.strClass}
+ {foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
+ -
+ {$arrChildrenCategory.v_category}
+
+ {/foreach}
+ {/if}
+ {/video:categorytype}
+
+
+
+
+
+
+
+
+
+
+
+
+ {video:ranksort d_key="key" d_val="val"}
+
+
+
+
+
{$val}排行榜
+
+
+
+
+ {video:ranklist count="10" sort_type="$key" d_key="key" d_val="Video" cache_life="86400"}
+ {include file="public/video-list-phb" /}
+ {/video:ranklist}
+
+
+
+
+ {/video:ranksort}
+
+
+
+
+
+
+
+{/block}
+{block name="customize"}
+
+{/block}
\ No newline at end of file
diff --git a/code/app/home/view/videoDadi/video/getRankList.html b/code/app/home/view/videoDadi/video/getRankList.html
new file mode 100644
index 0000000..f9c2d7e
--- /dev/null
+++ b/code/app/home/view/videoDadi/video/getRankList.html
@@ -0,0 +1,171 @@
+{extend name="base" /}
+
+{block name="get-data"}
+
+{video:pagerexp page="1" limit="30"
+v_class="$Request.route.strClass"
+d_key="d_key"
+d_val="Video"
+p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" export_name="resData" /}
+
+
+{/block}
+
+{block name="head-css"}
+
+{/block}
+
+{block name="head-js"}
+
+{/block}
+
+{block name="main"}
+
+
+
+
+
+
+
+
{site:getval code="strVideoClassName" /}筛选
+
+
+
+
+ - 按分类
+ -
+ 全部
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+ -
+
+ {$val.v_category}
+
+ {/video:categorytype}
+
+
+
+
+ - 按类型
+ -
+ 全部
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+ {if $val.v_category_en == $Request.route.strClass}
+ {foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
+ -
+ {$arrChildrenCategory.v_category}
+
+ {/foreach}
+ {/if}
+ {/video:categorytype}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {video:ranksort d_key="key" d_val="val"}
+ -
+
+ {$val}排行榜
+
+
+ {/video:ranksort}
+
+
+
+
+
+ {foreach $resData.data as $key=>$Video}
+ {include file="public/video-list-shu" /}
+ {/foreach}
+
+
+
+
+
+
+ {volist name="resData.p_data.pager" id="vo" key="k"}
+ {switch $vo.label}
+ {case value="上一页"}
+ {if $resData.p_data.page == 1}
+ - 上一页
+ {else}
+ - 1
+ {/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}
+
+
+
+
+
+
+
+
+
+
电影周榜单
+
+
+
+
+ {video:ranklist count="10" sort_type="weekly" d_key="key" d_val="Video" cache_life="86400"}
+ {include file="public/video-list-phb" /}
+ {/video:ranklist}
+
+
+
+
+
+
+
+
+
+
电影月榜单
+
+
+
+
+ {video:ranklist count="10" sort_type="monthly" d_key="key" d_val="Video" cache_life="86400"}
+ {include file="public/video-list-phb" /}
+ {/video:ranklist}
+
+
+
+
+
+
+
+{/block}
+{block name="customize"}
+
+{/block}
\ No newline at end of file
diff --git a/code/app/services/SiteContext.php b/code/app/services/SiteContext.php
index 28a45b7..9823afe 100644
--- a/code/app/services/SiteContext.php
+++ b/code/app/services/SiteContext.php
@@ -137,7 +137,9 @@ class SiteContext
View::assign("strUserUrlTemp", $strUserUrlTemp);
}else{
$strPcUrlTemp = $this->DomainModel->getFomartSubject('VIDEO_PC_URL_PATH', '', false);
+ $strRankUrlTemp = $this->DomainModel->getFomartSubject('VIDEO_RANK_INDEX_URL', '', false);
View::assign("strPcPath", $strPcUrlTemp);
+ View::assign("strRankUrlTemp", $strRankUrlTemp);
}
diff --git a/code/app/services/VideoService.php b/code/app/services/VideoService.php
index 45a7064..11ee8b5 100644
--- a/code/app/services/VideoService.php
+++ b/code/app/services/VideoService.php
@@ -106,26 +106,23 @@ class VideoService
return (string)$strUrl;
}
-
/**
- * 排行榜url
+ * 排行榜 列表 url
*
- * @param string $strGender
* @param string $strCategory
- * @param string $strStatus
- * @param string $strOrder
+ * @param string $strClass
+ * @param string $strSortType
* @param integer $intPage
* @return string
*/
- public function getVideoRankUrl(string $strGender, string $strCategory, string $strStatus, string $strOrder, int $intPage): string
+ public function getVideoRankUrl(string $strCategory,string $strClass, string $strSortType, int $intPage): string
{
- $strKey = 'RANK_LIST_URL';
+ $strKey = 'VIDEO_RANK_LIST_URL';
$strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [
- 'strGender' => !empty($strGender) ? $strGender : '',
'strCategory' => !empty($strCategory) ? $strCategory : 'all',
- 'strStatus' => !empty($strStatus) ? $strStatus : 'all',
- 'strOrder' => !empty($strOrder) ? $strOrder : 'all',
+ 'strClass' => !empty($strClass) ? $strClass : 'all',
+ 'strSortType' => !empty($strSortType) ? $strSortType : 'all',
'intPage' => $intPage ?? 1,
]);
@@ -465,7 +462,7 @@ class VideoService
ConverterMovel::setVal([
'intPage' => $intPage,
- 'strVideoClassName' => empty($strVClass) ? '' : StaticConfig::$arrVideoClass[$strVClass],
+ 'strVideoClassName' => empty($strVClass) || $strVClass == 'all' ? '' : StaticConfig::$arrVideoClass[$strVClass],
'strVideoCategoryName' => empty($strNCategory) ? '' : str_replace("视频", "", $strNCategory),
'strVideoStatus' => empty($strVStatus) ? '' : StaticConfig::$arrVideoStatus[$strVStatus],
'strVideoOrder' => empty($strSortType) ? '' : StaticConfig::$arrVideoSortType[$strSortType],
diff --git a/code/extend/template/taglib/Site.php b/code/extend/template/taglib/Site.php
index bfc25c7..5752d45 100644
--- a/code/extend/template/taglib/Site.php
+++ b/code/extend/template/taglib/Site.php
@@ -22,6 +22,7 @@ class Site extends TagLib
'vciurl' => ['attr' => 'class', 'close' => 0],
'vclurl' => ['attr' => 'category,class,area,lang,year,order,page', 'close' => 0],
+ 'vrlurl' => ['attr' => 'category,class,sort_type,page', 'close' => 0],
'forgelist' => ['attr' => 'count,diff_key,cache_life,d_key,d_val', 'close' => 1],
@@ -91,6 +92,34 @@ EOD;
return $strParse;
}
+ /**
+ * 视频排行榜列表 URL生成器
+ *
+ * @param array $n_id
+ * @return string
+ */
+ public function tagVRLUrl($tag)
+ {
+ $strCategory = isset($tag['category']) ? $tag['category'] : 'all';
+ $strClass = isset($tag['class']) ? $tag['class'] : 'all';
+ $strSortType = isset($tag['sort_type']) ? $tag['sort_type'] : 'all';
+ $intPage = isset($tag['page']) ? $tag['page'] : 1;
+
+ $strCategory = $this->customBuildVar($strCategory);
+ $strClass = $this->customBuildVar($strClass);
+ $strSortType = $this->customBuildVar($strSortType);
+ $intPage = $this->customBuildVar($intPage);
+
+ $strParse = <<getVideoRankUrl({$strCategory},{$strClass},{$strSortType},{$intPage});
+ echo \$strUrl;
+?>
+EOD;
+ return $strParse;
+ }
+
+
/**
* 内容替换
diff --git a/code/public/initdata/video/baseSubjectFomartGroup.php b/code/public/initdata/video/baseSubjectFomartGroup.php
index ae9bc19..75d9e53 100644
--- a/code/public/initdata/video/baseSubjectFomartGroup.php
+++ b/code/public/initdata/video/baseSubjectFomartGroup.php
@@ -195,7 +195,7 @@ $arrVideoSubjectFomartGroupData = [
'description' => '视频排行榜列表URL 模板1',
'sfg_id' => 1027,
'arrSubjectFomart' => [
- '/paihang/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/paihang/{strClass}/{strCategory}/{strSortType}',
]
],
'VIDEO_SEARCH_LIST_URL' => [
diff --git a/code/public/initdata/video/urlSubjectFomartGroup.php b/code/public/initdata/video/urlSubjectFomartGroup.php
index 27a0f42..963988f 100644
--- a/code/public/initdata/video/urlSubjectFomartGroup.php
+++ b/code/public/initdata/video/urlSubjectFomartGroup.php
@@ -358,56 +358,57 @@ return [
'description' => '视频排行榜列表URL 模板2',
'sfg_id' => 1079,
'arrSubjectFomart' => [
- '/paihangbang/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/rank{strCategory}/{strClass}-{strSortType}',
]
],
'VIDEO_RANK_LIST_URL_T3' => [
'description' => '视频排行榜列表URL 模板3',
'sfg_id' => 1080,
'arrSubjectFomart' => [
- '/rank/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/{strClass}/{strCategory}/{strSortType}-paihang',
]
],
'VIDEO_RANK_LIST_URL_T4' => [
'description' => '视频排行榜列表URL 模板4',
'sfg_id' => 1081,
'arrSubjectFomart' => [
- '/top/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/{strCategory}/{strClass}-{strSortType}-top',
]
],
'VIDEO_RANK_LIST_URL_T5' => [
'description' => '视频排行榜列表URL 模板5',
'sfg_id' => 1082,
'arrSubjectFomart' => [
- '/ranks/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/{strClass}-{strSortType}/paihangbang-{strCategory}',
]
],
'VIDEO_RANK_LIST_URL_T6' => [
'description' => '视频排行榜列表URL 模板6',
'sfg_id' => 1083,
'arrSubjectFomart' => [
- '/phb/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/{strClass}-{strSortType}/{strCategory}-ranks',
]
],
+
'VIDEO_RANK_LIST_URL_T7' => [
'description' => '视频排行榜列表URL 模板7',
'sfg_id' => 1084,
'arrSubjectFomart' => [
- '/sort/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/sort{strCategory}/{strClass}-{strSortType}',
]
],
'VIDEO_RANK_LIST_URL_T8' => [
'description' => '视频排行榜列表URL 模板8',
'sfg_id' => 1085,
'arrSubjectFomart' => [
- '/order/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/{strClass}/{strCategory}/{strSortType}-order',
]
],
'VIDEO_RANK_LIST_URL_T9' => [
'description' => '视频排行榜列表URL 模板9',
'sfg_id' => 1086,
'arrSubjectFomart' => [
- '/total/{strGender}/{strCategory}/{strStatus}/{strOrder}/page{intPage}',
+ '/{strClass}-{strSortType}/{strCategory}-phb',
]
],
diff --git a/doc/TemplateTag.md b/doc/TemplateTag.md
index 3765eda..026e798 100644
--- a/doc/TemplateTag.md
+++ b/doc/TemplateTag.md
@@ -53,14 +53,29 @@
{site:vciurl class="dianying" /}
+
+
# 视频分类 分页 url
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号):
-
'vclurl' => ['attr' => 'category,class,area,lang,year,order,page', 'close' => 0],
# 样例
-{site:vclurl class="dianying" category="" area="" lang="" year="" order="" page="1"/}
+{site:vclurl class="dianying" category="all" area="all" lang="all" year="all" order="all" page="1"/}
{site:vclurl class="$Request.route.strClass" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"/}
+
+# 视频排行榜 列表 url
+# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号):
+$sort_type ?? "daily"; # 排序方式:
+ # * * 'daily' => '天',
+ # * * 'weekly' => '周',
+ # * * 'monthly' => '月',
+ # * * 'total' => '总',
+'vrlurl' => ['attr' => 'category,class,sort_type,page', 'close' => 0],
+# 样例
+{site:vrlurl class="dianying" category="all" sort_type="all" page="1"/}
+{site:vrlurl class="$Request.route.strClass" category="$arrChildrenCategory.v_category_en" sort_type="all" page="1"/}
+
+
# 视频详情 url
{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}