添加新模板

This commit is contained in:
make
2025-12-02 13:16:21 +08:00
parent 66e0cc355a
commit 10d6acd627
41 changed files with 3163 additions and 2 deletions

View File

@@ -0,0 +1,135 @@
{extend name="base" /}
{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"
v_area_en="$Request.route.strArea"
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}
{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>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,257 @@
{extend name="base" /}
{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}
{block name="title"}{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}{/block}
{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>
{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(&quot;/template/videolaoniu/images/pic.png&quot;);">
<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>
{/foreach}
{/if}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,146 @@
{extend name="base" /}
{block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="12"
key="$Request.get.keyword"
d_key="d_key"
d_val="Video"
p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="0" num="30" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="VIDEO@GETSEARCHVIDEO@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@GETSEARCHVIDEO@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}{/block}
{block name="head"}
<meta property="og:title" content='{site:replace code="VIDEO@GETSEARCHVIDEO@TITLE"}'>
<meta property="og:description" content='{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}'>
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}'>
<meta property="og:type" content="website">
<meta property="og:site_name" content='{$DomainModel->d_name}'>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content='{site:replace code="VIDEO@GETSEARCHVIDEO@TITLE"}'>
<meta name="twitter:description" content='{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}'>
<meta name="twitter:image:alt" content="动作电影 搜索结果第1页">
{// 结构化数据}
<script type="application/ld+json">
[
{
"@type": "WebSite",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": "{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}",
"potentialAction": {
"@type": "SearchAction",
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}',
"query-input": "required name=search_term_string"
}
},
{
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - {$DomainModel->d_logo_text}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": '{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}',
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{volist name="resData.data" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem",
"position": {$key},
"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"/}',
"description": "{$Video.v_description}",
"actor": [
{foreach $Video.v_actor as $strActorKey=>$strActor }
{if $strActorKey < 5 }
{ "@type": "Person", "name": "{$strActor}" },
{/if}
{/foreach}
],
"numberOfEpisodes": {$Video.v_play_url|count},
"image": "{$Video.v_pic}",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{$Video.v_score}",
}
}
},
{/if}
{/volist}
]
}
}
]
</script>
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name="main"}
<div class="container">
<div class=" layout-box top-weizhi hidden-xs">
<label>当前位置:</label>
<a href="/">{$DomainModel->d_name}</a><i>&gt;</i><a href="/sitemap.html">网站地图</a>
</div>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<div class=" layout-box">
<div class="box-title">
<!-- <span class="title-lb"></span> -->
<h2>
<a class=" font16" href='{site:vciurl parent_category="$val.v_category_en" /}'>{$val.v_category}</a>
</h2>
<a class=" box-more pull-right" href='{site:vciurl parent_category="$val.v_category_en" /}' title="{$val.v_category}">
<span class=" iconfont icon-weizhi"></span>
更多
<i>&gt;
</i>
</a>
</div>
<div class=" sitemap">
<ul class=" clearfix">
<li class=" title"><span class=" text-color">类型</span></li>
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li>
<a target="_blank"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"}'
title="{$arrChildrenCategory.v_category}">
{$arrChildrenCategory.v_category}
</a>
</li>
{/foreach}
</ul>
</div>
</div>
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,169 @@
{extend name="base" /}
{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}
{block name="keywords"}{site:replace code="VIDEO@GETVIDEORANKINDEX@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@GETVIDEORANKINDEX@DESCRIPTION"}{/block}
{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}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name='body-class'}rank-index{/block}
{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>
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKINDEX@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKINDEX@TEXT"}</h4>
<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>
</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>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,203 @@
{extend name="base" /}
{block name="get-data"}
{video:ranklistexp page="1" limit="30"
v_parent_category_en="$Request.route.strParentCategory"
v_category_en="$Request.route.strCategory"
sort_type="$Request.route.strSortType"
d_key="key"
d_val="Video"
p_val="page_data" button_num="10" cache_life="3600" export_name="arrVideoRankList" /}
{site:grm page_code="h5_rank_list_type" diff="$Request.route.intPage" num="100" g_key="arrGrm" /}
{site:helper func="initVideoRankListTKD" /}
{/block}
{block name="title"}{site:replace code="VIDEO@GETVIDEORANKLIST@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@GETVIDEORANKLIST@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@GETVIDEORANKLIST@DESCRIPTION"}{/block}
{block name="head"}
{// 社交媒体标签}
<meta property="og:title" content='{site:replace code="VIDEO@GETVIDEORANKLIST@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEORANKLIST@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@GETVIDEORANKLIST@TITLE"}',
"description": '{site:replace code="VIDEO@GETVIDEORANKLIST@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="arrVideoRankList" id="Video" key="key"}
{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}
{/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}{$strRankUrlTemp}"
},
{
"@type": "ListItem",
"position": 3,
"name": "{site:getval code="strVideoParentCategoryName" /}{site:getval code="strVideoCategoryName" /}{site:getval code="strOrderName" /}排行榜",
"item": "https://{$DomainModel->d_domain}{site:vrlurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" sort_type="$Request.route.strSortType" page="1"/}"
}
]
},
]
</script>
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{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>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" sort_type="$Request.route.strSortType" page="1"/}'
itemprop="item">
<span itemprop="name">{site:getval code="strVideoParentCategoryName" /}{site:getval
code="strVideoCategoryName" /}{site:getval code="strOrderName" /}排行榜</span>
</a>
<meta itemprop="position" content="2" />
</li>
</ol>
</nav>
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKLIST@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKLIST@TEXT"}</h4>
<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>
<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"}
{if $val.v_category_en == $Request.route.strParentCategory}
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li class="{if $Request.route.strCategory == $arrChildrenCategory.v_category_en}active{/if}">
<a
href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" sort_type="$Request.route.strSortType" page="1"/}'>{$arrChildrenCategory.v_category}</a>
</li>
{/foreach}
{/if}
{/video:categorytype}
</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">
<ul class="nav nav-head">
{video:ranksort d_key="key" d_val="val"}
<li class="{if $Request.route.strSortType == $key}active{/if}">
<a href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" sort_type="$key" page="1"/}'
>
{$val}{site:getval code="strVideoParentCategoryName" /}
</a>
</li>
{/video:ranksort}
</ul>
</div>
</div>
<div class="stui-pannel_bd">
<ul class="stui-vodlist clearfix cs-list-r">
{foreach $arrVideoRankList as $key=>$Video}
{include file="public/video-list-shu" start="0" col-md="6"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,122 @@
{extend name="base" /}
{block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="12"
key="$Request.get.keyword"
d_key="d_key"
d_val="Video"
p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="0" num="30" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="VIDEO@GETSEARCHVIDEO@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@GETSEARCHVIDEO@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}{/block}
{block name="head"}
<meta property="og:title" content='{site:replace code="VIDEO@GETSEARCHVIDEO@TITLE"}'>
<meta property="og:description" content='{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}'>
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}'>
<meta property="og:type" content="website">
<meta property="og:site_name" content='{$DomainModel->d_name}'>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content='{site:replace code="VIDEO@GETSEARCHVIDEO@TITLE"}'>
<meta name="twitter:description" content='{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}'>
<meta name="twitter:image:alt" content="动作电影 搜索结果第1页">
{// 结构化数据}
<script type="application/ld+json">
[
{
"@type": "WebSite",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": "{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}",
"potentialAction": {
"@type": "SearchAction",
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}',
"query-input": "required name=search_term_string"
}
},
{
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - {$DomainModel->d_logo_text}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": '{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}',
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{volist name="resData.data" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem",
"position": {$key},
"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"/}',
"description": "{$Video.v_description}",
"actor": [
{foreach $Video.v_actor as $strActorKey=>$strActor }
{if $strActorKey < 5 }
{ "@type": "Person", "name": "{$strActor}" },
{/if}
{/foreach}
],
"numberOfEpisodes": {$Video.v_play_url|count},
"image": "{$Video.v_pic}",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{$Video.v_score}",
}
}
},
{/if}
{/volist}
]
}
}
]
</script>
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name="main"}
{include file="header" /}
<section class="section">
<h2 class="page-title">搜索结果:{$wd}</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>
</section>
{include file="footer" /}
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,219 @@
{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" /}
{elseif $Request.route.intVId}
{video:info v_id="$Request.route.intVId" v_key="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"/}'>
{/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}
],
"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">
<div class="detail-head">
<div class="detail-cover">
<img src="{$info.pic}">
</div>
<div class="detail-info">
<h1>{$info.title}</h1>
<div class="detail-sub">{$info.year} · {$info.area} · {$info.type}</div>
<!-- 伪原创简介 -->
<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}

View File

@@ -0,0 +1,191 @@
{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" /}'>
{/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"/}',
"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"}
<section class="play">
<div class="player-box">
{$player_code|raw}
</div>
<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>
<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>
{/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>
{/block}