This commit is contained in:
make
2025-05-03 17:48:13 +08:00
parent d17b982cd0
commit 483c46b6d2
23 changed files with 399 additions and 110 deletions

View File

@@ -149,33 +149,33 @@ $arrRoutes = [
* /voddetail/strVideoPinyin-1
*/
'video_info' => [
'/voddetail/:strVideoPinyin-:intVideoId',
'/vodinfo/:strVideoPinyin-:intVideoId',
'/vod/:strVideoPinyin-:intVideoId',
'/voddetail/:strPinyin-:intVId',
'/vodinfo/:strPinyin-:intVId',
'/vod/:strPinyin-:intVId',
'/video-info/:strVideoPinyin-:intVideoId',
'/video-detail/:strVideoPinyin-:intVideoId',
'/video/:strVideoPinyin-:intVideoId',
'/video-info/:strPinyin-:intVId',
'/video-detail/:strPinyin-:intVId',
'/video/:strPinyin-:intVId',
'/shipin/:strVideoPinyin-:intVideoId',
'/shipin-xiangqing/:strVideoPinyin-:intVideoId',
'/shipin-neiron/:strVideoPinyin-:intVideoId',
'/shipin/:strPinyin-:intVId',
'/shipin-xiangqing/:strPinyin-:intVId',
'/shipin-neiron/:strPinyin-:intVId',
],
// 视频播放 /vodplay/strVideoPinyin-10-wuxian-1
// 视频播放 /vodplay/strPinyin-10-wuxian-1
'video_play' => [
'/vodplay/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/vodbf/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/vodseed/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/vodplay/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/vodbf/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/vodseed/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/video-play/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/video-bofang/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/video-show/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/video-play/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/video-bofang/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/video-show/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/shipin-play/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/shipin-bofang/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/shipin-kan/:strVideoPinyin-:intVideoId-:strPlayType-:intPlayIndex',
'/shipin-play/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/shipin-bofang/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
'/shipin-kan/:strPinyin-:intVId-:strPlayType-:intPlayIndex',
],
@@ -198,6 +198,9 @@ $arrRoutes = [
],
//搜索
'video_search' => ['/search', '/explore', '/sousuo', '/find', '/query', '/keywords'],
// 视频站点url -- end
@@ -480,7 +483,7 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
->pattern(['intVideoId' => '\d+', 'strVideoPinyin' => '[\w-]+',]);
->pattern(['intVId' => '\d+', 'strPinyin' => '[\w-]+',]);
break;
case 'video_play':
@@ -492,10 +495,21 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
Route::get($strRoute, function () use ($strView) {
return view($strView);
})
->pattern(['intVideoId' => '\d+', 'intPlayIndex' => '\d+', 'strPlayType' => '[\w-]+','strVideoPinyin' => '[\w-]+',]);
->pattern(['intVId' => '\d+', 'intPlayIndex' => '\d+', 'strPlayType' => '[\w-]+','strPinyin' => '[\w-]+',]);
break;
case 'video_search':
//搜素
$strView = 'pc/getSearchVideo.html';
if ($platform == 'h5') {
$strView = 'video/getSearchVideo.html';
}
Route::get($strRoute, function () use ($strView) {
return view($strView);
})->ext('html');
break;
// 视频站点url -- end

View File

@@ -69,11 +69,11 @@
</div>
</li>
</ul>
<!-- onsubmit="return qrsearch();" -->
<div class="stui-header__search">
<form id="search" name="search" method="get" action=""
onsubmit="return qrsearch();">
<input type="text" name="wd" class="mac_wd form-control mac_input" value=""
<form id="search" name="search" method="get" action="{$strSearchListUrlTemp}"
>
<input type="text" name="keyword" class="mac_wd form-control mac_input" value=""
placeholder="请输入关键词..." autocomplete="off">
<button class="submit" id="searchbutton" type="submit">
<i class="icon iconfont icon-search"></i>
@@ -107,7 +107,7 @@
</li>
{/video:categorytype}
<li class="{if $Request.route.strClass == ''}active{/if}">
<li >
<a href="{$strRankUrlTemp}">排行榜</a>
</li>

View File

@@ -62,8 +62,7 @@
class="icon iconfont icon-more"></i></a>
<h3 class="title">
<img src="/template/videodadi/icon/icon_12.png">
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)});"
href='{site:vclurl class="all" category="all" area="all" lang="all" year="all" order="tuijian" page="1"/}'>火爆推荐</a>
<a href='{site:vclurl class="all" category="all" area="all" lang="all" year="all" order="tuijian" page="1"/}'>火爆推荐</a>
</h3>
</div>
@@ -83,14 +82,14 @@
<div class="col-lg-wide-25 hidden-md hidden-sm hidden-xs">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png"><a
style="color: rgb(152, 139, 75);" href="/">好莱坞榜单</a>
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png">
<a href="/">好莱坞榜单</a>
</h3>
<p style="float:right">人民币(亿)</p>
</div>
</div>
<ul class="stui-vodlist__text active col-pd clearfix">
{video:list count="12" sort_type="tuijian" d_key="key" d_val="Video" cache_life="86400"}
{video:list count="18" sort_type="tuijian" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb2" /}
{/video:list}
</ul>

View File

@@ -1,7 +1,7 @@
<li class="bottom-line-dot paihanban-ul-li">
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)});"
href=""
<a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<span class="text-muted pull-right hidden-md">100</span>
{if $key == 1}

View File

@@ -1,9 +1,10 @@
<li class="bottom-line-dot paihanban-ul-li">
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)});"
href=""
<?php $key ++ ?>
<a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<span class="text-muted pull-right hidden-md">{$Video.v_hits ?? 0}</span>
<span class="text-muted pull-right hidden-md">{$Video.v_remarks ?? 0}</span>
{if $key == 1}
<span class="badge badge-first">{$key}</span>
{elseif $key == 2}

View File

@@ -1,6 +1,6 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)})" class="top-line-dot text-overflow"
href=""
<a class="top-line-dot text-overflow"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<span class="text-muted pull-right">{$Video.v_remarks}</span>
{$Video.v_name}

View File

@@ -1,6 +1,6 @@
<li>
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)})"
href=""
<a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
class="text-muted">
{$Video.v_name}
</a>

View File

@@ -2,7 +2,7 @@
<div class="stui-vodlist__box">
<a style="color: rgb(233, 93, 80); background-image: url(&quot;/static/img/default.jpg&quot;);"
class="stui-vodlist__thumb lazyload" href=""
class="stui-vodlist__thumb lazyload" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"
data-src="{$Video.v_pic}">
<span class="play hidden-xs"></span>
@@ -10,8 +10,8 @@
</a>
<div class="stui-vodlist__detail">
<h4 class="title text-overflow">
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)})"
href="" title="{$Video.v_name}">{$Video.v_name}</a>
<a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">{$Video.v_name}</a>
</h4>
<div class="text text-overflow text-muted hidden-xs">
{$Video.v_description|raw}

View File

@@ -1,5 +1,5 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)});" class="top-line-dot text-overflow" href="" title="{$Video.v_name}">
<a class="top-line-dot text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">
<span class="text-muted pull-right">{$Video.v_remarks}</span>
{$Video.v_name}
</a>

View File

@@ -1,5 +1,5 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
<a class="top-line-dot text-overflow"
href="/{$Video.v_name_en}.html"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"><span class="text-muted pull-right">{$Video.v_remarks}</span>{$Video.v_name}</a>
</li>

View File

@@ -0,0 +1,153 @@
{extend name="base" /}
{block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="10"
key="$Request.get.keyword"
d_key="d_key"
d_val="Video"
p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="$Request.url" num="30" g_key="arrGrm" /}
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name="main"}
<div class="container">
<div class="row">
<div class="col-lg-wide-75 col-xs-1 padding-0">
<div class="stui-pannel stui-pannel-bg clearfix">
<div class="stui-pannel-box">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_27.png"></h3>
</div>
</div>
<div class="stui-pannel_bd">
<ul class="stui-vodlist__media col-pd clearfix">
{foreach $resData.data as $key=>$Video}
<li class="active clearfix">
<div class="thumb"><a
class="v-thumb stui-vodlist__thumb lazyload"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"
data-src="{$Video.v_pic}"><span
class="play hidden-xs"></span><span
class="pic-text text-right">{$Video.v_remarks}</span></a></div>
<div class="detail">
<h3 class="title"><a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'>{$Video.v_name}</a></h3>
<p><span class="text-muted">导演:</span>
{foreach $Video.v_director as $keyDirector=>$strDirector}
{$strDirector}
{/foreach}
</p>
<p><span class="text-muted">主演:</span>
{foreach $Video.v_actor as $keyActor=>$strActor}
{$strActor}
{/foreach}
</p>
<p class="hidden-mi">
<span class="text-muted">类型:</span>
{$Video.v_category}
<span class="split-line"></span>
<span class="text-muted">地区:</span>
{$Video.v_area}
<span class="hidden-xs">
<span class="split-line"></span>
<span class="text-muted">年份:</span>
{$Video.v_year}
</span>
</p>
<p class="margin-0"><a
class="btn btn-min btn-primary"
href='{site:vpurl v_id="$Video.v_id" v_py="$Video.v_name_en" play_type="default" play_index="1" /}'>立即播放</a>&nbsp;&nbsp;<a
class="btn btn-min btn-default"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'>查看详情</a></p>
</div>
</li>
{/foreach}
</ul>
</div>
</div>
</div>
<!-- 分页 -->
<ul class="stui-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li class='{eq name="vo.label" value="$Request.route.intPage"}active {/eq}'>
<a href="{$vo.url}">{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
<div class="col-lg-wide-25 stui-pannel-side hidden-md hidden-sm hidden-xs">
<div class="stui-pannel stui-pannel-bg clearfix">
<div class="stui-pannel-box">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_dianying.png">电影热播榜</h3>
</div>
</div>
<div class="stui-pannel_bd clearfix">
<ul class="stui-vodlist__text active col-pd clearfix">
{video:ranklist count="10" sort_type="weekly" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{/video:ranklist}
</ul>
</div>
</div>
</div>
<div class="stui-pannel stui-pannel-bg clearfix">
<div class="stui-pannel-box">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_dianshiju.png">电视剧热播榜</h3>
</div>
</div>
<div class="stui-pannel_bd clearfix">
<ul class="stui-vodlist__text active col-pd clearfix">
{video:ranklist count="10" sort_type="weekly" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -2,8 +2,8 @@
{block name="get-data"}
{if $Request.route.intVideoId}
{video:info v_id="$Request.route.intVideoId" n_key="arrVideo" n_forge_id="$Request.route.intForgeId" /}
{if $Request.route.intVId}
{video:info v_id="$Request.route.intVId" n_key="arrVideo" n_forge_id="$Request.route.intForgeId" /}
{else}
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" n_forge_id="0" /}
{/if}
@@ -12,27 +12,27 @@
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intVideoId || empty($Request.route.intVideoId)}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intVideoId" /}
{site:replace code="VIDEO@GETVIDEOINFO@TITLE" diff="$Request.route.intVId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intVideoId || empty($Request.route.intVideoId)}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intVideoId"}
{site:replace code="VIDEO@GETVIDEOINFO@KEYWORDS" diff="$Request.route.intVId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intVideoId || empty($Request.route.intVideoId)}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intVideoId"}
{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION" diff="$Request.route.intVId"}
{/if}
{/block}
@@ -74,33 +74,33 @@
</h1>
<p class="data">
<span class="text-muted">类型:</span>
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)});"
href="//----{$arrVideo.v_category}---------.html" target="_blank">{$arrVideo.v_category}</a>
<a
href='{site:vsurl key="$arrVideo.v_category" p="1"/}' >{$arrVideo.v_category}</a>
&nbsp;
<span class="split-line"></span>
<span class="text-muted hidden-xs">地区:</span>
<a style="color: rgb(240, 3, 132)"
href="//--{$arrVideo.v_area}-----------.html" target="_blank">{$arrVideo.v_area}</a>
href='{site:vsurl key="$arrVideo.v_area" p="1"/}' >{$arrVideo.v_area}</a>
&nbsp;
<span class="split-line"></span>
<span class="text-muted hidden-xs">年份:</span>
<a style="color: rgb(102, 158, 132)" href="//-------------{$arrVideo.v_year}.html"
target="_blank">{$arrVideo.v_year}</a>
<a style="color: rgb(102, 158, 132)" href='{site:vclurl class="all" category="all" area="all" lang="all" year="$arrVideo.v_year" order="all" page="1"/}'
>{$arrVideo.v_year}</a>
&nbsp;
</p>
<p class="data">
<span class="text-muted">主演:</span>
{volist name='$arrVideo.v_actor' id='vo' key='index'}
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)});"
href="//-{$vo}------------.html" target="_blank">{$vo}</a>
<a
href='{site:vsurl key="$vo" p="1"/}' >{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="data">
<span class="text-muted">导演:</span>
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)});"
href="//-----{$vo}--------.html" target="_blank">{$vo}</a>
<a
href='{site:vsurl key="$vo" p="1"/}' >{$vo}</a>
&nbsp;
{/volist}
</p>
@@ -110,7 +110,7 @@
<p class="desc hidden-xs">
<span class="left text-muted">简介:</span>  
{$arrVideo.v_description|raw}
<a style="color: rgb(175, 252, 178)" href="#desc">
<a >
详情
<i class="icon iconfont icon-moreunfold"></i>
</a>
@@ -127,15 +127,17 @@
class="bds_youdao" data-cmd="youdao" title="分享到有道云笔记"></a><a class="bds_more"
data-cmd="more" title="更多"></a>
</div>
<a style="color: rgb(185, 152, 222)" class="btn btn-primary"
href="//{strInfoId}-1-1.html">立即播放</a>
<a class="btn btn-primary"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
立即播放
</a>
</div>
</div>
</div>
</div>
</div>
{foreach $arrVideo.v_play_url as $key=>$arrPlayUrlType }
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<div class="stui-pannel stui-pannel-bg clearfix">
<div class="stui-pannel-box b playlist mb">
@@ -143,15 +145,15 @@
<div class="stui-pannel__head bottom-line active clearfix">
<span class="more text-muted pull-right">无需安装任何插件</span>
<h3 class="title">
<img src="/template/videodadi/icon/icon_30.png" />{$key}
<img src="/template/videodadi/icon/icon_30.png" />{$strPlayGroupName}
</h3>
</div>
</div>
<div class="stui-pannel_bd col-pd clearfix">
<ul class="stui-content__playlist clearfix">
{volist name='$arrPlayUrlType' id='arrPlayUrl' key='index'}
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li>
<a href="//{$arrPlayUrl.name}-1-1.html">{$arrPlayUrl.name}</a>
<a href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>{$arrPlayUrl.name}</a>
</li>
{/volist}
</ul>
@@ -174,7 +176,7 @@
<h3>{$arrVideo.v_name}</h3>
<p class="col-pd">
{$arrVideo.v_description}
<a href="//.html">{$arrVideo.v_name}</a>&nbsp;&nbsp;
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>{$arrVideo.v_name}</a>&nbsp;&nbsp;
</p>
</div>
</div>
@@ -197,8 +199,8 @@
<ul class="stui-vodlist__text col-pd clearfix hidden-xs">
{video:list count="12" sort_type="news" d_key="key" d_val="Video" cache_life="86400"}
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
<a style="color: rgb({:mt_rand(0,255)}, {:mt_rand(0,255)}, {:mt_rand(0,255)})" class="top-line-dot text-overflow"
href="/{$Video.v_name_en}.html"
<a class="top-line-dot text-overflow"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"><span class="text-muted pull-right">{$Video.v_remarks}</span>{$Video.v_name}</a>
</li>

View File

@@ -3,8 +3,8 @@
{block name="get-data"}
{if $Request.route.intVideoId}
{video:info v_id="$Request.route.intVideoId" n_key="arrVideo" n_forge_id="$Request.route.intForgeId" /}
{if $Request.route.intVId}
{video:info v_id="$Request.route.intVId" n_key="arrVideo" n_forge_id="$Request.route.intForgeId" /}
{else}
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" n_forge_id="0" /}
{/if}
@@ -13,27 +13,27 @@
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intVideoId || empty($Request.route.intVideoId)}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@TITLE" diff="$Request.route.intVideoId" /}
{site:replace code="VIDEO@GETVIDEOINFO@TITLE" diff="$Request.route.intVId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intVideoId || empty($Request.route.intVideoId)}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@KEYWORDS" diff="$Request.route.intVideoId"}
{site:replace code="VIDEO@GETVIDEOINFO@KEYWORDS" diff="$Request.route.intVId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intVideoId || empty($Request.route.intVideoId)}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="NOVEL@GETNOVELINFO@DESCRIPTION" diff="$Request.route.intVideoId"}
{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION" diff="$Request.route.intVId"}
{/if}
{/block}
@@ -271,14 +271,30 @@
{block name="customize"}
<script>
function findFirstUrl(obj) {
for (const key in obj) {
const data = obj[key];
if (Array.isArray(data) && data.length > 0 && data[0].url) {
return data[0].url;
}
}
return null;
}
var intPlayUrlIndex = '{$Request.route.intPlayIndex}'
var strPlayType = '{$Request.route.strPlayType}'
var intJumpTimeFirst = 1;
var intJumpTimeTwoStart = 1;
var intJumpTimeTwoEnd = 1;
var arrPlayUrl = {:json_encode($arrVideo.v_play_url)};
var ActivePlayUrl = arrPlayUrl[strPlayType][intPlayUrlIndex - 1]
var strPlayUrl = ActivePlayUrl.url
var strPlayUrl = ""
if(strPlayType == 'default'){
strPlayUrl = findFirstUrl(arrPlayUrl)
}else{
var ActivePlayUrl = arrPlayUrl[strPlayType][intPlayUrlIndex - 1]
strPlayUrl = ActivePlayUrl.url
}
document.addEventListener('DOMContentLoaded', function () {
console.log(strPlayUrl)

View File

@@ -138,8 +138,10 @@ class SiteContext
}else{
$strPcUrlTemp = $this->DomainModel->getFomartSubject('VIDEO_PC_URL_PATH', '', false);
$strRankUrlTemp = $this->DomainModel->getFomartSubject('VIDEO_RANK_INDEX_URL', '', false);
$strSearchListUrlTemp = $this->DomainModel->getFomartSubject('VIDEO_SEARCH_LIST_URL', '', false);
View::assign("strPcPath", $strPcUrlTemp);
View::assign("strRankUrlTemp", $strRankUrlTemp);
View::assign("strSearchListUrlTemp", $strSearchListUrlTemp);
}

View File

@@ -66,17 +66,38 @@ class VideoService
* @param string $intPinYin
* @return string
*/
public function getVideoInfoUrl($intVId, $intPinYin): string
public function getVideoInfoUrl(int $intVId, string $strPinYin): string
{
$strKey = 'VIDEO_INFO_URL';
$strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [
'intVId' => $intVId,
'strPinYin' => $intPinYin
'strPinYin' => $strPinYin
]);
return (string)$strUrl;
}
/**
* 视频播放
*
* @param integer $intVId
* @param string $strPinYin
* @param string $strPlayType
* @param integer $intPlayIndex
* @return string
*/
public function getVideoPlayUrl(int $intVId, string $strPinYin,string $strPlayType,int $intPlayIndex): string
{
$strKey = 'VIDEO_PLAY_URL';
$strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [
'intVId' => $intVId,
'strPinYin' => $strPinYin,
'strPlayType' => $strPlayType,
'intPlayIndex' => $intPlayIndex,
]);
return (string)$strUrl;
}
/**
* 获取视频分类URl
*
@@ -161,7 +182,7 @@ class VideoService
*/
public function getVideoSearchUrl($strKeyWords, $intPage = 1): string
{
$strKey = 'SEARCH_INFO_URL';
$strKey = 'VIDEO_SEARCH_LIST_URL';
$strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [
'intPage' => $intPage,
'strSearchKeywords' => $strKeyWords
@@ -365,7 +386,6 @@ class VideoService
$strVYear = $arrParams['v_year'];
$strSortType = $arrParams['sort_type'];
$strVStatus = $arrParams['v_isend'];
$strDiffKey = $arrParams['diff_key'];
$strKey = $arrParams['key'];
$intCacheLifeTime = $arrParams['cache_life'];

View File

@@ -23,8 +23,10 @@ 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],
'vurl' => ['attr' => 'v_id,v_py', 'close' => 0],
'vpurl' => ['attr' => 'v_id,v_py,play_type,play_index', 'close' => 0],
'vsurl' => ['attr' => 'key', 'close' => 0],
'forgelist' => ['attr' => 'count,diff_key,cache_life,d_key,d_val', 'close' => 1],
'helper' => ['attr' => 'func', 'close' => 0],
'getval' => ['attr' => 'code', 'close' => 0],
@@ -62,7 +64,7 @@ EOD;
/**
* 视频分类列表 URL生成器
*
* @param array $n_id
* @param array
* @return string '/vodtype-:strCategory/:strClass-:strArea-:strLang-:strYear-:strOrder-page:intPage',
*/
public function tagVCLUrl($tag)
@@ -95,7 +97,7 @@ EOD;
/**
* 视频排行榜列表 URL生成器
*
* @param array $n_id
* @param array
* @return string
*/
public function tagVRLUrl($tag)
@@ -119,6 +121,78 @@ EOD;
return $strParse;
}
/**
* 视频详情URL生成器
*
* @param array
* @return string
*/
public function tagVUrl($tag)
{
$intVId = isset($tag['v_id']) ? $tag['v_id'] : '';
$strVPy = isset($tag['v_py']) ? $tag['v_py'] : '';
$intVId = $this->customBuildVar($intVId);
$strVPy = $this->customBuildVar($strVPy);
$strParse = <<<EOD
<?php
\$strUrl = app(\\app\\services\\VideoService::class)->getVideoInfoUrl({$intVId},{$strVPy});
echo \$strUrl;
?>
EOD;
return $strParse;
}
/**
* 视频播放URL生成器
*
* @param array
* @return string
*/
public function tagVPUrl($tag)
{
$intVId = isset($tag['v_id']) ? $tag['v_id'] : '';
$strVPy = isset($tag['v_py']) ? $tag['v_py'] : '';
$strPlayType = isset($tag['play_type']) ? $tag['play_type'] : '';
$intPlayIndex = isset($tag['play_index']) ? $tag['play_index'] : '';
$intVId = $this->customBuildVar($intVId);
$strVPy = $this->customBuildVar($strVPy);
$strPlayType = $this->customBuildVar($strPlayType);
$intPlayIndex = $this->customBuildVar($intPlayIndex);
$strParse = <<<EOD
<?php
\$strUrl = app(\\app\\services\\VideoService::class)->getVideoPlayUrl({$intVId},{$strVPy},{$strPlayType},{$intPlayIndex});
echo \$strUrl;
?>
EOD;
return $strParse;
}
/**
* 视频搜索页URL生成器
*
* @param array $key
* @return string
*/
public function tagVSUrl($tag)
{
$strKey = isset($tag['key']) ? $tag['key'] : '';
$intPage = isset($tag['p']) ? $tag['p'] : '';
$strKey = $this->customBuildVar($strKey);
$intPage = $this->customBuildVar($intPage);
$strParse = <<<EOD
<?php
\$strUrl = app(\\app\\services\\VideoService::class)->getVideoSearchUrl({$strKey},{$intPage});
echo \$strUrl;
?>
EOD;
return $strParse;
}
/**

View File

@@ -109,7 +109,7 @@ EOT;
$page = $tag['page'] ?? '0';
$limit = $tag['limit'] ?? '10';
$buttov_num = $tag['buttov_num'] ?? '10';
$v_class = $tag['v_class'] ?? '10';
$v_class = $tag['v_class'] ?? 'all';
$v_category = $tag['v_category'] ?? "all";
$v_lang = $tag['v_lang'] ?? "all";
$v_area = $tag['v_area'] ?? "all";

View File

@@ -174,14 +174,14 @@ $arrVideoSubjectFomartGroupData = [
'description' => '视频详情URL 模板1',
'sfg_id' => 1024,
'arrSubjectFomart' => [
'/voddetail/{strVideoPinyin}-{intVideoId}',
'/voddetail/{strPinYin}-{intVId}',
]
],
'VIDEO_PLAY_URL' => [
'description' => '视频播放URL 模板1',
'sfg_id' => 1025,
'arrSubjectFomart' => [
'/vodplay/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}'
'/vodplay/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}'
]
],
'VIDEO_RANK_INDEX_URL' => [

View File

@@ -124,56 +124,56 @@ return [
'description' => '视频详情URL 模板2',
'sfg_id' => 1047,
'arrSubjectFomart' => [
'/vodinfo/{strVideoPinyin}-{intVideoId}',
'/vodinfo/{strPinYin}-{intVId}',
]
],
'VIDEO_INFO_URL_T3' => [
'description' => '视频详情URL 模板3',
'sfg_id' => 1048,
'arrSubjectFomart' => [
'/vod/{strVideoPinyin}-{intVideoId}',
'/vod/{strPinYin}-{intVId}',
]
],
'VIDEO_INFO_URL_T4' => [
'description' => '视频详情URL 模板4',
'sfg_id' => 1049,
'arrSubjectFomart' => [
'/video-info/{strVideoPinyin}-{intVideoId}',
'/video-info/{strPinYin}-{intVId}',
]
],
'VIDEO_INFO_URL_T5' => [
'description' => '视频详情URL 模板5',
'sfg_id' => 1050,
'arrSubjectFomart' => [
'/video-detail/{strVideoPinyin}-{intVideoId}',
'/video-detail/{strPinYin}-{intVId}',
]
],
'VIDEO_INFO_URL_T6' => [
'description' => '视频详情URL 模板6',
'sfg_id' => 1051,
'arrSubjectFomart' => [
'/video/{strVideoPinyin}-{intVideoId}',
'/video/{strPinYin}-{intVId}',
]
],
'VIDEO_INFO_URL_T7' => [
'description' => '视频详情URL 模板7',
'sfg_id' => 1052,
'arrSubjectFomart' => [
'/shipin/{strVideoPinyin}-{intVideoId}',
'/shipin/{strPinYin}-{intVId}',
]
],
'VIDEO_INFO_URL_T8' => [
'description' => '视频详情URL 模板8',
'sfg_id' => 1053,
'arrSubjectFomart' => [
'/shipin-xiangqing/{strVideoPinyin}-{intVideoId}',
'/shipin-xiangqing/{strPinYin}-{intVId}',
]
],
'VIDEO_INFO_URL_T9' => [
'description' => '视频详情URL 模板9',
'sfg_id' => 1054,
'arrSubjectFomart' => [
'/shipin-neiron/{strVideoPinyin}-{intVideoId}',
'/shipin-neiron/{strPinYin}-{intVId}',
]
],
@@ -182,56 +182,56 @@ return [
'description' => '视频播放URL 模板2',
'sfg_id' => 1055,
'arrSubjectFomart' => [
'/vodbf/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}'
'/vodbf/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}'
]
],
'VIDEO_PLAY_URL_T3' => [
'description' => '视频播放URL 模板3',
'sfg_id' => 1056,
'arrSubjectFomart' => [
'/vodseed/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}'
'/vodseed/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}'
]
],
'VIDEO_PLAY_URL_T4' => [
'description' => '视频播放URL 模板4',
'sfg_id' => 1057,
'arrSubjectFomart' => [
'/video-play/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}'
'/video-play/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}'
]
],
'VIDEO_PLAY_URL_T5' => [
'description' => '视频播放URL 模板5',
'sfg_id' => 1058,
'arrSubjectFomart' => [
'/video-bofang/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}',
'/video-bofang/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
]
],
'VIDEO_PLAY_URL_T6' => [
'description' => '视频播放URL 模板6',
'sfg_id' => 1059,
'arrSubjectFomart' => [
'/video-show/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}',
'/video-show/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
]
],
'VIDEO_PLAY_URL_T7' => [
'description' => '视频播放URL 模板7',
'sfg_id' => 1060,
'arrSubjectFomart' => [
'/shipin-play/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}',
'/shipin-play/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
]
],
'VIDEO_PLAY_URL_T8' => [
'description' => '视频播放URL 模板8',
'sfg_id' => 1061,
'arrSubjectFomart' => [
'/shipin-bofang/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}',
'/shipin-bofang/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
]
],
'VIDEO_PLAY_URL_T9' => [
'description' => '视频播放URL 模板9',
'sfg_id' => 1062,
'arrSubjectFomart' => [
'/shipin-kan/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}',
'/shipin-kan/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
]
],

View File

@@ -156,8 +156,8 @@ textarea.form-control{ height: auto;}
.stui_nav__taddar .item .title{ display: block; margin-top: 3px; font-size: 12px;;}
.stui_nav__taddar.fixed{ position: fixed; bottom: 0; width: 100%; padding: 5px 0 0;}
/* vod-list */
.stui-vodlist__thumb{display: block; position: relative; padding-top: 150%; background: url(../img/load.gif) no-repeat; background-position: 50% 50%; background-size: cover;}
/* vod-list background: url(../img/load.gif) no-repeat;*/
.stui-vodlist__thumb{display: block; position: relative; padding-top: 150%; background-position: 50% 50%; background-size: cover;}
.stui-vodlist__thumb.square{ padding-top: 100%; background: url(../img/load_f.gif) no-repeat; background-position: 50% 50%; background-size: cover;}
.stui-vodlist__thumb.active{ padding-top: 60%; background: url(../img/load_w.gif) no-repeat; background-position: 50% 50%; background-size: cover;}
.stui-vodlist__thumb.picture {background: none; overflow: hidden;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB