diff --git a/code/app/home/config/router.php b/code/app/home/config/router.php
index 35cd41d..253d589 100644
--- a/code/app/home/config/router.php
+++ b/code/app/home/config/router.php
@@ -76,27 +76,6 @@ Route::get('/searchhome/0', function (\think\Request $Request, SiteContext $Site
})->ext('html');
-/**
- * 视频分类首页
- */
-// Route::get('/vodtype/dianying', function (\think\Request $Request, SiteContext $SiteContext) {
-// return view('video/getCategoryType.html');
-// });
-// Route::get('/vodtype/dianshiju', function (\think\Request $Request, SiteContext $SiteContext) {
-// return view('video/getCategoryType.html');
-// });
-// Route::get('/vodtype/zonyi', function (\think\Request $Request, SiteContext $SiteContext) {
-// return view('video/getCategoryType.html');
-// });
-// Route::get('/vodtype/donman', function (\think\Request $Request, SiteContext $SiteContext) {
-// return view('video/getCategoryType.html');
-// });
-// Route::get('/vodtype/duanju', function (\think\Request $Request, SiteContext $SiteContext) {
-// return view('video/getCategoryType.html');
-// });
-
-
-
/**
* 路由配置文件
*/
@@ -112,7 +91,7 @@ $arrRoutes = [
// 视频站点url -- start
// 视频分类 首页
- 'video_category' => [
+ 'video_category_index' => [
'/vodtype/:strCategory',
'/vodclass/:strCategory',
'/shipin-fenlei/:strCategory',
@@ -123,6 +102,19 @@ $arrRoutes = [
'/video-leixing/:strCategory',
],
+ // 视频分类 分页 /vodshow/dianying/dong-zuo-pian/中国大陆/国语/1992/news/page1
+ // /vodshow/电影/动作片/中国大陆/国语/1992/最新/第一页
+ // /vodshow/dianying/dong-zuo-pian/zhongguodalu/guoyu/1992/news/page1
+ 'video_category' => [
+ '/vodshow/:strClass/:strCategory/:strArea/:strLang/:strYear/:strSort/page:intPage',
+ '/:strCategory/vodshow-:strClass-:strArea-:strLang-:strYear-:strSort-page:intPage',
+ '/vodshow-:strCategory/:strClass-:strArea-:strLang-:strYear-:strSort-page:intPage',
+ // '/vodshow/:strClass-:strCategory-:strArea-:strLang-:strYear-:strSort-page:intPage',
+ // /dong-zuo-pian/vodshow-dianying-zhongguodalu-guoyu-1992-news-page1
+ // /vodshow-dong-zuo-pian/dianying-zhongguodalu-guoyu-1992-news-page1
+ // /vodshow/dianying-dong-zuo-pian-zhongguodalu-guoyu-1992-news-page1
+ ],
+
// 视频站点url -- end
@@ -332,12 +324,12 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
switch ($key) {
// 视频站点url -- start
- case 'video_category':
+ case 'video_category_index':
$strView = 'pc/getCategoryType.html';
if ($platform == 'h5') {
$strView = 'video/getCategoryType.html';
}
- //书库/分类
+ //视频分类 首页
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
@@ -345,6 +337,30 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
'strCategory' => '[a-z\-]*', // 允许空值
]);
break;
+
+ case 'video_category':
+ $strView = 'pc/getCategory.html';
+ if ($platform == 'h5') {
+ $strView = 'video/getCategory.html';
+ }
+ //视频分类 分页
+ Route::get($strRoute, function () use ($strView) {
+ return view($strView);
+ })
+ ->pattern([
+ 'strClass' => '[a-z\-]*', // 允许空值
+ 'strCategory' => '[a-z\-]*', // 允许空值
+ 'strArea' => '[a-z\-]*', // 允许空值
+ 'strLang' => '[a-z\-]*', // 允许空值
+ 'strYear' => '[a-zA-Z0-9\-]*', // 允许空值
+ 'strSort' => '[a-z\-]*', // 允许空值
+ 'intPage' => '\d*', // 允许空值
+ // '/vodshow/:strClass/:strCategory/:strArea/:strLang/:strYear/:strSort/page:intPage'
+ // /vodshow/dianying/dong-zuo-pian/zhongguodalu/guoyu/1992/news/page1
+ // /dong-zuo-pian/vodshow-dianying-zhongguodalu-guoyu-1992-news-page1
+ ]);
+ break;
+
// 视频站点url -- end
case 'latest':
diff --git a/code/app/home/view/videoDadi/video/getCategory.html b/code/app/home/view/videoDadi/video/getCategory.html
new file mode 100644
index 0000000..d1c48c9
--- /dev/null
+++ b/code/app/home/view/videoDadi/video/getCategory.html
@@ -0,0 +1,213 @@
+{extend name="base" /}
+
+{block name="get-data"}
+
+{video:pagerexp page="1" limit="30"
+
+d_key="d_key"
+d_val="Video"
+p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /}
+
+{/block}
+
+{block name="head-css"}
+
+{/block}
+
+{block name="head-js"}
+
+{/block}
+
+{block name="main"}
+
+
+
+
+
+
+
+
{$Request.route.strCategory}筛选
+
+
+
+ - 按类型
+ -
+ 全部
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+ {if $val.v_category_en == $Request.route.strCategory}
+ {foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
+ -
+ {$arrChildrenCategory.v_category}
+
+ {/foreach}
+ {/if}
+ {/video:categorytype}
+
+
+
+
+ - 按地区
+ -
+ 全部
+
+ {video:area d_key="key" d_val="val"}
+
+ -
+ {$val}
+
+ {/video:area}
+
+
+ - 按年份
+
+ -
+ 全部
+
+ {video:year d_key="key" d_val="val"}
+ -
+ {$val}
+
+ {/video:year}
+
+
+
+ - 按语言
+ -
+ 全部
+
+ {video:lang d_key="key" d_val="val"}
+
+ -
+ {$val}
+
+ {/video:lang}
+
+
+
+
+
+
+
+
+
+
+ {video:sort d_key="key" d_val="val"}
+ -
+ {$val}
+
+ {/video:sort}
+
+
+
+
+
+
+
+ {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/StaticConfig.php b/code/app/services/StaticConfig.php
index 6a997ee..dd7c94c 100644
--- a/code/app/services/StaticConfig.php
+++ b/code/app/services/StaticConfig.php
@@ -59,6 +59,33 @@ class StaticConfig
'total' => '总',
];
+ static $arrVideoLang = [
+ 'hanyuputonghua' => '汉语普通话',
+ 'yueyu' => '粤语',
+ 'yingyu' => '英语',
+ 'guoyu' => '国语',
+ ];
+
+ static $arrVideoArea = [
+ 'zhongguodalu' => '中国大陆',
+ 'zhongguotaiwang' => '中国台湾',
+ 'zhongguoxianggan' => '中国香港',
+ 'meiguo' => '美国',
+ 'yingguo' => '英国',
+ 'faguo' => '法国',
+ 'yindu' => '印度',
+ 'riben' => '日本',
+ 'taiguo' => '泰国',
+ ];
+
+ static $arrVideoYear = [
+
+ ];
+
+ // 'v_lang', # 视频的语言(如“中文”、“英语”)
+// 'v_area', # 视频的地区(如“中国”、“美国”)
+// 'v_year', # 视频的发行年份(如 2023)
+
/**
* getNovelCategoryFilter
*
diff --git a/code/extend/template/taglib/Video.php b/code/extend/template/taglib/Video.php
index 2b7dd10..5247089 100644
--- a/code/extend/template/taglib/Video.php
+++ b/code/extend/template/taglib/Video.php
@@ -14,6 +14,10 @@ class Video extends TagLib
'sort' => ['attr' => 'd_key,d_val'],
'ranksort' => ['attr' => 'd_key,d_val'],
'status' => ['attr' => 'd_key,d_val'],
+ 'lang' => ['attr' => 'd_key,d_val'],
+ 'area' => ['attr' => 'd_key,d_val'],
+ 'year' => ['attr' => 'd_key,d_val'],
+
'category' => ['attr' => 'd_key,d_val,v_sex'],
'categorytype' => ['attr' => 'category_type,d_key,d_val,v_sex'],
@@ -285,6 +289,81 @@ EOT;
return $strParse;
}
+ public function tagLang($tag, $content)
+ {
+
+ $d_key = $tag['d_key'] ?? 'd_key';
+ $d_val = $tag['d_val'] ?? 'd_val';
+
+ $strParse = <<
+EOT;
+ $strParse .= << \${$d_val}): ?>
+EOT;
+ $strParse .= $content;
+ $strParse .= <<
+
+EOT;
+ return $strParse;
+ }
+
+ public function tagArea($tag, $content)
+ {
+
+ $d_key = $tag['d_key'] ?? 'd_key';
+ $d_val = $tag['d_val'] ?? 'd_val';
+
+ $strParse = <<
+EOT;
+ $strParse .= << \${$d_val}): ?>
+EOT;
+ $strParse .= $content;
+ $strParse .= <<
+
+EOT;
+ return $strParse;
+ }
+
+ public function tagYear($tag, $content)
+ {
+
+ $d_key = $tag['d_key'] ?? 'd_key';
+ $d_val = $tag['d_val'] ?? 'd_val';
+
+ $strParse = <<
+EOT;
+ $strParse .= << \${$d_val}): ?>
+EOT;
+ $strParse .= $content;
+ $strParse .= <<
+
+EOT;
+ return $strParse;
+ }
+
/**
* 获取排序筛选参数
*
diff --git a/doc/TemplateTag.md b/doc/TemplateTag.md
index 9854396..332f683 100644
--- a/doc/TemplateTag.md
+++ b/doc/TemplateTag.md
@@ -433,6 +433,10 @@ resData = [
$limit ?? '10'; # 查询条数
$v_category ?? "all"; # 查询分类
$sort_type ?? "all"; # 排序方式
+ # 'all' => '全部排序',
+ # 'news' => '最新入库',
+ # 'tuijian' => '推荐',
+ # 'update' => '最新更新',
$v_status ?? "all"; # 查询状态:
# * * 'all' => '所有',
# * * 'lianzai' => '连载中',
@@ -591,8 +595,34 @@ resData = [
{/video:ranklist}
+# 27、获取视频语言筛选条件
+# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号):
+ $d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称
+ $d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称
+# 样例
+{video:lang d_key="key" d_val="val"}
+ 键: {$key} - 值: {$val}
+{/video:lang}
+# 28、获取视频地区筛选条件
+# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号):
+ $d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称
+ $d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称
+# 样例
+{video:area d_key="key" d_val="val"}
+ 键: {$key} - 值: {$val}
+{/video:area}
+
+# 29、获取视频年份筛选条件
+# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号):
+ $d_key ?? 'd_key'; # 查询出来的数据遍历的时候, 下标键变量的名称
+ $d_val ?? 'd_val'; # 查询出来的数据遍历的时候, 值的名称
+# 样例
+{video:year d_key="key" d_val="val"}
+ 键: {$key} - 值: {$val}
+{/video:year}
+