This commit is contained in:
make
2025-12-31 00:49:32 +08:00
parent ae57b68f99
commit eb8c097777
709 changed files with 39727 additions and 1041 deletions

View File

@@ -0,0 +1,99 @@
<article class="{$TpStyle.dom_prefix}-d1-wrap">
{// 顶部基本信息 }
<header class="{$TpStyle.dom_prefix}-d1-hd">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$arrVideo.v_pic}"
alt="{$arrVideo.v_name}"
class="{$TpStyle.dom_prefix}-d1-cover">
<div class="{$TpStyle.dom_prefix}-d1-info">
<h1>{$arrVideo.v_name}</h1>
<p><b>类型:</b>{$arrVideo.type.type_name}</p>
<p><b>主演:</b>{$arrVideo.v_actor}</p>
<p><b>地区:</b>{$arrVideo.v_area}</p>
<p><b>年份:</b>{$arrVideo.v_year}</p>
</div>
</header>
{// 播放线路 TAB }
<nav class="{$TpStyle.dom_prefix}-d1-tabs">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<a class="{$TpStyle.dom_prefix}-d1-tab {eq name='$keyLineGroup' value='1'}active{/eq}"
onclick="d1SwitchTab('{$strPlayGroupName}')">
{$strPlayGroupName}
</a>
{/foreach}
</nav>
{// 各线路播放集数列表 }
<div class="{$TpStyle.dom_prefix}-d1-playlists">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<ul class="{$TpStyle.dom_prefix}-d1-list {eq name='$keyLineGroup' value='1'}active{/eq}"
id="play_{$strPlayGroupName}">
<?php $keyLine = 0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $keyLine++ ;?>
<li>
<a class="{if $keyLine == $Request.route.intPlayIndex}active{/if}"
href='{site:vpurl
v_id="$arrVideo.v_id"
v_py="$arrVideo.v_name_en"
play_type="$strPlayGroupName"
play_index="$keyLine"
/}'
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
{/foreach}
</div>
{// 剧情简介 }
<section class="{$TpStyle.dom_prefix}-d1-desc">
<h2>剧情简介</h2>
<p>{$arrVideo.v_des}</p>
</section>
{// 相关推荐站内沉淀、SEO 拉链) }
<section class="{$TpStyle.dom_prefix}-d1-rel">
<h3>相关推荐</h3>
<div class="{$TpStyle.dom_prefix}-d1-relgrid">
{video:listexp count="8" v_category="$arrVideo.v_category" d_key="key" d_val="Video"
export_name="arrRelated" cache_life="3600" /}
{volist name="arrRelated" id="re"}
<a href="/detail/{$re.v_id}.html" class="{$TpStyle.dom_prefix}-d1-relcard">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$re.v_pic}"
alt="{$re.v_name}">
<p>{$re.v_name}</p>
</a>
{/volist}
</div>
</section>
</article>
<script>
function d1SwitchTab(name) {
document.querySelectorAll('.{$TpStyle.dom_prefix}-d1-list').forEach(e => e.classList.remove('active'));
document.querySelector('#play_'+name).classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-d1-tab').forEach(e => e.classList.remove('active'));
event.target.classList.add('active');
}
</script>

View File

@@ -0,0 +1,99 @@
<main class="{$TpStyle.dom_prefix}-d2-page">
{// 顶部大横图 }
<section class="{$TpStyle.dom_prefix}-d2-hero">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$arrVideo.v_pic}"
alt="{$arrVideo.v_name}"
class="{$TpStyle.dom_prefix}-d2-heroimg">
<div class="{$TpStyle.dom_prefix}-d2-heromask"></div>
<div class="{$TpStyle.dom_prefix}-d2-heroinfo">
<h1>{$arrVideo.v_name}</h1>
<p>{$arrVideo.v_year} · {$arrVideo.type.type_name} · {$arrVideo.v_area}</p>
</div>
</section>
{// 基本信息 }
<section class="{$TpStyle.dom_prefix}-d2-info">
<p><b>主演:</b>{$arrVideo.v_actor}</p>
<p><b>导演:</b>{$arrVideo.v_director}</p>
<p><b>语言:</b>{$arrVideo.v_lang}</p>
</section>
{// 播放线路 TAB }
<nav class="{$TpStyle.dom_prefix}-d2-tabs">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<button type="button"
class="{$TpStyle.dom_prefix}-d2-tabbtn {eq name='$keyLineGroup' value='1'}active{/eq}"
onclick="d2SwitchLine('{$strPlayGroupName}', this)">
{$strPlayGroupName}
</button>
{/foreach}
</nav>
{// 每个线路的集数列表(竖排) }
<section class="{$TpStyle.dom_prefix}-d2-lines">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<ul class="{$TpStyle.dom_prefix}-d2-epis {eq name='$keyLineGroup' value='1'}active{/eq}"
id="d2_line_{$strPlayGroupName}">
<?php $keyLine = 0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $keyLine++ ;?>
<li>
<a href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$keyLine" /}'
class="{if $keyLine == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
{/foreach}
</section>
{// 剧情简介 }
<section class="{$TpStyle.dom_prefix}-d2-desc">
<h2>剧情简介</h2>
<p>{$arrVideo.v_des}</p>
</section>
{// 相关推荐:同分类 }
<section class="{$TpStyle.dom_prefix}-d2-rel">
<h3>同类推荐</h3>
{video:listexp count="8" v_category="$arrVideo.v_category" d_key="key" d_val="Video"
export_name="arrRelCat" cache_life="3600" /}
<div class="{$TpStyle.dom_prefix}-d2-relgrid">
{volist name="arrRelCat" id="re"}
<a href="/detail/{$re.v_id}.html" class="{$TpStyle.dom_prefix}-d2-relcard">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$re.v_pic}"
alt="{$re.v_name}">
<p>{$re.v_name}</p>
</a>
{/volist}
</div>
</section>
</main>
<script>
function d2SwitchLine(name, btn) {
document.querySelectorAll('.{$TpStyle.dom_prefix}-d2-epis')
.forEach(function(el){ el.classList.remove('active'); });
var box = document.getElementById('d2_line_'+name);
if (box) box.classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-d2-tabbtn')
.forEach(function(el){ el.classList.remove('active'); });
btn.classList.add('active');
}
</script>

View File

@@ -0,0 +1,87 @@
<article class="{$TpStyle.dom_prefix}-d3-page">
<section class="{$TpStyle.dom_prefix}-d3-top">
<div class="{$TpStyle.dom_prefix}-d3-picbox">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$arrVideo.v_pic}"
alt="{$arrVideo.v_name}"
class="{$TpStyle.dom_prefix}-d3-pic">
</div>
<div class="{$TpStyle.dom_prefix}-d3-meta">
<h1>{$arrVideo.v_name}</h1>
<p>{$arrVideo.v_year} · {$arrVideo.type.type_name}</p>
<p>主演:{$arrVideo.v_actor}</p>
<p>地区:{$arrVideo.v_area}</p>
</div>
</section>
{// 线路标签 }
<nav class="{$TpStyle.dom_prefix}-d3-linesel">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<span class="{$TpStyle.dom_prefix}-d3-chip {eq name='$keyLineGroup' value='1'}active{/eq}"
onclick="d3Line('{$strPlayGroupName}', this)">
{$strPlayGroupName}
</span>
{/foreach}
</nav>
{// 集数列表 }
<section class="{$TpStyle.dom_prefix}-d3-epwrap">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<div class="{$TpStyle.dom_prefix}-d3-epbox {eq name='$keyLineGroup' value='1'}active{/eq}"
id="d3_box_{$strPlayGroupName}">
<?php $keyLine = 0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $keyLine++ ;?>
<a href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$keyLine" /}'
class="{$TpStyle.dom_prefix}-d3-epitem {if $keyLine == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
{/volist}
</div>
{/foreach}
</section>
{// 简介 }
<section class="{$TpStyle.dom_prefix}-d3-desc">
<h2>简介</h2>
<p>{$arrVideo.v_des}</p>
</section>
{// 同演员推荐 }
<section class="{$TpStyle.dom_prefix}-d3-rel">
<h3>同主演推荐</h3>
{video:listexp count="6" v_actor="$arrVideo.v_actor" d_key="key" d_val="Video"
export_name="arrRelActor" cache_life="3600" /}
<div class="{$TpStyle.dom_prefix}-d3-grid">
{volist name="arrRelActor" id="re"}
<a href="/detail/{$re.v_id}.html" class="{$TpStyle.dom_prefix}-d3-card">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$re.v_pic}"
alt="{$re.v_name}">
<p>{$re.v_name}</p>
</a>
{/volist}
</div>
</section>
</article>
<script>
function d3Line(name, el){
document.querySelectorAll('.{$TpStyle.dom_prefix}-d3-epbox')
.forEach(function(box){ box.classList.remove('active'); });
var target = document.getElementById('d3_box_'+name);
if(target) target.classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-d3-chip')
.forEach(function(c){ c.classList.remove('active'); });
el.classList.add('active');
}
</script>

View File

@@ -0,0 +1,90 @@
<section class="{$TpStyle.dom_prefix}-d4-page">
<header class="{$TpStyle.dom_prefix}-d4-head">
<h1>{$arrVideo.v_name}</h1>
</header>
<div class="{$TpStyle.dom_prefix}-d4-meta">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$arrVideo.v_pic}"
alt="{$arrVideo.v_name}"
class="{$TpStyle.dom_prefix}-d4-img">
<div class="{$TpStyle.dom_prefix}-d4-table">
<p><span>类型</span><span>{$arrVideo.type.type_name}</span></p>
<p><span>年份</span><span>{$arrVideo.v_year}</span></p>
<p><span>地区</span><span>{$arrVideo.v_area}</span></p>
<p><span>语言</span><span>{$arrVideo.v_lang}</span></p>
</div>
</div>
{// 下拉选择线路 }
<div class="{$TpStyle.dom_prefix}-d4-linebox">
<label>播放线路:</label>
<select onchange="d4SelectLine(this.value)">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<option value="{$strPlayGroupName}" {eq name='$keyLineGroup' value='1'}selected{/eq}>
{$strPlayGroupName}
</option>
{/foreach}
</select>
</div>
{// 集数列表:有序列表 }
<div class="{$TpStyle.dom_prefix}-d4-eplist">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<ol class="{$TpStyle.dom_prefix}-d4-ol {eq name='$keyLineGroup' value='1'}active{/eq}"
id="d4_ol_{$strPlayGroupName}">
<?php $keyLine = 0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $keyLine++ ;?>
<li>
<a href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$keyLine" /}'
class="{if $keyLine == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ol>
{/foreach}
</div>
{// 简介 }
<article class="{$TpStyle.dom_prefix}-d4-desc">
<h2>内容简介</h2>
<p>{$arrVideo.v_des}</p>
</article>
{// 同年份推荐 }
<section class="{$TpStyle.dom_prefix}-d4-rel">
<h3>{$arrVideo.v_year} 年度影片推荐</h3>
{video:listexp count="6" v_year="$arrVideo.v_year" d_key="key" d_val="Video"
export_name="arrRelYear" cache_life="3600" /}
<div class="{$TpStyle.dom_prefix}-d4-grid">
{volist name="arrRelYear" id="re"}
<a href="/detail/{$re.v_id}.html" class="{$TpStyle.dom_prefix}-d4-card">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$re.v_pic}"
alt="{$re.v_name}">
<p>{$re.v_name}</p>
</a>
{/volist}
</div>
</section>
</section>
<script>
function d4SelectLine(name){
document.querySelectorAll('.{$TpStyle.dom_prefix}-d4-ol')
.forEach(function(el){ el.classList.remove('active'); });
var target = document.getElementById('d4_ol_'+name);
if(target){ target.classList.add('active'); }
}
</script>

View File

@@ -0,0 +1,86 @@
<article class="{$TpStyle.dom_prefix}-d5-page">
<header class="{$TpStyle.dom_prefix}-d5-head">
<h1>{$arrVideo.v_name}</h1>
<p>{$arrVideo.v_year} · {$arrVideo.type.type_name} · {$arrVideo.v_area}</p>
</header>
<figure class="{$TpStyle.dom_prefix}-d5-fig">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$arrVideo.v_pic}"
alt="{$arrVideo.v_name}"
class="{$TpStyle.dom_prefix}-d5-poster">
</figure>
{// 线路按钮条 }
<section class="{$TpStyle.dom_prefix}-d5-lines">
<div class="{$TpStyle.dom_prefix}-d5-linechips">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<button type="button"
class="{$TpStyle.dom_prefix}-d5-chip {eq name='$keyLineGroup' value='1'}active{/eq}"
onclick="d5Line('{$strPlayGroupName}', this)">
{$strPlayGroupName}
</button>
{/foreach}
</div>
<div class="{$TpStyle.dom_prefix}-d5-epswrap">
<?php $keyLineGroup = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup++ ;?>
<div class="{$TpStyle.dom_prefix}-d5-eps {eq name='$keyLineGroup' value='1'}active{/eq}"
id="d5_eps_{$strPlayGroupName}">
<?php $keyLine = 0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $keyLine++ ;?>
<a href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$keyLine" /}'
class="{$TpStyle.dom_prefix}-d5-epbtn {if $keyLine == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
{/volist}
</div>
{/foreach}
</div>
</section>
{// 简介分段 }
<section class="{$TpStyle.dom_prefix}-d5-info">
<h2>简介</h2>
<p>{$arrVideo.v_des}</p>
</section>
{// 综合推荐:同类 + 高票房 }
<section class="{$TpStyle.dom_prefix}-d5-rel">
<h3>你可能还喜欢</h3>
{video:listexp count="8" v_category="$arrVideo.v_category" d_key="key" d_val="Video"
export_name="arrRelMix" cache_life="3600" /}
<div class="{$TpStyle.dom_prefix}-d5-relgrid">
{volist name="arrRelMix" id="re"}
<a href="/detail/{$re.v_id}.html" class="{$TpStyle.dom_prefix}-d5-relcard">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$re.v_pic}"
alt="{$re.v_name}">
<p>{$re.v_name}</p>
</a>
{/volist}
</div>
</section>
</article>
<script>
function d5Line(name, el){
document.querySelectorAll('.{$TpStyle.dom_prefix}-d5-eps')
.forEach(function(box){ box.classList.remove('active'); });
var t = document.getElementById('d5_eps_'+name);
if(t) t.classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-d5-chip')
.forEach(function(c){ c.classList.remove('active'); });
el.classList.add('active');
}
</script>