gpttemp
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
{block name="get-data"}
|
||||
|
||||
{video:pagerexp page="$Request.route.intPage" limit="30" button_num="10" cache_life="3600"
|
||||
key="$Request.get.keyword"
|
||||
v_parent_category_en="$Request.route.strParentCategory"
|
||||
v_category_en="$Request.route.strCategory"
|
||||
v_lang_en="$Request.route.strLang"
|
||||
@@ -12,124 +11,54 @@ v_year="$Request.route.strYear"
|
||||
sort_type="$Request.route.strOrder"
|
||||
d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export_name="resData" /}
|
||||
|
||||
{site:grm page_code="h5_category_list_type" diff="$Request.route.intPage" num="100" g_key="arrGrm" /}
|
||||
|
||||
{site:helper func="initVideoCategoryTKD" /}
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="title"}{site:replace code="VIDEO@GETCATEGORY@TITLE"}{/block}
|
||||
{block name="keywords"}{site:replace code="VIDEO@GETCATEGORY@KEYWORDS"}{/block}
|
||||
{block name="description"}{site:replace code="VIDEO@GETCATEGORY@DESCRIPTION"}{/block}
|
||||
|
||||
{block name="head"}
|
||||
|
||||
{// 社交媒体标签}
|
||||
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORY@TITLE"}' />
|
||||
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORY@DESCRIPTION"}' />
|
||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
||||
{switch $Request.route.strParentCategory }
|
||||
{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}
|
||||
|
||||
{// 结构化数据}
|
||||
<script type="application/ld+json">
|
||||
[
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||
"url": "https://{$DomainModel->d_domain}",
|
||||
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}",
|
||||
"query-input": "required name=search_term_string"
|
||||
}
|
||||
"hasPart": [
|
||||
{volist name="resData.data" id="Video" key="key"}
|
||||
{if $key < 5 }
|
||||
{
|
||||
"@type": "VideoObject",
|
||||
"name": "{$Video.v_name}",
|
||||
"description": "{$Video.v_description}",
|
||||
"thumbnailUrl": '{$Video.v_pic}',
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
},
|
||||
{/if}
|
||||
{/volist}
|
||||
]
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "首页",
|
||||
"item": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "分类首页",
|
||||
"item": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 3,
|
||||
"name": "分类列表",
|
||||
"item": "https://{$DomainModel->d_domain}{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}"
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
{block name="title"}
|
||||
在线观看
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="main"}
|
||||
|
||||
<section class="section">
|
||||
<h2 class="page-title">{$typename}</h2>
|
||||
|
||||
<div class="grid">
|
||||
{volist name="list" id="vo"}
|
||||
<a class="card" href="/detail/{$vo.id}.html">
|
||||
<div class="card-img">
|
||||
<img src="{$vo.pic}">
|
||||
</div>
|
||||
<div class="card-title">{$vo.title}</div>
|
||||
</a>
|
||||
{/volist}
|
||||
</div>
|
||||
|
||||
<div class="pager">{$pages|raw}</div>
|
||||
</section>
|
||||
|
||||
|
||||
<main class="page-category-sub" style="max-width:{$TpStyle.page_max_width_pc}px;margin:0 auto;">
|
||||
|
||||
{/block}
|
||||
{block name="customize"}
|
||||
{php}
|
||||
// 1. 读取冻结 cfg
|
||||
$cfg = $TpStyle['list_layout']['category_list'];
|
||||
|
||||
// 2. 构建标题(不随机)
|
||||
$title = [
|
||||
'primary' => '',
|
||||
'secondary' => '共 ' . $resData['p_data']['total'] . ' 部影片',
|
||||
];
|
||||
{/php}
|
||||
|
||||
{// ===== Title ===== }
|
||||
{include file="module/list/title/title_F" /}
|
||||
|
||||
{// ===== Shell + Item ===== }
|
||||
{assign name="__LIST__" value="$resData.data"}
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.category_list"}
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
|
||||
{// ===== Pagination ===== }
|
||||
{php}
|
||||
$pagerArr = $resData['p_data']['pager'] ?? [];
|
||||
$page = $resData['p_data']['page'] ?? 1;
|
||||
$pages = $resData['p_data']['pages'] ?? 1;
|
||||
|
||||
// 从 cfg 取分页配置(你会在 SiteStyle 冻结下发)
|
||||
$pagerCfg = $TpStyle['template_cfg']['components']['pager'] ?? [];
|
||||
{/php}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.category_list"}
|
||||
{include file="module/pager/_pager_router" /}
|
||||
|
||||
</main>
|
||||
|
||||
{/block}
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
{block name="get-data"}
|
||||
|
||||
{site:grm page_code="h5_category_type" diff="$Request.route.strParentCategory" num="100" g_key="arrGrm" /}
|
||||
|
||||
{site:helper func="initVideoCategoryTypeTKD" /}
|
||||
|
||||
{/block}
|
||||
@@ -12,246 +10,106 @@
|
||||
{block name="keywords"}{site:replace code="VIDEO@GETCATEGORYINDEX@KEYWORDS"}{/block}
|
||||
{block name="description"}{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}{/block}
|
||||
|
||||
{block name="head"}
|
||||
<!-- 社交媒体标签 -->
|
||||
<meta property="og:title" content='{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}' />
|
||||
<meta property="og:description" content='{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}' />
|
||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
||||
{switch $Request.route.strParentCategory }
|
||||
{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}
|
||||
|
||||
<!-- 结构化数据 -->
|
||||
<script type="application/ld+json">
|
||||
[
|
||||
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
|
||||
"url": "https://{$DomainModel->d_domain}",
|
||||
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}",
|
||||
"query-input": "required name=search_term_string"
|
||||
}
|
||||
"hasPart": [
|
||||
{video:ranklist count="5"
|
||||
v_category_en="$Request.route.strParentCategory"
|
||||
sort_type="weekly"
|
||||
d_key="key" d_val="Video" cache_life="3600"}
|
||||
|
||||
{if $key < 5 }
|
||||
{
|
||||
"@type": "VideoObject",
|
||||
"name": "{$Video.v_name}",
|
||||
"description": "{$Video.v_description}",
|
||||
"thumbnailUrl": '{$Video.v_pic}',
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
},
|
||||
{/if}
|
||||
{/video:ranklist}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "首页",
|
||||
"item": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "分类首页",
|
||||
"item": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}"
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="head-css"}{/block}
|
||||
|
||||
{block name="head-js"}{/block}
|
||||
|
||||
|
||||
{block name="main"}
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1 class="view-title">
|
||||
{site:replace code="VIDEO@GETCATEGORYINDEX@H1"}
|
||||
</h1>
|
||||
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORYINDEX@TEXT"}</h4>
|
||||
|
||||
|
||||
<nav class="breadcrumb" aria-label="breadcrumb">
|
||||
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
|
||||
<li>当前位置:</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="$Request.route.strParentCategory" /}' itemprop="item">
|
||||
<span itemprop="name">{site:getval code="strVideoParentCategoryName" /}</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="2" />
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="row">
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head clearfix">
|
||||
<h3 class="title"><img src="/template/videonunu/icon/icon_24.png">最近更新</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd clearfix">
|
||||
<ul class="stui-vodlist clearfix cs-list-r">
|
||||
{video:list count="12"
|
||||
v_parent_category_en="$Request.route.strParentCategory"
|
||||
sort_type="update" d_key="key"
|
||||
d_val="Video" cache_life="3600"}
|
||||
{include file="public/video-list-shu" start="10" col-md="6"/}
|
||||
{/video:list}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<main class="page-category" style="max-width:{$TpStyle.page_max_width_pc}px;margin:0 auto;">
|
||||
|
||||
<!-- ================= 聚合推荐区 ================= -->
|
||||
{assign name="topModule" value="$TpStyle.template_cfg.pages.category_index.top_block.module"}
|
||||
|
||||
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
|
||||
{if $val.v_category_en == $Request.route.strParentCategory}
|
||||
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
|
||||
<div class="stui-pannel stui-pannel-bg clearfix row">
|
||||
<div class="stui-pannel-box clearfix">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head clearfix">
|
||||
<a class="more text-muted pull-right"
|
||||
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"}'>
|
||||
更多
|
||||
<i class="icon iconfont icon-more"></i>
|
||||
</a>
|
||||
<h2 class="title">
|
||||
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"}'>
|
||||
{$arrChildrenCategory.v_category}
|
||||
</a>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stui-pannel_bd clearfix">
|
||||
<div class="col-md-wide-4 col-xs-1 padding-0">
|
||||
<div class="carousel carousel_default carousel_default2 col-pd is-draggable" style="height: 250px;"
|
||||
tabindex="0">
|
||||
{video:ranklist count="1"
|
||||
v_category_en="$arrChildrenCategory.v_category_en"
|
||||
sort_type="weekly"
|
||||
d_key="key" d_val="Video" cache_life="3600"}
|
||||
<div class="wide is-selected" >
|
||||
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
|
||||
class="stui-vodlist__thumb active lazyload-bg"
|
||||
data-src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}"
|
||||
title="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看"
|
||||
style="background-image: url(/template/videolaoniu/images/pic.png) no-repeat; background-position:50% 50%; background-size: cover; padding-top: 65%;">
|
||||
<span class="play hidden-xs"></span>
|
||||
<span class="pic-tag pic-tag-h">推荐</span>
|
||||
<span class="pic-text pic-text-silde text-center">{$Video.v_name}</span>
|
||||
</a>
|
||||
</div>
|
||||
{/video:ranklist}
|
||||
</div>
|
||||
|
||||
<div class="hidden-sm hidden-xs clearfix">
|
||||
<ul class="col-xs-wide-45 stui-vodlist col-pd clearfix">
|
||||
{video:ranklist count="1"
|
||||
v_category_en="$arrChildrenCategory.v_category_en"
|
||||
sort_type="weekly"
|
||||
d_key="key" d_val="Video" cache_life="3600"}
|
||||
<li>
|
||||
<a class="stui-vodlist__thumb lazyload-bg"
|
||||
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-src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}"
|
||||
style="background-image: url("/template/videolaoniu/images/pic.png");">
|
||||
<img class="lazyload-img" src="/template/videolaoniu/images/pic.png" style="display: none;"
|
||||
data-src="{site:cfg code='PUBLIC_COVER_DOMAIN' encode='false'/}{$Video.v_pic}"
|
||||
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看">
|
||||
<span class="play active hidden-xs"></span>
|
||||
<span class="pic-tag pic-tag-h">Top1</span>
|
||||
</a>
|
||||
</li>
|
||||
{/video:ranklist}
|
||||
</ul>
|
||||
<ul class="col-xs-wide-55 stui-vodlist__rank col-pd clearfix">
|
||||
{video:ranklist count="12"
|
||||
v_category_en="$arrChildrenCategory.v_category_en"
|
||||
sort_type="weekly"
|
||||
d_key="key" d_val="Video" cache_life="3600"}
|
||||
{include file="public/video-list-phb" start="80"/}
|
||||
{/video:ranklist}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-wide-6 col-xs-1 padding-0">
|
||||
<ul class="stui-vodlist clearfix cs-list-r">
|
||||
{video:list count="8" v_category_en="$arrChildrenCategory.v_category_en" sort_type="news" d_key="key"
|
||||
d_val="Video" cache_life="3600"}
|
||||
{include file="public/video-list-shu" start="27" col-md="4"/}
|
||||
{/video:list}
|
||||
</ul>
|
||||
<ul class="stui-vodlist__text col-pd hidden-xs clearfix">
|
||||
{video:list count="12" v_category_en="$arrChildrenCategory.v_category_en" sort_type="news" d_key="key"
|
||||
d_val="Video" cache_life="3600"}
|
||||
{include file="public/video-list-text" start="10" /}
|
||||
{/video:list}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_ft top-line visible-xs clearfix"><a class="text-muted"
|
||||
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"}'>
|
||||
查看更多{$val.v_category}<i class="icon iconfont icon-more"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
{assign name="cfg" value="$TpStyle.template_cfg.list_layout[$topModule]"}
|
||||
|
||||
{assign name="limit" value="$cfg['layout']['max_items']"}
|
||||
|
||||
{if $topModule == 'rank'}
|
||||
{video:ranklistexp count="$limit" sort_type="weekly" d_key="key" d_val="Video" cache_life="3600" v_parent_category_en="$Request.route.strParentCategory"
|
||||
export_name="__LIST__" /}
|
||||
|
||||
{else/}
|
||||
{video:listexp count="$limit" sort_type="$topModule" d_key="key" d_val="Video" cache_life="3600" v_parent_category_en="$Request.route.strParentCategory"
|
||||
export_name="__LIST__" /}
|
||||
|
||||
{/foreach}
|
||||
{/if}
|
||||
|
||||
{assign name="title" value="$cfg.title_text"}
|
||||
|
||||
{include file="module/list/title/title_A" /}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.category_list_index"}
|
||||
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
<!-- ================= 二级分类区块 ================= -->
|
||||
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
|
||||
|
||||
{if $val.v_category_en == $Request.route.strParentCategory}
|
||||
|
||||
{foreach $val.children as $i => $sub}
|
||||
|
||||
{video:listexp count="12"
|
||||
v_parent_category_en="$Request.route.strParentCategory"
|
||||
v_category_en="$sub.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="3600"
|
||||
export_name="__LIST__" /}
|
||||
|
||||
{php}
|
||||
// 1️⃣ 生成该二级分类的 section cfg(冻结)
|
||||
$sectionCfg = \app\common\helper\SiteStyle::buildCategorySectionCfg(
|
||||
$TpStyle['template_cfg'],
|
||||
$sub['v_category_en'],
|
||||
$i
|
||||
);
|
||||
|
||||
// 2️⃣ 数据源(按二级分类变量名取)
|
||||
$listVar = 'arrSubPreview_' . $sub['v_category_en'];
|
||||
// $__LIST__ = $listVar ?? [];
|
||||
//$__LIST__ = $arrVideoNewest ?? [];
|
||||
|
||||
// 3️⃣ Title(二级分类固定 F)
|
||||
$title = [
|
||||
'primary' => $sub['v_category'],
|
||||
'secondary' => '精选推荐',
|
||||
];
|
||||
|
||||
// 4️⃣ 更多链接
|
||||
$moreUrl = '/videotype-dian-ying/xi-ju-pian-all-all-all/all-page1';
|
||||
{/php}
|
||||
|
||||
<section class="category-sub-block">
|
||||
|
||||
<!-- ===== Title(F)===== -->
|
||||
{include file="module/list/title/title_F" /}
|
||||
|
||||
<!-- ===== Shell + Item ===== -->
|
||||
{assign name="cfg" value="$sectionCfg"}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.category_list_index"}
|
||||
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
</section>
|
||||
|
||||
{/foreach}
|
||||
{/if}
|
||||
{/video:categorytype}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</main>
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="customize"}
|
||||
|
||||
{/block}
|
||||
@@ -59,7 +59,7 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
"item": {
|
||||
"@type": "Movies",
|
||||
"name": "{$Video.v_name}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}',
|
||||
"description": "{$Video.v_description}",
|
||||
"actor": [
|
||||
{foreach $Video.v_actor as $strActorKey=>$strActor }
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
|
||||
{block name="get-data"}
|
||||
|
||||
{site:grm page_code="h5_rank_type" diff="0" num="100" g_key="arrGrm" /}
|
||||
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="title"}{site:replace code="VIDEO@GETVIDEORANKINDEX@TITLE"}{/block}
|
||||
@@ -14,68 +11,8 @@
|
||||
|
||||
{block name="head"}
|
||||
|
||||
{// 社交媒体标签}
|
||||
<meta property="og:title" content='{site:replace code="VIDEO@GETVIDEORANKINDEX@TITLE"}' />
|
||||
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEORANKINDEX@DESCRIPTION"}' />
|
||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
||||
<meta property="og:type" content="video.movie" />
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
[
|
||||
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "{$DomainModel->d_name} - 最新排行榜推荐",
|
||||
"url": "https://{$DomainModel->d_domain}",
|
||||
"headline": '{site:replace code="VIDEO@GETVIDEORANKINDEX@TITLE"}',
|
||||
"description": '{site:replace code="VIDEO@GETVIDEORANKINDEX@DESCRIPTION"}',
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}",
|
||||
"query-input": "required name=search_term_string"
|
||||
}
|
||||
"hasPart": [
|
||||
{video:ranklist count="5"
|
||||
sort_type="weekly"
|
||||
d_key="key" d_val="Video" cache_life="3600"}
|
||||
|
||||
{if $key < 10 }
|
||||
{
|
||||
"@type": "VideoObject",
|
||||
"name": "{$Video.v_name}",
|
||||
"description": "{$Video.v_description}",
|
||||
"thumbnailUrl": '{$Video.v_pic}',
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
},
|
||||
{/if}
|
||||
{/video:ranklist}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "首页",
|
||||
"item": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "排行榜首页",
|
||||
"item": "https://{$DomainModel->d_domain}{$strRankUrlTemp}"
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
@@ -91,79 +28,41 @@
|
||||
|
||||
{block name="main"}
|
||||
|
||||
<div class="container">
|
||||
<nav class="breadcrumb" aria-label="breadcrumb">
|
||||
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
|
||||
<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='{$strRankUrlTemp}' itemprop="item">
|
||||
<span itemprop="name">排行榜</span>
|
||||
</a>
|
||||
<meta itemprop="position" content="2" />
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
{assign name="cfg" value="$TpStyle.template_cfg.list_layout.rank_list_index"}
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.rank_list_index"}
|
||||
{assign name="rankModules" value="$TpStyle.template_cfg.pages.rank_home.modules"}
|
||||
{assign name="limit" value="$cfg['layout']['max_items']"}
|
||||
|
||||
<h1 class="view-title">
|
||||
{site:replace code="VIDEO@GETVIDEORANKINDEX@H1"}
|
||||
</h1>
|
||||
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKINDEX@TEXT"}</h4>
|
||||
<section class="{$TpStyle.dom_prefix}-rank-home">
|
||||
|
||||
<div class="row">
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box">
|
||||
<div class="stui-pannel_hd">
|
||||
<ul class="stui-screen__list type-slide bottom-line-dot clearfix">
|
||||
<li>
|
||||
<a class="text-muted">分类:</a>
|
||||
</li>
|
||||
|
||||
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
|
||||
<li
|
||||
class="{if $Request.route.strParentCategory == $val.v_category_en}active{/if} ">
|
||||
<a
|
||||
href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="daily" page="1"/}'>
|
||||
{$val.v_category}
|
||||
</a>
|
||||
</li>
|
||||
{/video:categorytype}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{video:ranksort d_key="key" d_val="val"}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ee356a layout-box">
|
||||
<div class="e3c2c3 row">
|
||||
{video:ranksort d_key="key" d_val="val"}
|
||||
<div class="fb44a5 col-md-wide-25 pt-xs-0 main-right " style="position:sticky;top:-10px;padding: 10px;background: #fff;">
|
||||
<div class="dfb7d2 pannel-box mt-xs-0 clearfix">
|
||||
<div class="e3a1c3 box-title "><span class="dea086 title-lb"></span>
|
||||
<h2>{$val}排行榜</h2>
|
||||
</div>
|
||||
<ul class="d6b451 txt-list txt-list-hot p-xs-0">
|
||||
{video:ranklist count="20"
|
||||
sort_type="weekly"
|
||||
d_key="key" d_val="Video" cache_life="3600"}
|
||||
{include file="public/video-list-phb" start="80"/}
|
||||
{/video:ranklist}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/video:ranksort}
|
||||
</div>
|
||||
</div>
|
||||
{video:ranklistexp count="$limit"
|
||||
sort_type="$key"
|
||||
d_key="key" d_val="Video" cache_life="3600" export_name="__LIST__" /}
|
||||
|
||||
</div>
|
||||
{php}
|
||||
|
||||
$title = [
|
||||
'primary' => $val.'排行榜',
|
||||
'secondary' => '',
|
||||
];
|
||||
|
||||
{/php}
|
||||
|
||||
{include file="module/list/title/_title_router" /}
|
||||
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
{/video:ranksort}
|
||||
|
||||
</section>
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
|
||||
{block name="customize"}
|
||||
|
||||
{/block}
|
||||
@@ -53,7 +53,7 @@ p_val="page_data" button_num="10" cache_life="3600" export_name="arrVideoRankLis
|
||||
"description": "{$Video.v_description}",
|
||||
"thumbnailUrl": '{$Video.v_pic}',
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}',
|
||||
},
|
||||
{/if}
|
||||
{/volist}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
{extend name="base" /}
|
||||
|
||||
{block name="get-data"}
|
||||
{video:pagerexp page="$Request.get.page" limit="12"
|
||||
{assign name="limit" value="$TpStyle.list_layout.search_list.layout.max_items"}
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.search_list"}
|
||||
|
||||
{video:pagerexp page="$Request.get.page" limit="$limit"
|
||||
key="$Request.get.keyword"
|
||||
d_key="d_key"
|
||||
d_val="Video"
|
||||
@@ -59,7 +62,7 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
"item": {
|
||||
"@type": "Movies",
|
||||
"name": "{$Video.v_name}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}',
|
||||
"description": "{$Video.v_description}",
|
||||
"actor": [
|
||||
{foreach $Video.v_actor as $strActorKey=>$strActor }
|
||||
@@ -96,25 +99,39 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
|
||||
{block name="main"}
|
||||
|
||||
{include file="header" /}
|
||||
{php}
|
||||
// 1. 读取冻结 cfg
|
||||
$cfg = $TpStyle['list_layout']['search_list'];
|
||||
$searchCfg = $TpStyle['template_cfg']['pages']['search']['top_block'];
|
||||
|
||||
<section class="section">
|
||||
<h2 class="page-title">搜索结果:{$wd}</h2>
|
||||
// 2. 构建标题(不随机)
|
||||
$title = [
|
||||
'primary' => '',
|
||||
'secondary' => '共 ' . $resData['p_data']['total'] . ' 部影片',
|
||||
];
|
||||
{/php}
|
||||
|
||||
<div class="grid">
|
||||
{volist name="list" id="vo"}
|
||||
<a class="card" href="/detail/{$vo.id}.html">
|
||||
<div class="card-img">
|
||||
<img src="{$vo.pic}">
|
||||
</div>
|
||||
<div class="card-title">{$vo.title}</div>
|
||||
</a>
|
||||
{/volist}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{include file="footer" /}
|
||||
|
||||
{include file="module/search/_search_header_router" /}
|
||||
|
||||
{// ===== Shell + Item ===== }
|
||||
{assign name="__LIST__" value="$resData.data"}
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
|
||||
{// ===== Pagination ===== }
|
||||
{php}
|
||||
$pagerArr = $resData['p_data']['pager'] ?? [];
|
||||
$page = $resData['p_data']['page'] ?? 1;
|
||||
$pages = $resData['p_data']['pages'] ?? 1;
|
||||
|
||||
// 从 cfg 取分页配置(你会在 SiteStyle 冻结下发)
|
||||
$pagerCfg = $TpStyle['template_cfg']['components']['pager'] ?? [];
|
||||
{/php}
|
||||
|
||||
|
||||
{include file="module/pager/_pager_router" /}
|
||||
|
||||
{/block}
|
||||
{block name="customize"}
|
||||
|
||||
@@ -1,219 +1,36 @@
|
||||
{extend name="base" /}
|
||||
|
||||
{block name="get-data"}
|
||||
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" v_fid="$Request.route.intVForgeId" /}
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" v_fid="$Request.route.intVForgeId" export_name="arrVideo"/}
|
||||
{elseif $Request.route.intVId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" /}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" export_name="arrVideo"/}
|
||||
{else}
|
||||
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" /}
|
||||
{/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="VIDEO@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="VIDEO@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="VIDEO@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}">
|
||||
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
<link rel="canonical"
|
||||
href='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
||||
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" export_name="arrVideo" /}
|
||||
{/if}
|
||||
|
||||
{// 结构化数据}
|
||||
<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}
|
||||
],
|
||||
{site:vciurl parent_category="$arrVideo.v_parent_category_en" export_name="strVciurl" /}
|
||||
{site:vclurl parent_category="$arrVideo.v_parent_category_en"
|
||||
category="$arrVideo.v_category_en"
|
||||
area="all" lang="all" year="all" order="all" page="1"
|
||||
export_name="strVclurl" /}
|
||||
|
||||
"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="strPageCode"}
|
||||
<?php $strPageCode = 'info'; ?>
|
||||
{/block}
|
||||
|
||||
{block name="main"}
|
||||
|
||||
<section class="detail">
|
||||
{assign name="pageCfg" value="$TpStyle.template_cfg.pages.detail"}
|
||||
|
||||
<div class="detail-head">
|
||||
<div class="detail-cover">
|
||||
<img src="{$info.pic}">
|
||||
</div>
|
||||
{php}
|
||||
$arrBreadcrumb = [
|
||||
['title'=>'首页','url'=>'/'],
|
||||
['title'=>$arrVideo['v_parent_category'],'url'=>$strVciurl],
|
||||
['title'=>$arrVideo['v_category'],'url'=>$strVclurl],
|
||||
];
|
||||
{/php}
|
||||
<!-- 播放页:$pageCfg = $TpStyle['template_cfg']['pages']['play']; -->
|
||||
|
||||
<div class="detail-info">
|
||||
<h1>{$info.title}</h1>
|
||||
<div class="detail-sub">{$info.year} · {$info.area} · {$info.type}</div>
|
||||
{include file="module/page/page_router" /}
|
||||
|
||||
<!-- 伪原创简介 -->
|
||||
<p class="detail-intro">
|
||||
{php}$desc = \app\common\helper\TextSpin::spin($info['intro'], $style['theme_id']);{/php}
|
||||
{$desc}
|
||||
</p>
|
||||
|
||||
<a class="btn" href="/play/{$info.id}-1-1.html">开始播放</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="sec-title">剧集列表</h3>
|
||||
<div class="episode-list">
|
||||
{volist name="episodes" id="vo"}
|
||||
<a href="/play/{$info.id}-{$vo.n}-1.html">第{$vo.n}集</a>
|
||||
{/volist}
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<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_year': `{$arrVideo['v_year']}`,
|
||||
|
||||
};
|
||||
var strPlayType = 'default'
|
||||
var boolIsPlayPage = false
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const trigger = document.querySelector('.check-desc-btn');
|
||||
if (!trigger) return; // 页面没有按钮就不继续
|
||||
|
||||
trigger.addEventListener('click', function () {
|
||||
const parent = trigger.closest('.lvshicms-vodlist__box') || trigger.parentElement;
|
||||
const description = parent.querySelector('p.v-description-centent');
|
||||
if (description) {
|
||||
description.classList.toggle('txt-hidden');
|
||||
const icon = trigger.querySelector('.iconfont');
|
||||
if (icon) {
|
||||
icon.classList.toggle('icon-down');
|
||||
icon.classList.toggle('icon-up');
|
||||
}
|
||||
trigger.setAttribute('aria-expanded', !description.classList.contains('txt-hidden'));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
{block name="customize"} {/block}
|
||||
@@ -1,191 +1,74 @@
|
||||
{extend name="base" /}
|
||||
|
||||
{block name="get-data"}
|
||||
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" /}
|
||||
{site:grm page_code="h5_video_info" diff="$arrVideo.v_id" num="120" g_key="arrGrm" /}
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="title"}
|
||||
{site:replace code="VIDEO@GETVIDEOPLAY@TITLE" diff="$Request.route.intVId" /}
|
||||
{/block}
|
||||
|
||||
{block name="keywords"}
|
||||
{site:replace code="VIDEO@GETVIDEOPLAY@KEYWORDS" diff="$Request.route.intVId"}
|
||||
{/block}
|
||||
|
||||
{block name="description"}
|
||||
{site:replace code="VIDEO@GETVIDEOPLAY@DESCRIPTION" diff="$Request.route.intVId"}
|
||||
{/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}">
|
||||
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
<link rel="canonical"
|
||||
href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" v_fid="$Request.route.intVForgeId" export_name="arrVideo"/}
|
||||
{elseif $Request.route.intVId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" export_name="arrVideo"/}
|
||||
{else}
|
||||
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" export_name="arrVideo" /}
|
||||
{/if}
|
||||
|
||||
{site:vciurl parent_category="$arrVideo.v_parent_category_en" export_name="strVciurl" /}
|
||||
{site:vclurl parent_category="$arrVideo.v_parent_category_en"
|
||||
category="$arrVideo.v_category_en"
|
||||
area="all" lang="all" year="all" order="all" page="1"
|
||||
export_name="strVclurl" /}
|
||||
|
||||
{// 结构化数据}
|
||||
<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"/}',
|
||||
|
||||
"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="head-css"}
|
||||
<link rel="stylesheet" href="/public/video/DPlayer.min.css">
|
||||
<style type="text/css">
|
||||
|
||||
</style>
|
||||
{/block}
|
||||
|
||||
|
||||
{block name='body-class'}video-play-page{/block}
|
||||
|
||||
{block name="strPageCode"}
|
||||
<?php $strPageCode = 'play'; ?>
|
||||
{/block}
|
||||
|
||||
{block name="main"}
|
||||
{assign name="pageCfg" value="$TpStyle.template_cfg.pages.play"}
|
||||
|
||||
<section class="play">
|
||||
<div class="player-box">
|
||||
{$player_code|raw}
|
||||
</div>
|
||||
{php}
|
||||
$arrBreadcrumb = [
|
||||
['title'=>'首页','url'=>'/'],
|
||||
['title'=>$arrVideo['v_parent_category'],'url'=>$strVciurl],
|
||||
['title'=>$arrVideo['v_category'],'url'=>$strVclurl],
|
||||
];
|
||||
{/php}
|
||||
<!-- 播放页:$pageCfg = $TpStyle['template_cfg']['pages']['play']; -->
|
||||
|
||||
<h3 class="sec-title">选集</h3>
|
||||
<div class="episode-list">
|
||||
{volist name="episodes" id="vo"}
|
||||
<a href="/play/{$info.id}-{$vo.n}-1.html" class="{eq name='now' value='$vo.n'}active{/eq}">
|
||||
第{$vo.n}集
|
||||
</a>
|
||||
{/volist}
|
||||
</div>
|
||||
</section>
|
||||
{include file="module/page/page_router" /}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
const strMaxPlayHeight = '600px'
|
||||
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']}`,
|
||||
|
||||
};
|
||||
var intPlayUrlIndex = '{$Request.route.intPlayIndex}'
|
||||
var strPlayType = '{$Request.route.strPlayType}'
|
||||
var intJumpTimeFirst = 1;
|
||||
var intJumpTimeTwoStart = 1;
|
||||
var intJumpTimeTwoEnd = 1;
|
||||
var arrPlayUrl = {$arrVideo.v_play_url | json_encode | raw};
|
||||
var strPlayUrl = ""
|
||||
var boolIsPlayPage = true
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<script>
|
||||
const strMaxPlayHeight = '480px'
|
||||
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']}`,
|
||||
|
||||
};
|
||||
var intPlayUrlIndex = '{$Request.route.intPlayIndex}'
|
||||
var strPlayType = '{$Request.route.strPlayType}'
|
||||
var intJumpTimeFirst = 1;
|
||||
var intJumpTimeTwoStart = 1;
|
||||
var intJumpTimeTwoEnd = 1;
|
||||
var arrPlayUrl = {$arrVideo.v_play_url|json_encode|raw} ;
|
||||
var strPlayUrl = ""
|
||||
var boolIsPlayPage = true
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="customize"}
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="footer-js"}
|
||||
<script type="text/javascript" src="/public/video/hls.min.js" defer></script>
|
||||
<script type="text/javascript" src="/public/video/DPlayer.min.js" defer></script>
|
||||
<!-- <script src="https://cdn.staticfile.org/jquery/3.7.1/jquery.min.js"></script> -->
|
||||
<script src="/public/jquery/jquery-3.7.1.min.js" type="module" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="/public/video/hls.min.js" ></script>
|
||||
<script type="text/javascript" src="/public/video/DPlayer.min.js" ></script>
|
||||
<script type="text/javascript" src="/static/js/player/dplayer.init.js" ></script>
|
||||
|
||||
{/block}
|
||||
Reference in New Issue
Block a user