video-template-3

This commit is contained in:
make
2025-05-09 19:33:40 +08:00
parent a228bb8083
commit 715466075a
138 changed files with 22125 additions and 13 deletions

View File

@@ -0,0 +1,499 @@
{extend name="base" /}
{block name="get-data"}
{if $Request.route.intVId}
{video:info v_id="$Request.route.intVId" v_key="arrVideo" /}
{else}
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" n_forge_id="0" /}
{/if}
{site:grm page_code="h5_video_info" diff="$arrVideo.v_id" num="120" g_key="arrGrm" /}
{/block}
{block name="title"}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="VIDEO@GETVIDEOINFO@TITLE" diff="$Request.route.intVId" /}
{/if}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="VIDEO@GETVIDEOINFO@KEYWORDS" diff="$Request.route.intVId"}
{/if}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION" diff="$Request.route.intVId"}
{/if}
{/block}
{block name="head"}
{// Open Graph 协议用于Facebook、LinkedIn等}
<meta property="og:title" content='{site:replace code="VIDEO@GETVIDEOINFO@TITLE"}'>
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION"}'>
{switch $arrVideo.v_parent_category_en }
{case 'dian-ying' }
<meta property="og:type" content="video.movie" />
{/case}
{case 'dian-shi-ju' }
<meta property="og:type" content="video.episode" />
{/case}
{case 'zong-yi' }
<meta property="og:type" content="video.tv_show" />
{/case}
{case 'dong-man' }
<meta property="og:type" content="video.episode" />
{/case}
{case 'duan-ju-da-quan' }
<meta property="og:type" content="video.episode" />
{/case}
{default /}
<meta property="og:type" content="video.movie" />
{/switch}
<meta property="og:url"
content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
<meta property="og:image" content="{$arrVideo.v_pic}">
<meta property="og:site_name" content="{$DomainModel->d_name}">
<meta property="og:video:type" content="video/m3u8">
{// Twitter Card用于Twitter/X}
<meta name="twitter:card" content="player">
<meta name="twitter:title" content='{site:replace code="VIDEO@GETVIDEOINFO@TITLE"}'>
<meta name="twitter:description" content='{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION"}'>
<meta name="twitter:image" content="{$arrVideo.v_pic}">
{// 结构化数据}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{$arrVideo.v_name}",
"description": "{$arrVideo.v_description}",
"thumbnailUrl": "{$arrVideo.v_pic}",
"uploadDate": "{:date('Y-m-d')}",
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}',
"genre": ["动作", "科幻"],
"keywords": '{site:replace code="VIDEO@GETVIDEOINFO@KEYWORDS"}',
"inLanguage": [
{volist name='$arrVideo.v_lang' id='strVideoLang' key='index'}
"{$strVideoLang}",
{/volist}
],
"contentLocation": [
{volist name='$arrVideo.v_area' id='strVideoArea' key='index'}
{
"@type": "Place",
"name": "{$strVideoArea}"
},
{/volist}
],
"director": [
{volist name='$arrVideo.v_director' id='strVideoDirector' key='index'}
{
"@type": "Person",
"name": "{$strVideoDirector}"
}
{/volist}
],
"actor": [
{volist name='$arrVideo.v_actor' id='strVideoActor' key='index'}
{
"@type": "Person",
"name": "{$strVideoActor}"
},
{/volist}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{$arrVideo.v_score}",
},
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}",
}
}
</script>
{/block}
{block name='body-class'}video-info-page{/block}
{block name="main"}
<div class="container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOINFO@H1" diff="$arrVideo.v_id"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOINFO@TEXT" diff="$arrVideo.v_id"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/" itemprop="item">
<span itemprop="name">首页</span>
</a>
<meta itemprop="position" content="1" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vciurl parent_category="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="row">
<div class="col-md-wide-7 col-xs-1 padding-0">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="col-xs-1">
<div class="myui-content__thumb">
<a class="myui-vodlist__thumb picture"
href="#" title="{$arrVideo.v_name}">
<img class="lazyload"
src="{$arrVideo.v_pic}"
data-original="{$arrVideo.v_pic}">
<span class="play hidden-xs"></span>
</a>
</div>
<div class="myui-content__detail">
<h1 class="title">{$arrVideo.v_name}</h1>
<div id="rating" class="score" data-mid="1" data-id="71202" data-score="{$arrVideo.v_score}">
<span class="left text-muted">评分:</span>
<span class="branch">{$arrVideo.v_score}</span>
</div>
<p class="data">
<span class="text-muted">分类:</span>
<a href='{site:vsurl key="$arrVideo.v_parent_category" p="1"/}'>{$arrVideo.v_parent_category}</a>
<span class="split-line"></span>
<span class="text-muted hidden-xs">地区:</span>
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
<span class="split-line"></span>
<span class="text-muted hidden-xs">年份:</span>
<a href='{site:vsurl key="$arrVideo.v_year" p="1"/}'>{$arrVideo.v_year}</a>
</p>
<p class="data">
<span class="text-muted">更新:</span>
<span class="text-red">{$arrVideo.v_publish_date}</span>
</p>
<p class="data">
<span class="text-muted">主演:</span>
{volist name='$arrVideo.v_actor' id='vo' key='index'}
<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 href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="data hidden-xs">
<span class="text-muted">简介:</span>
{$arrVideo.v_description|raw|mb_substr=0,30}
<a class="text-link" href="#desc">
详情
<i class="fa fa-angle-right"></i>
</a>
</p>
</div>
<div class="myui-content__operate">
<a class="btn btn-warm" href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
<i class="fa fa-play"></i>
立即播放
</a>
</div>
</div>
</div>
</div>
<!-- <script type="text/javascript">Myui.Score();</script> -->
<div class="myui-panel myui-panel-bg clearfix" id="desc">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h3 class="title">
<img src="/template/videoboku/images/juqing.png">剧情简介</h3>
</div>
</div>
<div class="myui-panel_bd">
<div class="col-pd text-collapse content">
<!-- <p class="myui-content__tag">关键词
<a href="">
{$arrVideo.v_name}
</a>
&nbsp;
</p> -->
<span class="sketch content">
《{$arrVideo.v_name}》是一部在
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
上映的导演的日韩动漫影视作品,影片的导演是
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
{$arrVideo.v_description|raw}
想要看更多的
<a href="#" title="{$DomainModel->d_name}_{$arrVideo.v_name}" >《{$arrVideo.v_name}》</a>
相关影视作品,请关注
<a href="/" title="{$DomainModel->d_name}" >{$DomainModel->d_domain}</a>
</span>
</div>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix"><a
class="more sort-button pull-right" href="javascript:;"><i
class="fa fa-sort-amount-asc"></i>排序</a>
<h3 class="title"><img src="/template/videoboku/images/bf.png">播放线路</h3>
<ul class="nav nav-tabs active">
<?php $keyLineGroup = 0;?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup ++ ;?>
<li class='{eq name="$keyLineGroup" value="1"}active {/eq}' id="line_head_{$strPlayGroupName}" onclick="checkLine('{$strPlayGroupName}')">
<a href="javascript:;" data-toggle="tab">
{$strPlayGroupName}
</a>
</li>
{/foreach}
</ul>
</div>
</div>
<div class="tab-content myui-panel_bd">
<?php $keyLine = 0;?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLine ++ ;?>
<div id="playlist_{$strPlayGroupName}" class='tab-pane fade in clearfix {eq name="$keyLine" value="1"}active {/eq}'>
<ul class="myui-content__list sort-list clearfix"
style="max-height: 300px; overflow: auto;">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="col-lg-10 col-md-8 col-sm-6 col-xs-4">
<a class="btn btn-default"
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>
</div>
{/foreach}
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title"><img src="/template/videoboku/images/zb.png">猜你喜欢</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.v_category_en"
v_lang_en="all"
v_area_en="all"
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title"><img src="/template/videoboku/images/see.png">大家正在看</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.v_category_en"
v_lang_en="all"
v_area_en="all"
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="13" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="col-md-wide-3 col-xs-1 myui-sidebar hidden-sm hidden-xs">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title">热播榜</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__media active col-pd clearfix">
{video:ranklist count="1"
v_parent_category_en="$arrVideo.v_parent_category_en"
v_category_en="$arrVideo.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
<li>
<div class="thumb">
<a class="myui-vodlist__thumb img-xs-70"
style="background: url({$Video.v_pic});"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看"
data-original="{$Video.v_pic}">
</a>
</div>
<div class="detail detail-side">
<h6 class="title">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' >
<i class="fa fa-angle-right text-muted pull-right"></i>
{$Video.v_name}
</a>
</h6>
<p class="font-12"><span class="text-muted">类型:</span>{$Video.v_parent_category}</p>
<p class="font-12"><span class="text-muted">地区:</span>
{volist name='$Video.v_area' id='vo' key='index'}
{$vo}&nbsp;
{/volist}
</p>
<p class="font-12 margin-0"><span class="text-muted">主演:</span>
{volist name='$Video.v_actor' id='vo' key='index'}
{$vo}
&nbsp;
{/volist}
</p>
</div>
</li>
{/video:ranklist}
</ul>
<ul class="myui-vodlist__text col-pd clearfix">
{video:ranklist count="30"
v_parent_category_en="$arrVideo.v_parent_category_en"
v_category_en="$arrVideo.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
{if $key >0}
{include file="public/video-list-phb" start="25"/}
{/if}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function checkLine(val){
//点击 通过传递过来的 当前元素id 组建2个 id ,一个是 head id 一个是列表id
// 1.给当前元素 添加类名 activ ,其它兄弟元素 删除 activee
// 构造 ID去掉 # 前缀)
let strLineHeadId = `line_head_${val}`;
let strLineListId = `playlist_${val}`;
// 获取 DOM 元素
let headElement = document.getElementById(strLineHeadId);
let listElement = document.getElementById(strLineListId);
// 1. 处理头部导航的 active 类
let navItems = document.querySelectorAll('.nav-tabs li');
navItems.forEach(item => {
if (item.id === strLineHeadId) {
item.classList.add('active');
} else {
item.classList.remove('active');
}
});
// 2. 处理播放列表的 active 类
let tabPanes = document.querySelectorAll('.tab-content .tab-pane');
tabPanes.forEach(pane => {
if (pane.id === strLineListId) {
pane.classList.add('active');
} else {
pane.classList.remove('active');
}
});
}
</script>
<script>
const strVideoId = `{$arrVideo.v_id}`;
const arrVideo = {
'v_id': `{$arrVideo['v_id']}`,
'v_name_en': `{$arrVideo['v_name_en']}`,
'v_pic': `{$arrVideo['v_pic']}`,
'v_name': `{$arrVideo['v_name']}`,
'v_description': `{$arrVideo['v_description']}`,
'v_publish_date': `{$arrVideo['v_publish_date']}`,
'v_remarks': `{$arrVideo['v_remarks']}`,
'v_category': `{$arrVideo['v_category']}`,
'v_parent_category': `{$arrVideo['v_parent_category']}`,
'v_year': `{$arrVideo['v_year']}`,
};
</script>
{/block}
{block name="customize"} {/block}