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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0"> <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> <span class="text-muted pull-right">{$Video.v_remarks}</span>
{$Video.v_name} {$Video.v_name}
</a> </a>

View File

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

View File

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

View File

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

View File

@@ -66,12 +66,33 @@ class VideoService
* @param string $intPinYin * @param string $intPinYin
* @return string * @return string
*/ */
public function getVideoInfoUrl($intVId, $intPinYin): string public function getVideoInfoUrl(int $intVId, string $strPinYin): string
{ {
$strKey = 'VIDEO_INFO_URL'; $strKey = 'VIDEO_INFO_URL';
$strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [ $strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [
'intVId' => $intVId, '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; return (string)$strUrl;
} }
@@ -161,7 +182,7 @@ class VideoService
*/ */
public function getVideoSearchUrl($strKeyWords, $intPage = 1): string public function getVideoSearchUrl($strKeyWords, $intPage = 1): string
{ {
$strKey = 'SEARCH_INFO_URL'; $strKey = 'VIDEO_SEARCH_LIST_URL';
$strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [ $strUrl = $this->SiteContext->DomainModel->getFomartUrl($strKey, [
'intPage' => $intPage, 'intPage' => $intPage,
'strSearchKeywords' => $strKeyWords 'strSearchKeywords' => $strKeyWords
@@ -365,7 +386,6 @@ class VideoService
$strVYear = $arrParams['v_year']; $strVYear = $arrParams['v_year'];
$strSortType = $arrParams['sort_type']; $strSortType = $arrParams['sort_type'];
$strVStatus = $arrParams['v_isend']; $strVStatus = $arrParams['v_isend'];
$strDiffKey = $arrParams['diff_key']; $strDiffKey = $arrParams['diff_key'];
$strKey = $arrParams['key']; $strKey = $arrParams['key'];
$intCacheLifeTime = $arrParams['cache_life']; $intCacheLifeTime = $arrParams['cache_life'];

View File

@@ -23,7 +23,9 @@ class Site extends TagLib
'vciurl' => ['attr' => 'class', 'close' => 0], 'vciurl' => ['attr' => 'class', 'close' => 0],
'vclurl' => ['attr' => 'category,class,area,lang,year,order,page', 'close' => 0], 'vclurl' => ['attr' => 'category,class,area,lang,year,order,page', 'close' => 0],
'vrlurl' => ['attr' => 'category,class,sort_type,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], 'forgelist' => ['attr' => 'count,diff_key,cache_life,d_key,d_val', 'close' => 1],
'helper' => ['attr' => 'func', 'close' => 0], 'helper' => ['attr' => 'func', 'close' => 0],
@@ -62,7 +64,7 @@ EOD;
/** /**
* 视频分类列表 URL生成器 * 视频分类列表 URL生成器
* *
* @param array $n_id * @param array
* @return string '/vodtype-:strCategory/:strClass-:strArea-:strLang-:strYear-:strOrder-page:intPage', * @return string '/vodtype-:strCategory/:strClass-:strArea-:strLang-:strYear-:strOrder-page:intPage',
*/ */
public function tagVCLUrl($tag) public function tagVCLUrl($tag)
@@ -95,7 +97,7 @@ EOD;
/** /**
* 视频排行榜列表 URL生成器 * 视频排行榜列表 URL生成器
* *
* @param array $n_id * @param array
* @return string * @return string
*/ */
public function tagVRLUrl($tag) public function tagVRLUrl($tag)
@@ -119,6 +121,78 @@ EOD;
return $strParse; 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'; $page = $tag['page'] ?? '0';
$limit = $tag['limit'] ?? '10'; $limit = $tag['limit'] ?? '10';
$buttov_num = $tag['buttov_num'] ?? '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_category = $tag['v_category'] ?? "all";
$v_lang = $tag['v_lang'] ?? "all"; $v_lang = $tag['v_lang'] ?? "all";
$v_area = $tag['v_area'] ?? "all"; $v_area = $tag['v_area'] ?? "all";

View File

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

View File

@@ -124,56 +124,56 @@ return [
'description' => '视频详情URL 模板2', 'description' => '视频详情URL 模板2',
'sfg_id' => 1047, 'sfg_id' => 1047,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/vodinfo/{strVideoPinyin}-{intVideoId}', '/vodinfo/{strPinYin}-{intVId}',
] ]
], ],
'VIDEO_INFO_URL_T3' => [ 'VIDEO_INFO_URL_T3' => [
'description' => '视频详情URL 模板3', 'description' => '视频详情URL 模板3',
'sfg_id' => 1048, 'sfg_id' => 1048,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/vod/{strVideoPinyin}-{intVideoId}', '/vod/{strPinYin}-{intVId}',
] ]
], ],
'VIDEO_INFO_URL_T4' => [ 'VIDEO_INFO_URL_T4' => [
'description' => '视频详情URL 模板4', 'description' => '视频详情URL 模板4',
'sfg_id' => 1049, 'sfg_id' => 1049,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/video-info/{strVideoPinyin}-{intVideoId}', '/video-info/{strPinYin}-{intVId}',
] ]
], ],
'VIDEO_INFO_URL_T5' => [ 'VIDEO_INFO_URL_T5' => [
'description' => '视频详情URL 模板5', 'description' => '视频详情URL 模板5',
'sfg_id' => 1050, 'sfg_id' => 1050,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/video-detail/{strVideoPinyin}-{intVideoId}', '/video-detail/{strPinYin}-{intVId}',
] ]
], ],
'VIDEO_INFO_URL_T6' => [ 'VIDEO_INFO_URL_T6' => [
'description' => '视频详情URL 模板6', 'description' => '视频详情URL 模板6',
'sfg_id' => 1051, 'sfg_id' => 1051,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/video/{strVideoPinyin}-{intVideoId}', '/video/{strPinYin}-{intVId}',
] ]
], ],
'VIDEO_INFO_URL_T7' => [ 'VIDEO_INFO_URL_T7' => [
'description' => '视频详情URL 模板7', 'description' => '视频详情URL 模板7',
'sfg_id' => 1052, 'sfg_id' => 1052,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/shipin/{strVideoPinyin}-{intVideoId}', '/shipin/{strPinYin}-{intVId}',
] ]
], ],
'VIDEO_INFO_URL_T8' => [ 'VIDEO_INFO_URL_T8' => [
'description' => '视频详情URL 模板8', 'description' => '视频详情URL 模板8',
'sfg_id' => 1053, 'sfg_id' => 1053,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/shipin-xiangqing/{strVideoPinyin}-{intVideoId}', '/shipin-xiangqing/{strPinYin}-{intVId}',
] ]
], ],
'VIDEO_INFO_URL_T9' => [ 'VIDEO_INFO_URL_T9' => [
'description' => '视频详情URL 模板9', 'description' => '视频详情URL 模板9',
'sfg_id' => 1054, 'sfg_id' => 1054,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/shipin-neiron/{strVideoPinyin}-{intVideoId}', '/shipin-neiron/{strPinYin}-{intVId}',
] ]
], ],
@@ -182,56 +182,56 @@ return [
'description' => '视频播放URL 模板2', 'description' => '视频播放URL 模板2',
'sfg_id' => 1055, 'sfg_id' => 1055,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/vodbf/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}' '/vodbf/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}'
] ]
], ],
'VIDEO_PLAY_URL_T3' => [ 'VIDEO_PLAY_URL_T3' => [
'description' => '视频播放URL 模板3', 'description' => '视频播放URL 模板3',
'sfg_id' => 1056, 'sfg_id' => 1056,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/vodseed/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}' '/vodseed/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}'
] ]
], ],
'VIDEO_PLAY_URL_T4' => [ 'VIDEO_PLAY_URL_T4' => [
'description' => '视频播放URL 模板4', 'description' => '视频播放URL 模板4',
'sfg_id' => 1057, 'sfg_id' => 1057,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/video-play/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}' '/video-play/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}'
] ]
], ],
'VIDEO_PLAY_URL_T5' => [ 'VIDEO_PLAY_URL_T5' => [
'description' => '视频播放URL 模板5', 'description' => '视频播放URL 模板5',
'sfg_id' => 1058, 'sfg_id' => 1058,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/video-bofang/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}', '/video-bofang/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
] ]
], ],
'VIDEO_PLAY_URL_T6' => [ 'VIDEO_PLAY_URL_T6' => [
'description' => '视频播放URL 模板6', 'description' => '视频播放URL 模板6',
'sfg_id' => 1059, 'sfg_id' => 1059,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/video-show/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}', '/video-show/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
] ]
], ],
'VIDEO_PLAY_URL_T7' => [ 'VIDEO_PLAY_URL_T7' => [
'description' => '视频播放URL 模板7', 'description' => '视频播放URL 模板7',
'sfg_id' => 1060, 'sfg_id' => 1060,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/shipin-play/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}', '/shipin-play/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
] ]
], ],
'VIDEO_PLAY_URL_T8' => [ 'VIDEO_PLAY_URL_T8' => [
'description' => '视频播放URL 模板8', 'description' => '视频播放URL 模板8',
'sfg_id' => 1061, 'sfg_id' => 1061,
'arrSubjectFomart' => [ 'arrSubjectFomart' => [
'/shipin-bofang/{strVideoPinyin}-{intVideoId}-{strPlayType}-{intPlayIndex}', '/shipin-bofang/{strPinYin}-{intVId}-{strPlayType}-{intPlayIndex}',
] ]
], ],
'VIDEO_PLAY_URL_T9' => [ 'VIDEO_PLAY_URL_T9' => [
'description' => '视频播放URL 模板9', 'description' => '视频播放URL 模板9',
'sfg_id' => 1062, 'sfg_id' => 1062,
'arrSubjectFomart' => [ '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 .item .title{ display: block; margin-top: 3px; font-size: 12px;;}
.stui_nav__taddar.fixed{ position: fixed; bottom: 0; width: 100%; padding: 5px 0 0;} .stui_nav__taddar.fixed{ position: fixed; bottom: 0; width: 100%; padding: 5px 0 0;}
/* vod-list */ /* vod-list background: url(../img/load.gif) no-repeat;*/
.stui-vodlist__thumb{display: block; position: relative; padding-top: 150%; background: url(../img/load.gif) no-repeat; background-position: 50% 50%; background-size: cover;} .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.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.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;} .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

View File

@@ -52,8 +52,14 @@
# 视频分类 首页 url # 视频分类 首页 url
{site:vciurl class="dianying" /} {site:vciurl class="dianying" /}
# 视频详情 url
{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}
# 视频播放 url
{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}
{site:vpurl v_id="$Video.v_id" v_py="$Video.v_name_en" play_type="$Request.route.strPlayType" play_index="$Request.route.intPlayIndex" /}
# 视频分类 分页 url # 视频分类 分页 url
# 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号) # 传参与默认值(传参用下面的变量名,名称不需要$符号, 值的话如果用第三方变量作为值,需要带$符号)
@@ -79,6 +85,8 @@ $sort_type ?? "daily"; # 排序方式:
# 视频详情 url # 视频详情 url
{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/} {site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}
# 视频搜索详情 url
{site:vsurl key="哈哈" p="1"/}
# 图片加密 # 图片加密