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,115 @@
<article class="{$TpStyle.dom_prefix}-p1-wrap">
{// 顶部区域:封面 + 简介 }
<header class="{$TpStyle.dom_prefix}-p1-header">
<figure class="{$TpStyle.dom_prefix}-p1-poster">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$arrVideo.v_pic}">
</figure>
<section class="{$TpStyle.dom_prefix}-p1-info">
<h1>{$arrVideo.v_name}</h1>
<p class="{$TpStyle.dom_prefix}-p1-meta">
<span>{$arrVideo.v_category}</span>
<span>{$arrVideo.v_area}</span>
<span>{$arrVideo.v_year}</span>
</p>
<p class="{$TpStyle.dom_prefix}-p1-des">
{$arrVideo.v_description|raw}
</p>
</section>
</header>
{// 播放器容器 }
<section class="{$TpStyle.dom_prefix}-p1-playerbox">
<div id="dplayer" class="{$TpStyle.dom_prefix}-p1-dp"></div>
</section>
{// 播放线路导航 }
<nav class="{$TpStyle.dom_prefix}-p1-lines">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<a class="{$TpStyle.dom_prefix}-p1-linebtn
{eq name='$lineIndex' value='1'}active{/eq}"
onclick="p1SwitchLine('{$strPlayGroupName}', this)">
{$strPlayGroupName}
</a>
{/foreach}
</nav>
{// 集数列表 }
<section class="{$TpStyle.dom_prefix}-p1-episodes">
<?php $lineIndex = 0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<ul class="{$TpStyle.dom_prefix}-p1-elist
{eq name='$lineIndex' value='1'}active{/eq}"
id="p1-list-{$strPlayGroupName}">
<?php $epIndex=0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $epIndex++; ?>
<li>
<a href='{site:vpurl
v_id="$arrVideo.v_id"
v_py="$arrVideo.v_name_en"
play_type="$strPlayGroupName"
play_index="$epIndex"
/}'
class="
{if $epIndex == $Request.route.intPlayIndex}active{/if}
{$TpStyle.dom_prefix}-p1-ep
"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
{/foreach}
</section>
{// 相关推荐SEO强沉淀 }
<section class="{$TpStyle.dom_prefix}-p1-relbox">
<h2 class="{$TpStyle.dom_prefix}-p1-reltitle">猜你喜欢</h2>
<div class="{$TpStyle.dom_prefix}-p1-relgrid">
{video:list count="12"
v_category_en="$arrVideo.v_category_en"
sort_type="news"
d_key="rk"
d_val="Video"
cache_life="3600"}
<a href="/detail/{$Video.v_id}.html" class="{$TpStyle.dom_prefix}-p1-relcard">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}">
<p>{$Video.v_name}</p>
</a>
{/video:list}
</div>
</section>
</article>
<script>
/* 切换线路 */
function p1SwitchLine(name, el){
document.querySelectorAll('.{$TpStyle.dom_prefix}-p1-elist').forEach(e=>e.classList.remove('active'));
document.querySelector('#p1-list-'+name).classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-p1-linebtn').forEach(e=>e.classList.remove('active'));
el.classList.add('active');
}
</script>

View File

@@ -0,0 +1,100 @@
<article class="{$TpStyle.dom_prefix}-p2-shell">
{// 全宽播放器 }
<section class="{$TpStyle.dom_prefix}-p2-screen">
<div id="dplayer" class="{$TpStyle.dom_prefix}-p2-dp"></div>
</section>
{// 基本信息 }
<section class="{$TpStyle.dom_prefix}-p2-info">
<h1>{$arrVideo.v_name}</h1>
<p class="{$TpStyle.dom_prefix}-p2-meta">
<span>{$arrVideo.v_category}</span>
<span>{$arrVideo.v_area}</span>
<span>{$arrVideo.v_year}</span>
</p>
<p class="{$TpStyle.dom_prefix}-p2-actors">
主演:{$arrVideo.v_actor}
</p>
</section>
{// 播放线路(深色 chip }
<nav class="{$TpStyle.dom_prefix}-p2-lines">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<button type="button"
class="{$TpStyle.dom_prefix}-p2-linechip {eq name='$lineIndex' value='1'}active{/eq}"
onclick="p2SwitchLine('{$strPlayGroupName}', this)">
{$strPlayGroupName}
</button>
{/foreach}
</nav>
{// 集数列表:深色块 }
<section class="{$TpStyle.dom_prefix}-p2-epswrap">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<div class="{$TpStyle.dom_prefix}-p2-epbox {eq name='$lineIndex' value='1'}active{/eq}"
id="p2-ep-{$strPlayGroupName}">
<?php $epIndex=0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $epIndex++; ?>
<a href='{site:vpurl
v_id="$arrVideo.v_id"
v_py="$arrVideo.v_name_en"
play_type="$strPlayGroupName"
play_index="$epIndex"
/}'
class="{$TpStyle.dom_prefix}-p2-epbtn {if $epIndex == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
{/volist}
</div>
{/foreach}
</section>
{// 剧情简介 }
<section class="{$TpStyle.dom_prefix}-p2-desc">
<h2>剧情简介</h2>
<p>{$arrVideo.v_description|raw}</p>
</section>
{// 猜你喜欢 }
<section class="{$TpStyle.dom_prefix}-p2-rel">
<h3>猜你喜欢</h3>
<div class="{$TpStyle.dom_prefix}-p2-relgrid">
{video:list count="10"
v_category_en="$arrVideo.v_category_en"
sort_type="news"
d_key="rk" d_val="Video" cache_life="3600"}
<a href="/detail/{$Video.v_id}.html" class="{$TpStyle.dom_prefix}-p2-card">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}">
<p>{$Video.v_name}</p>
</a>
{/video:list}
</div>
</section>
</article>
<script>
function p2SwitchLine(name, btn){
document.querySelectorAll('.{$TpStyle.dom_prefix}-p2-epbox')
.forEach(function(el){ el.classList.remove('active'); });
var box = document.getElementById('p2-ep-'+name);
if(box) box.classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-p2-linechip')
.forEach(function(el){ el.classList.remove('active'); });
btn.classList.add('active');
}
</script>

View File

@@ -0,0 +1,98 @@
<main class="{$TpStyle.dom_prefix}-p3-layout">
<section class="{$TpStyle.dom_prefix}-p3-main">
{// 左:播放器 + 基本信息 }
<div class="{$TpStyle.dom_prefix}-p3-left">
<div id="dplayer" class="{$TpStyle.dom_prefix}-p3-dp"></div>
<div class="{$TpStyle.dom_prefix}-p3-info">
<h1>{$arrVideo.v_name}</h1>
<p class="{$TpStyle.dom_prefix}-p3-meta">
{$arrVideo.v_category} · {$arrVideo.v_area} · {$arrVideo.v_year}
</p>
<p class="{$TpStyle.dom_prefix}-p3-actor">
主演:{$arrVideo.v_actor}
</p>
</div>
</div>
{// 右:线路 + 集数PC 时固定在侧边栏) }
<aside class="{$TpStyle.dom_prefix}-p3-right">
<div class="{$TpStyle.dom_prefix}-p3-linehead">播放线路</div>
<div class="{$TpStyle.dom_prefix}-p3-linelist">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<button type="button"
class="{$TpStyle.dom_prefix}-p3-line {eq name='$lineIndex' value='1'}active{/eq}"
onclick="p3Switch('{$strPlayGroupName}', this)">
{$strPlayGroupName}
</button>
{/foreach}
</div>
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<div class="{$TpStyle.dom_prefix}-p3-eplist {eq name='$lineIndex' value='1'}active{/eq}"
id="p3-ep-{$strPlayGroupName}">
<?php $epIndex=0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $epIndex++; ?>
<a href='{site:vpurl
v_id="$arrVideo.v_id"
v_py="$arrVideo.v_name_en"
play_type="$strPlayGroupName"
play_index="$epIndex"
/}'
class="{$TpStyle.dom_prefix}-p3-ep {if $epIndex == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
{/volist}
</div>
{/foreach}
</aside>
</section>
{// 下方:简介 + 推荐 }
<section class="{$TpStyle.dom_prefix}-p3-desc">
<h2>剧情简介</h2>
<p>{$arrVideo.v_description|raw}</p>
</section>
<section class="{$TpStyle.dom_prefix}-p3-rel">
<h3>猜你喜欢</h3>
<div class="{$TpStyle.dom_prefix}-p3-relgrid">
{video:list count="8"
v_category_en="$arrVideo.v_category_en"
sort_type="news"
d_key="rk" d_val="Video" cache_life="3600"}
<a href="/detail/{$Video.v_id}.html" class="{$TpStyle.dom_prefix}-p3-card">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}">
<p>{$Video.v_name}</p>
</a>
{/video:list}
</div>
</section>
</main>
<script>
function p3Switch(name, el){
document.querySelectorAll('.{$TpStyle.dom_prefix}-p3-eplist')
.forEach(function(box){ box.classList.remove('active'); });
var target = document.getElementById('p3-ep-'+name);
if(target) target.classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-p3-line')
.forEach(function(b){ b.classList.remove('active'); });
el.classList.add('active');
}
</script>

View File

@@ -0,0 +1,86 @@
<section class="{$TpStyle.dom_prefix}-p4-page">
<div class="{$TpStyle.dom_prefix}-p4-top">
<div id="dplayer" class="{$TpStyle.dom_prefix}-p4-dp"></div>
</div>
<header class="{$TpStyle.dom_prefix}-p4-info">
<h1>{$arrVideo.v_name}</h1>
<p>{$arrVideo.v_year} · {$arrVideo.v_category} · {$arrVideo.v_area}</p>
</header>
{// 下拉线路 }
<div class="{$TpStyle.dom_prefix}-p4-linebar">
<label>线路:</label>
<select onchange="p4SelectLine(this.value)">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<option value="{$strPlayGroupName}" {eq name='$lineIndex' value='1'}selected{/eq}>
{$strPlayGroupName}
</option>
{/foreach}
</select>
</div>
{// 有序集数 }
<div class="{$TpStyle.dom_prefix}-p4-eplist">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<ol class="{$TpStyle.dom_prefix}-p4-ol {eq name='$lineIndex' value='1'}active{/eq}"
id="p4-ol-{$strPlayGroupName}">
<?php $epIndex=0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $epIndex++; ?>
<li>
<a href='{site:vpurl
v_id="$arrVideo.v_id"
v_py="$arrVideo.v_name_en"
play_type="$strPlayGroupName"
play_index="$epIndex"
/}'
class="{if $epIndex == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ol>
{/foreach}
</div>
{// 简介 }
<article class="{$TpStyle.dom_prefix}-p4-desc">
<h2>简介</h2>
<p>{$arrVideo.v_description|raw}</p>
</article>
{// 推荐,简洁版 }
<section class="{$TpStyle.dom_prefix}-p4-rel">
<h3>同类推荐</h3>
<div class="{$TpStyle.dom_prefix}-p4-grid">
{video:list count="6"
v_category_en="$arrVideo.v_category_en"
sort_type="news"
d_key="rk" d_val="Video" cache_life="3600"}
<a href="/detail/{$Video.v_id}.html" class="{$TpStyle.dom_prefix}-p4-card">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}">
<p>{$Video.v_name}</p>
</a>
{/video:list}
</div>
</section>
</section>
<script>
function p4SelectLine(name){
document.querySelectorAll('.{$TpStyle.dom_prefix}-p4-ol')
.forEach(function(el){ el.classList.remove('active'); });
var t = document.getElementById('p4-ol-'+name);
if(t) t.classList.add('active');
}
</script>

View File

@@ -0,0 +1,97 @@
<article class="{$TpStyle.dom_prefix}-p5-wrap">
{// 封面 + 播放器组合卡片 }
<section class="{$TpStyle.dom_prefix}-p5-hero">
<div class="{$TpStyle.dom_prefix}-p5-left">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$arrVideo.v_pic}"
alt="{$arrVideo.v_name}"
class="{$TpStyle.dom_prefix}-p5-pic">
</div>
<div class="{$TpStyle.dom_prefix}-p5-right">
<h1>{$arrVideo.v_name}</h1>
<p class="{$TpStyle.dom_prefix}-p5-meta">
{$arrVideo.v_year} · {$arrVideo.v_category} · {$arrVideo.v_area}
</p>
<div id="dplayer" class="{$TpStyle.dom_prefix}-p5-dp"></div>
</div>
</section>
{// 线路:横向滚动 }
<nav class="{$TpStyle.dom_prefix}-p5-lines">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<span class="{$TpStyle.dom_prefix}-p5-line
{eq name='$lineIndex' value='1'}active{/eq}"
onclick="p5Line('{$strPlayGroupName}', this)">
{$strPlayGroupName}
</span>
{/foreach}
</nav>
{// 集数:紧凑按钮 }
<section class="{$TpStyle.dom_prefix}-p5-eps">
<?php $lineIndex=0; ?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType}
<?php $lineIndex++; ?>
<div class="{$TpStyle.dom_prefix}-p5-epbox {eq name='$lineIndex' value='1'}active{/eq}"
id="p5-ep-{$strPlayGroupName}">
<?php $epIndex=0; ?>
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<?php $epIndex++; ?>
<a href='{site:vpurl
v_id="$arrVideo.v_id"
v_py="$arrVideo.v_name_en"
play_type="$strPlayGroupName"
play_index="$epIndex"
/}'
class="{$TpStyle.dom_prefix}-p5-epbtn {if $epIndex == $Request.route.intPlayIndex}active{/if}"
m3u8="{$arrPlayUrl.url}">
{$arrPlayUrl.name}
</a>
{/volist}
</div>
{/foreach}
</section>
{// 简介 }
<section class="{$TpStyle.dom_prefix}-p5-desc">
<h2>内容简介</h2>
<p>{$arrVideo.v_description|raw}</p>
</section>
{// “瀑布式”推荐grid 不等高) }
<section class="{$TpStyle.dom_prefix}-p5-rel">
<h3>更多精彩</h3>
<div class="{$TpStyle.dom_prefix}-p5-relgrid">
{video:list count="10"
v_category_en="$arrVideo.v_category_en"
sort_type="news"
d_key="rk" d_val="Video" cache_life="3600"}
<a href="/detail/{$Video.v_id}.html" class="{$TpStyle.dom_prefix}-p5-relcard">
<img loading="lazy"
src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}">
<p>{$Video.v_name}</p>
</a>
{/video:list}
</div>
</section>
</article>
<script>
function p5Line(name, el){
document.querySelectorAll('.{$TpStyle.dom_prefix}-p5-epbox')
.forEach(function(box){ box.classList.remove('active'); });
var t = document.getElementById('p5-ep-'+name);
if(t) t.classList.add('active');
document.querySelectorAll('.{$TpStyle.dom_prefix}-p5-line')
.forEach(function(b){ b.classList.remove('active'); });
el.classList.add('active');
}
</script>