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} +
+
+ +
+
+
+
+
+
+ +
+
+
+
    + {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} +
+ + +
+ +
+
+{/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} +