This commit is contained in:
make
2025-05-06 00:38:52 +08:00
parent a687e7ea93
commit 1c23e3dc7a
69 changed files with 2525 additions and 1694 deletions

View File

@@ -447,9 +447,9 @@ foreach ($arrRoutes['prefixes'] as $platform => $prefixes) {
break;
case 'video_rank_index':
$strView = 'pc/getRank.html';
$strView = 'pc/getRankIndex.html';
if ($platform == 'h5') {
$strView = 'video/getRank.html';
$strView = 'video/getRankIndex.html';
}
//视频排行榜 首页
Route::get($strRoute, function () use ($strView) {

View File

@@ -31,7 +31,7 @@
</script>
</head>
<body>
<body class="{block name='body-class'}{/block}" id="{block name='body-id'}{/block}">
<header class="stui-header__top clearfix top-fixed headroom--top headroom--not-bottom" id="header-top">
<div class="container">
<div class="row">
@@ -114,14 +114,14 @@
{include file="public/footer" /}
{block name="customize"}
{/block}
{block name="customize"}{/block}
<script>
const strPushApi = `{site:cfg code="PUSH_API_DOMAIN" encode="false"/}`;
</script>
<script src="/public/jquery/jquery-3.7.1.min.js" type="module" charset="utf-8"></script>
{block name="footer-js"}{/block}
<script type="text/javascript"
src='/public/video/common.js?v={site:cfg code="STATIC_FILE_VERSION" encode="false"/}'></script>

View File

@@ -31,7 +31,7 @@
"description": "{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}",
"potentialAction": {
"@type": "SearchAction",
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}",
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}',
"query-input": "required name=search_term_string"
}
@@ -65,7 +65,7 @@
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem{$Video.v_id}",
"@type": "ListItem",
"position": {$key},
"item": {
"@type": "TVSeries",

View File

@@ -43,15 +43,15 @@
<i class="icon iconfont icon-less"></i>
</a>
</li>
<li class="hidden-xs">
<!-- <li class="hidden-xs">
<a style="color: rgb(155, 154, 207);" class="copylink" href="javascript:;">
<i class="icon iconfont icon-share"></i>
</a>
</li>
<li class="visible-xs">
</li> -->
<!-- <li class="visible-xs">
<a style="color: rgb(124, 1, 82);" class="open-share" href="javascript:;">
<i class="icon iconfont icon-share"></i>
</a>
</li>
</li> -->
</ul>

View File

@@ -14,38 +14,94 @@ d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export
{site:grm page_code="h5_category_list_type" diff="0" 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}" />
<meta property="og:type" content="website" />
{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": "WebSite",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}",
"headline": '{site:replace code="VIDEO@GETCATEGORY@TITLE"}',
"description": '{site:replace code="VIDEO@GETCATEGORY@DESCRIPTION"}',
"datePublished": "{:date('Y-m-d')}"
"potentialAction": {
"@type": "SearchAction",
"target": 'https://{$DomainModel->d_domain}',
"query-input": "required name=search_term_string"
}
}
[
{
"@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 prent_category="$Request.route.strParentCategory" /}"
},
{
"@type": "ListItem",
"position": 3,
"name": "分类列表",
"item": "https://{$DomainModel->d_domain}{site:vclurl prent_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>
@@ -56,14 +112,7 @@ d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export
<div class="container">
<!-- <p>route: /vodtype-:strCategory/:strParentCategory-:strArea-:strLang-:strYear-:strOrder-page:intPage </p>
<p>strParentCategory {$Request.route.strParentCategory}</p>
<p>strCategory {$Request.route.strCategory}</p>
<p>strLang {$Request.route.strLang}</p>
<p>strArea {$Request.route.strArea}</p>
<p>strYear {$Request.route.strYear}</p>
<p>strOrder {$Request.route.strOrder}</p>
<p>intPage :{$Request.route.intPage}</p> -->
<h1 class="view-title">
{site:replace code="VIDEO@GETCATEGORY@H1"}
@@ -77,8 +126,18 @@ d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img
src="/template/videodadi/icon/icon_27.png">{site:getval code="strVideoClassName" /}筛选</h3>
src="/template/videodadi/icon/icon_27.png">{site:getval code="strVideoParentCategoryName" /}筛选</h3>
</div>
<ul class="stui-screen__list type-slide bottom-line-dot clearfix">
<li><span class="text-muted">按分类</span></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:vclurl prent_category="$val.v_category_en" category="all" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}' class="text-muted">{$val.v_category}</a>
</li>
{/video:categorytype}
</ul>
<ul class="stui-screen__list type-slide bottom-line-dot clearfix">
<li><span class="text-muted">按类型</span></li>
@@ -146,7 +205,7 @@ d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export
<div class="stui-pannel_bd">
<ul class="stui-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" /}
{include file="public/video-list-shu" start="0"/}
{/foreach}
</ul>
</div>
@@ -179,21 +238,19 @@ d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export
{/switch}
{/volist}
</ul>
</div>
<div class="col-lg-wide-25 col-xs-1 stui-pannel-side hidden-sm hidden-xs padding-0">
<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">
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png">电影周榜单</h3>
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png">{site:getval code="strVideoParentCategoryName" /}周榜单</h3>
</div>
</div>
<div class="stui-pannel_bd">
<ul class="stui-vodlist__text col-pd clearfix">
{video:ranklist count="10" sort_type="weekly" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{video:ranklist count="20" v_parent_category_en="$Request.route.strParentCategory" sort_type="weekly" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="31"/}
{/video:ranklist}
</ul>
@@ -204,13 +261,13 @@ d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export
<div class="stui-pannel-box">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png">电影月榜单</h3>
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png">{site:getval code="strVideoParentCategoryName" /}月榜单</h3>
</div>
</div>
<div class="stui-pannel_bd">
<ul class="stui-vodlist__text col-pd clearfix">
{video:ranklist count="10" sort_type="monthly" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{video:ranklist count="20" v_parent_category_en="$Request.route.strParentCategory" sort_type="monthly" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="51"/}
{/video:ranklist}
</ul>
</div>

View File

@@ -4,6 +4,8 @@
{site:grm page_code="h5_category_type" diff="0" num="100" g_key="arrGrm" /}
{site:helper func="initVideoCategoryTypeTKD" /}
{/block}
{block name="title"}{site:replace code="VIDEO@GETCATEGORYINDEX@TITLE"}{/block}
@@ -15,7 +17,25 @@
<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}" />
<meta property="og:type" content="website" />
{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">
@@ -24,7 +44,7 @@
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - 最新电影推荐",
"name": "{$DomainModel->d_name} - 最新{site:getval code="strVideoParentCategoryName" /}推荐",
"url": "https://{$DomainModel->d_domain}",
"description": "{site:replace code="VIDEO@GETCATEGORYINDEX@DESCRIPTION"}",
"potentialAction": {
@@ -43,8 +63,9 @@
"@type": "VideoObject",
"name": "{$Video.v_name}",
"description": "{$Video.v_description}",
"thumbnailUrl": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
"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}
@@ -69,13 +90,9 @@
}
]
},
]
</script>
{/block}
{block name="head-css"}{/block}
@@ -93,80 +110,111 @@
</div>
<div class="row">
{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">
<div class="stui-pannel-box clearfix">
<div class="stui-pannel_bd clearfix">
<div class="col-lg-wide-75 col-xs-1 padding-0">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<a class="more text-muted pull-right"
href='{site:vclurl prent_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>
<h3 class="title">
<img src="/template/videodadi/icon/icon_27.png"><a
style="color: rgb(52, 99, 240);" href='{site:vclurl prent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"/}'>
{site:getval code="strYear" /}最新{$arrChildrenCategory.v_category}推荐 - {$DomainModel->d_name}
</a>
</h3>
</div>
</div>
<ul class="stui-vodlist clearfix">
{video:list count="2"
v_category_en="$arrChildrenCategory.v_category_en"
v_lang_en="all"
v_area_en="all"
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="0"/}
{/video:list}
</ul>
<ul class="stui-vodlist__text col-pd clearfix hidden-xs">
{video:list count="2"
v_category_en="$arrChildrenCategory.v_category_en"
v_lang_en="all"
v_area_en="all"
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-text2" start="0"/}
{/video:list}
</ul>
</div>
<div class="col-lg-wide-25 hidden-md hidden-sm hidden-xs">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png"><a
style="color: rgb(57, 129, 89);" href="">{$arrChildrenCategory.v_category}周榜单</a>
</h3>
</div>
</div>
<ul class="stui-vodlist__text active col-pd clearfix">
{video:ranklist count="2"
v_category_en="$arrChildrenCategory.v_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="0"/}
{/video:ranklist}
</ul>
{if $val.v_category_en == $Request.route.strParentCategory}
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<div class="stui-pannel stui-pannel-bg clearfix">
<div class="stui-pannel-box clearfix">
<div class="stui-pannel_bd clearfix">
<div class="col-lg-wide-75 col-xs-1 padding-0">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<a class="more text-muted pull-right"
href='{site:vclurl prent_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>
<h3 class="title">
<img src="/template/videodadi/icon/icon_27.png"><a style="color: rgb(52, 99, 240);"
href='{site:vclurl prent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"/}'>
{site:getval code="strYear" /}最新{$arrChildrenCategory.v_category}推荐 -
{$DomainModel->d_name}
</a>
</h3>
</div>
</div>
<ul class="stui-vodlist clearfix">
{video:list count="12"
v_category_en="$arrChildrenCategory.v_category_en"
v_lang_en="all"
v_area_en="all"
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="0"/}
{/video:list}
</ul>
<ul class="stui-vodlist__text col-pd clearfix hidden-xs">
{video:list count="12"
v_category_en="$arrChildrenCategory.v_category_en"
v_lang_en="all"
v_area_en="all"
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-text2" start="13"/}
{/video:list}
</ul>
</div>
<div class="col-lg-wide-25 hidden-md hidden-sm hidden-xs">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png"><a
style="color: rgb(57, 129, 89);"
href='{site:vrlurl parent_category="$val.v_category_en" category="$arrChildrenCategory.v_category_en" sort_type="weekly" page="1"/}'>{$arrChildrenCategory.v_category}周榜单</a>
</h3>
</div>
</div>
<ul class="stui-vodlist__text active col-pd clearfix">
{video:ranklist count="18"
v_category_en="$arrChildrenCategory.v_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="27"/}
{/video:ranklist}
</ul>
</div>
</div>
{/foreach}
{/if}
</div>
</div>
{/foreach}
{/if}
{/video:categorytype}
<div class="stui-pannel stui-pannel-bg clearfix">
<div class="stui-pannel-box clearfix">
{video:ranksort d_key="key" d_val="val"}
<div class="col-lg-4 col-md-3 col-sm-2 col-xs-1">
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videodadi/icon/icon_12.png">{site:getval code="strVideoParentCategoryName" /}{$val}排行榜</h3>
</div>
</div>
<div class="stui-pannel_bd clearfix">
<ul class="stui-vodlist__text active col-pd clearfix">
{video:ranklist count="18"
v_parent_category_en="$Request.route.strParentCategory"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="50" /}
{/video:ranklist}
</ul>
</div>
</div>
{/video:ranksort}
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}

View File

@@ -2,50 +2,85 @@
{block name="get-data"}
{video:pagerexp page="1" limit="30"
v_class="$Request.route.strClass"
d_key="d_key"
d_val="Video"
p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" export_name="resData" /}
{site:grm page_code="h5_rank_type" diff="0" num="100" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="VIDEO@GETVIDEORANK@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@GETVIDEORANK@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@GETVIDEORANK@DESCRIPTION"}{/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@GETVIDEORANK@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEORANK@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="website" />
<!-- 结构化数据 -->
{// 社交媒体标签}
<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": "WebSite",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}",
"headline": '{site:replace code="VIDEO@GETVIDEORANK@TITLE"}',
"description": '{site:replace code="VIDEO@GETVIDEORANK@DESCRIPTION"}',
"datePublished": "{:date('Y-m-d')}"
"potentialAction": {
"@type": "SearchAction",
"target": 'https://{$DomainModel->d_domain}',
"query-input": "required name=search_term_string"
}
}
[
{
"@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="86400"}
{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}{$strRankUrlTemp}"
}
]
},
]
</script>
{/block}
{block name="head-css"}
<link rel="canonical" href="https://{$Request.route.strSiteDomain}/rank/{$Request.route.strVideoClassName}/{$Request.route.strOrderName}">
<link rel="canonical" href="https://{$Request.route.strSiteDomain}/rank/{$Request.route.strVideoParentCategoryName}/{$Request.route.strOrderName}">
{/block}
{block name="head-js"}
@@ -56,9 +91,9 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
<div class="container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANK@H1"}
{site:replace code="VIDEO@GETVIDEORANKINDEX@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANK@TEXT"}</h4>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKINDEX@TEXT"}</h4>
<div class="row">
@@ -107,7 +142,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
{video:ranklist count="20"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{include file="public/video-list-phb" start="0" /}
{/video:ranklist}
</ul>
</div>
@@ -115,7 +150,6 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
{/video:ranksort}
</div>
</div>

View File

@@ -2,50 +2,88 @@
{block name="get-data"}
{video:pagerexp page="1" limit="30"
v_class="$Request.route.strClass"
d_key="d_key"
{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="86400" func="generateVideoPager" export_name="resData" /}
p_val="page_data" button_num="10" cache_life="86400" export_name="arrVideoRankList" /}
{site:grm page_code="h5_rank_list_type" diff="0" num="100" g_key="arrGrm" /}
{site:helper func="initVideoRankListTKD" /}
{/block}
{block name="title"}{site:replace code="VIDEO@GETVIDEORANK@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@GETVIDEORANK@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@GETVIDEORANK@DESCRIPTION"}{/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@GETVIDEORANK@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEORANK@DESCRIPTION"}' />
{// 社交媒体标签}
<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="website" />
<meta property="og:type" content="video.movie" />
<!-- 结构化数据 -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "{$DomainModel->d_name}",
"url": "https://{$DomainModel->d_domain}",
"headline": '{site:replace code="VIDEO@GETVIDEORANK@TITLE"}',
"description": '{site:replace code="VIDEO@GETVIDEORANK@DESCRIPTION"}',
"datePublished": "{:date('Y-m-d')}"
"potentialAction": {
"@type": "SearchAction",
"target": 'https://{$DomainModel->d_domain}',
"query-input": "required name=search_term_string"
}
}
[
{
"@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 < 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}{$strRankUrlTemp}"
}
]
},
]
</script>
{/block}
{block name="head-css"}
<link rel="canonical" href="https://{$Request.route.strSiteDomain}/rank/{$Request.route.strVideoClassName}/{$Request.route.strOrderName}">
{/block}
{block name="head-js"}
@@ -54,9 +92,9 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
{block name="main"}
<div class="container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANK@H1"}
{site:replace code="VIDEO@GETVIDEORANKLIST@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANK@TEXT"}</h4>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKLIST@TEXT"}</h4>
<div class="row">
<div class="col-lg-wide-75 col-xs-1 padding-0">
<div class="stui-pannel stui-pannel-bg clearfix">
@@ -64,7 +102,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
<div class="stui-pannel_hd">
<div class="stui-pannel__head active bottom-line clearfix">
<h3 class="title"><img
src="/template/videodadi/icon/icon_27.png">{site:getval code="strVideoClassName" /}筛选</h3>
src="/template/videodadi/icon/icon_27.png">{site:getval code="strVideoParentCategoryName" /}筛选</h3>
</div>
<ul class="stui-screen__list type-slide bottom-line-dot clearfix">
@@ -73,12 +111,12 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
<li
class='{if empty( $Request.route.strParentCategory) || $Request.route.strParentCategory == "" || $Request.route.strParentCategory == "all"}active{/if}'>
<a
href='{site:vrlurl parent_category="all" category="all" sort_type="Request.route.strSortType" page="1"/}'>全部</a>
href='{site:vrlurl parent_category="all" category="all" sort_type="$Request.route.strSortType" page="1"/}'>全部</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="Request.route.strSortType" page="1"/}'
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="$Request.route.strSortType" page="1"/}'
class="text-muted">{$val.v_category}</a>
</li>
{/video:categorytype}
@@ -89,14 +127,14 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
<li><span class="text-muted">按类型</span></li>
<li
class='{if empty( $Request.route.strCategory) || $Request.route.strCategory == "" || $Request.route.strCategory == "all"}active{/if}'>
<a href='{site:vrlurl parent_category="all" category="all" sort_type="Request.route.strSortType" page="1"/}'>全部</a>
<a href='{site:vrlurl parent_category="all" category="all" sort_type="$Request.route.strSortType" page="1"/}'>全部</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"/}' class="text-muted">{$arrChildrenCategory.v_category}</a>
<a href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" sort_type="$Request.route.strSortType" page="1"/}' class="text-muted">{$arrChildrenCategory.v_category}</a>
</li>
{/foreach}
{/if}
@@ -126,8 +164,8 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
</div>
<div class="stui-pannel_bd">
<ul class="stui-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" /}
{foreach $arrVideoRankList as $key=>$Video}
{include file="public/video-list-shu" start="0" /}
{/foreach}
</ul>
</div>
@@ -150,7 +188,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
v_parent_category_en="dian-ying"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{include file="public/video-list-phb" start="0" /}
{/video:ranklist}
</ul>
@@ -170,7 +208,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateVideoPager" e
v_parent_category_en="dian-shi-ju"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{include file="public/video-list-phb" start="0" /}
{/video:ranklist}
</ul>
</div>

View File

@@ -15,30 +15,74 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager"
{block name="description"}{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}{/block}
{block name="head"}
<meta property="og:title" content="动作电影 - 第1页 - 大地影视搜索">
<meta property="og:description" content="大地影视搜索动作电影 第1页最新视频免费观看免费视频,热门影视,视频网站访问video1.com发现更多">
<meta property="og:image" content="https://video1.com/img/search.webp">
<meta property="og:url" content="https://video1.com/search?q=动作电影&page=1">
<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="大地影视">
<meta property="og:site_name" content='{$DomainModel->d_name}'>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="动作电影 第1页 - 大地影视">
<meta name="twitter:description" content="搜索动作电影 第1页大地影视提供最新视频免费视频,热门影视,视频网站立即访问video1.com">
<meta name="twitter:image" content="https://video1.com/img/search.webp">
<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">
[
{
"@context": "https://schema.org",
"@type": "SearchResultsPage",
"name": "{strSearchKeywords} 第{intPage}页",
"url": "https://{strSiteDomain}/search?q={strSearchKeywords}&page={intPage}",
"description": "{strSiteName}搜索{strSearchKeywords} 第{intPage}页,最新视频免费观看"
"@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>
]
</script>
{/block}
@@ -72,6 +116,9 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager"
{foreach $resData.data as $key=>$Video}
<li class="active clearfix">
{if !empty($arrGrm[$key])}
{$arrGrm[$key]|raw}
{/if}
<div class="thumb"><a
class="v-thumb stui-vodlist__thumb lazyload-bg"
@@ -166,7 +213,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager"
v_parent_category_en="dian-ying"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{include file="public/video-list-phb" start="11"/}
{/video:ranklist}
@@ -187,7 +234,7 @@ p_val="page_data" button_num="10" cache_life="86400" func="generateSearchPager"
v_parent_category_en="dian-shi-ju"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{include file="public/video-list-phb" start="31"/}
{/video:ranklist}
</ul>

View File

@@ -3,9 +3,9 @@
{block name="get-data"}
{if $Request.route.intVId}
{video:info v_id="$Request.route.intVId" v_key="arrVideo" /}
{video:info v_id="$Request.route.intVId" v_key="arrVideo" /}
{else}
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" n_forge_id="0" /}
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" n_forge_id="0" /}
{/if}
{site:grm page_code="h5_video_info" diff="$arrVideo.v_id" num="120" g_key="arrGrm" /}
@@ -38,36 +38,93 @@
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content='{site:replace code="VIDEO@GETVIDEOINFO@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="website" />
<!-- 结构化数据 -->
{// Open Graph 协议用于Facebook、LinkedIn等}
<meta property="og:title" content='{site:replace code="VIDEO@GETVIDEOINFO@TITLE"}'>
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION"}'>
{switch $arrVideo.v_parent_category_en }
{case 'dian-ying' }
<meta property="og:type" content="video.movie" />
{/case}
{case 'dian-shi-ju' }
<meta property="og:type" content="video.episode" />
{/case}
{case 'zong-yi' }
<meta property="og:type" content="video.tv_show" />
{/case}
{case 'dong-man' }
<meta property="og:type" content="video.episode" />
{/case}
{case 'duan-ju-da-quan' }
<meta property="og:type" content="video.episode" />
{/case}
{default /}
<meta property="og:type" content="video.movie" />
{/switch}
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
<meta property="og:image" content="{$arrVideo.v_pic}">
<meta property="og:site_name" content="{$DomainModel->d_name}">
<meta property="og:video:type" content="video/m3u8">
{// Twitter Card用于Twitter/X}
<meta name="twitter:card" content="player">
<meta name="twitter:title" content='{site:replace code="VIDEO@GETVIDEOINFO@TITLE"}'>
<meta name="twitter:description" content='{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION"}'>
<meta name="twitter:image" content="{$arrVideo.v_pic}">
{// 结构化数据}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{strVideoName}",
"description": "{strVideoDescription}",
"director": {
"@type": "Person",
"name": "{strVideoDirector}"
},
"actor": {
"@type": "Person",
"name": "{strVideoActor}"
},
"thumbnailUrl": "",
"url": "",
"inLanguage": "{strLangName}",
"contentLocation": {
"@type": "Place",
"name": "{strAreaName}"
}
{
"@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>
}
</script>
{/block}
@@ -75,9 +132,9 @@
{block name="main"}
<div class="container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOINFO@H1"}
{site:replace code="VIDEO@GETVIDEOINFO@H1" diff="$arrVideo.v_id"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOINFO@TEXT"}</h4>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOINFO@TEXT" diff="$arrVideo.v_id"}</h4>
<div class="row">
<div class="col-lg-wide-75 col-xs-1 padding-0">
@@ -88,9 +145,11 @@
当前位置
<i class="icon iconfont icon-more"></i>
</span>
<a style="color: rgb(178, 251, 104)" href="/">首页</a>
<a class="nav-item-a" href="/">首页</a>
<i class="icon iconfont icon-more"></i>
<a style="color: rgb(226, 55, 35)" href="">{$arrVideo.v_category}</a>
<a class="nav-item-a" href='{site:vciurl prent_category="$arrVideo.v_parent_category_en" /}'>{$arrVideo.v_parent_category}</a>
<i class="icon iconfont icon-more"></i>
<a class="nav-item-a" href='{site:vclurl prent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_category_en" area="all" lang="all" year="all" order="all" page="1"}'>{$arrVideo.v_category}</a>
<i class="icon iconfont icon-more"></i>
<span class="text-muted">{$arrVideo.v_name}</span>
</div>
@@ -106,16 +165,16 @@
<div class="stui-content__detail">
<h1 class="title">
<h2 class="title">
《{$arrVideo.v_name}》<span class="score text-red">{$arrVideo.v_score}</span>
</h1>
</h2>
<p class="data">
<span class="text-muted">类型:</span>
<a href='{site:vsurl key="$arrVideo.v_category" p="1"/}'>{$arrVideo.v_category}</a>
&nbsp;
<span class="split-line"></span>
<span class="text-muted hidden-xs">地区:</span>
{volist name='$arrVideo.v_actor' id='vo' key='index'}
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a style="color: rgb(240, 3, 132)" href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
@@ -143,9 +202,8 @@
<span class="text-muted">更新:</span>{$arrVideo.v_publish_date}
</p>
<p class="desc hidden-xs">
<span class="left text-muted">简介:</span>  
{$arrVideo.v_description|raw}
<a>
<span class="left text-muted">简介:{$arrVideo.v_description|raw}</span>
<a href="#desc">
详情
<i class="icon iconfont icon-moreunfold"></i>
</a>
@@ -249,7 +307,7 @@
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-text2" start="0"/}
{include file="public/video-list-text2" start="13"/}
{/video:list}
</ul>
@@ -269,11 +327,11 @@
</div>
<div class="stui-pannel_bd">
<ul class="stui-vodlist__text col-pd clearfix">
{video:ranklist count="12"
{video:ranklist count="18"
v_parent_category_en="$arrVideo.v_parent_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="0"/}
{include file="public/video-list-phb" start="25"/}
{/video:ranklist}
</ul>
</div>
@@ -290,11 +348,11 @@
</div>
<div class="stui-pannel_bd">
<ul class="stui-vodlist__text col-pd clearfix">
{video:ranklist count="12"
{video:ranklist count="18"
v_parent_category_en="$arrVideo.v_parent_category_en"
sort_type="monthly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="0"/}
{include file="public/video-list-phb" start="45"/}
{/video:ranklist}
</ul>

View File

@@ -1,122 +1,125 @@
{extend name="base" /}
{block name="get-data"}
{if $Request.route.intVId}
{video:info v_id="$Request.route.intVId" n_key="arrVideo" n_forge_id="$Request.route.intForgeId" /}
{else}
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" n_forge_id="0" /}
{/if}
{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"}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@TITLE"}
{else}
{site:replace code="VIDEO@GETVIDEOINFO@TITLE" diff="$Request.route.intVId" /}
{/if}
{site:replace code="VIDEO@GETVIDEOPLAY@TITLE" diff="$Request.route.intVId" /}
{/block}
{block name="keywords"}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@KEYWORDS"}
{else}
{site:replace code="VIDEO@GETVIDEOINFO@KEYWORDS" diff="$Request.route.intVId"}
{/if}
{site:replace code="VIDEO@GETVIDEOPLAY@KEYWORDS" diff="$Request.route.intVId"}
{/block}
{block name="description"}
{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}
{site:replace code="INDEX@INDEX@DESCRIPTION"}
{else}
{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION" diff="$Request.route.intVId"}
{/if}
{site:replace code="VIDEO@GETVIDEOPLAY@DESCRIPTION" diff="$Request.route.intVId"}
{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content='{site:replace code="VIDEO@GETVIDEOPLAY@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEOPLAY@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="website" />
<!-- 结构化数据 -->
{// Open Graph 协议用于Facebook、LinkedIn等}
<meta property="og:title" content='{site:replace code="VIDEO@GETVIDEOINFO@TITLE"}'>
<meta property="og:description" content='{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION"}'>
{switch $arrVideo.v_parent_category_en }
{case 'dian-ying' }
<meta property="og:type" content="video.movie" />
{/case}
{case 'dian-shi-ju' }
<meta property="og:type" content="video.episode" />
{/case}
{case 'zong-yi' }
<meta property="og:type" content="video.tv_show" />
{/case}
{case 'dong-man' }
<meta property="og:type" content="video.episode" />
{/case}
{case 'duan-ju-da-quan' }
<meta property="og:type" content="video.episode" />
{/case}
{default /}
<meta property="og:type" content="video.movie" />
{/switch}
<meta property="og:url" content='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
<meta property="og:image" content="{$arrVideo.v_pic}">
<meta property="og:site_name" content="{$DomainModel->d_name}">
<meta property="og:video:type" content="video/m3u8">
{// Twitter Card用于Twitter/X}
<meta name="twitter:card" content="player">
<meta name="twitter:title" content='{site:replace code="VIDEO@GETVIDEOINFO@TITLE"}'>
<meta name="twitter:description" content='{site:replace code="VIDEO@GETVIDEOINFO@DESCRIPTION"}'>
<meta name="twitter:image" content="{$arrVideo.v_pic}">
{// 结构化数据}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{strVideoName}",
"description": "{strVideoDescription}",
"director": {
"@type": "Person",
"name": "{strVideoDirector}"
},
"actor": {
"@type": "Person",
"name": "{strVideoActor}"
},
"thumbnailUrl": "https://{strSiteDomain}/img/video/{strYear}/{strVideoName}.webp",
"url": "https://{strSiteDomain}/voddetail/{strVideoName}",
"inLanguage": "{strLangName}",
"contentLocation": {
"@type": "Place",
"name": "{strAreaName}"
}
{
"@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>
}
</script>
{/block}
{block name="head-css"}
<link rel="stylesheet" href="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/dplayer/1.24.0/DPlayer.min.css">
<style type="text/css">
.stui-player__head {
display: none;
}
.dplayer-video-wrap {
max-height: 480px;
}
video {
max-height: 480px;
}
@media (max-width:767px) {
body {
padding-top: 0;
}
.stui-header__top {
display: none;
}
.stui-player__head {
display: block;
padding: 15px;
background-color: #333;
color: #fff;
}
.stui-player__head a {
color: #fff;
}
}
</style>
{/block}
{block name="head-js"}
<script type="text/javascript"
src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/hls.js/1.1.5-0.canary.8257/hls.min.js" defer></script>
<script type="text/javascript" src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/dplayer/1.26.0/DPlayer.min.js"
defer></script>
{/block}
{block name='body-class'}video-play-page{/block}
{block name="main"}
<div class="container">
@@ -268,7 +271,7 @@
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" /}
{include file="public/video-list-shu" start="0"/}
{/video:list}
</ul>
@@ -280,7 +283,7 @@
v_year="all"
sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
{include file="public/video-list-text2" /}
{include file="public/video-list-text2" start="0" /}
{/video:list}
</ul>
</div>
@@ -303,7 +306,7 @@
v_parent_category_en="$arrVideo.v_parent_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{include file="public/video-list-phb" start="0"/}
{/video:ranklist}
</ul>
</div>
@@ -323,7 +326,7 @@
v_parent_category_en="$arrVideo.v_parent_category_en"
sort_type="monthly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" /}
{include file="public/video-list-phb" start="0"/}
{/video:ranklist}
</ul>
</div>
@@ -346,20 +349,6 @@
'v_category': `{$arrVideo['v_category']}`,
};
</script>
{/block}
{block name="customize"}
<script>
function findFirstUrl(obj) {
for (const key in obj) {
const data = obj[key];
if (Array.isArray(data) && data.length > 0 && data[0].url) {
return data[0].url;
}
}
return null;
}
var intPlayUrlIndex = '{$Request.route.intPlayIndex}'
var strPlayType = '{$Request.route.strPlayType}'
var intJumpTimeFirst = 1;
@@ -367,83 +356,20 @@
var intJumpTimeTwoEnd = 1;
var arrPlayUrl = {$arrVideo.v_play_url|json_encode|raw} ;
var strPlayUrl = ""
if (strPlayType == 'default') {
strPlayUrl = findFirstUrl(arrPlayUrl)
} else {
var ActivePlayUrl = arrPlayUrl[strPlayType][intPlayUrlIndex - 1]
strPlayUrl = ActivePlayUrl.url
}
document.addEventListener('DOMContentLoaded', function () {
initDPlayer(strPlayUrl)
function initDPlayer(strPlayUrl) {
let DomDPlayer = document.getElementById('dplayer')
videoPlayer = new DPlayer({
container: DomDPlayer,
autoplay: true,
screenshot: false,
//logo: dplayerLogo,
video: {
url: strPlayUrl,
type: 'hls',
},
pluginOptions: {
hls: {
maxBufferLength: 600,
},
},
});
videoPlayer.play()
// 监听全屏进入事件
videoPlayer.on('fullscreen', function () {
DomDPlayer.classList.add("dp-fullscreen");
// 设置视频元素的样式,取消 max-height
document.querySelector("video").style.maxHeight = "none";
});
// 监听全屏退出事件
videoPlayer.on('fullscreen_cancel', function () {
DomDPlayer.classList.remove("dp-fullscreen");
// 恢复 max-height 为 480px
document.querySelector("video").style.maxHeight = "480px";
});
videoPlayer.on('error', function () {
});
videoPlayer.on('play', function () {
console.log('play')
// 确保视频准备好后再进行跳转
// setTimeout(() => {
// if (videoPlayer.video.readyState >= 2) {
// // readyState >= 2 表示元数据已加载
// videoPlayer.seek(20); // 跳转到 20 分钟
// }
// }, 1000); // 等待一会儿确保视频已开始
});
// 监听当前播放时间
videoPlayer.on('timeupdate', function () {
if (videoPlayer.video.currentTime < intJumpTimeFirst) { // 当前时间小于 20 秒
videoPlayer.seek(intJumpTimeFirst); // 跳过到 20 秒
}
if (videoPlayer.video.currentTime >= intJumpTimeTwoStart && videoPlayer.video.currentTime < intJumpTimeTwoEnd) { // 当前时间小于 20 秒
videoPlayer.seek(intJumpTimeTwoEnd + 1); // 跳过到 20 秒
}
});
}
})
// 页面加载时执行
// $(document).ready(function () {
// let vod_name = $("h1 a").text();
// let vod_url = window.location.pathname;
// let vod_part = $(".stui-content__playlist .active a").text();
// addHistory(vod_name, vod_url, vod_part)
// history();
// });
</script>
{/block}
{block name="customize"}
{/block}
{block name="footer-js"}
<script type="text/javascript"
src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/hls.js/1.1.5-0.canary.8257/hls.min.js" defer></script>
<script type="text/javascript" src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/dplayer/1.26.0/DPlayer.min.js"
defer></script>
{/block}

View File

@@ -10,14 +10,14 @@
'{strLangName}' => '这个是语言名字..',
'{strOrderName}' => '这个是排序名字..',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
'{intPage}' => '当前页面分页页码',
目前在搭建一个视频站点:
站点页面 有:首页,分类首页,分类列表页面,排行榜首页,排行榜列表页面,搜索页面,视频详情页面,视频播放页面
目前 优化分类列表页面:分类首页有分页 {intPage} 是这的占位符,
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoClassName} 是这些的占位符
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoParentCategoryName} 是这些的占位符
每个大分类下面有N个小分类 动作片 爱情片 .. 注意:{strVideoCategoryName} 是这些的占位符
筛选条件1 按地区筛选: 中国 美国 .. 注意:{strAreaName} 是这些的占位符
筛选条件2 按语言筛选: 汉语,英语 .. 注意:{strLangName} 是这些的占位符
@@ -34,20 +34,20 @@
返回格式:
title [
'{strYear}最新{strVideoClassName}推荐 - {strSiteName} - 免费高清{strVideoClassName}'
'{strYear}最新{strVideoParentCategoryName}推荐 - {strSiteName} - 免费高清{strVideoParentCategoryName}'
..
]
keywords: [
'最新{strVideoClassName},高清{strVideoClassName},免费{strVideoClassName}在线观看,{strSiteName},{strYear}{strVideoClassName}排行榜,{strVideoClassName}推荐',
'最新{strVideoParentCategoryName},高清{strVideoParentCategoryName},免费{strVideoParentCategoryName}在线观看,{strSiteName},{strYear}{strVideoParentCategoryName}排行榜,{strVideoParentCategoryName}推荐',
..
]
description: [
'{strSiteName}提供{strYear}最新{strVideoClassName},免费在线观看高清{strVideoClassName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
'{strSiteName}提供{strYear}最新{strVideoParentCategoryName},免费在线观看高清{strVideoParentCategoryName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
..
]
h1 [
'{strSiteName} - {strYear}最新{strVideoClassName}推荐'
'{strSiteName} - {strYear}最新{strVideoParentCategoryName}推荐'
..
]

View File

@@ -7,7 +7,7 @@
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
目前在搭建一个视频站点:
站点页面 有:首页,分类首页,分类列表页面,排行榜首页,排行榜列表页面,搜索页面,视频详情页面,视频播放页面
@@ -24,20 +24,20 @@
返回格式:
title [
'{strYear}最新{strVideoClassName}推荐 - {strSiteName} - 免费高清{strVideoClassName}'
'{strYear}最新{strVideoParentCategoryName}推荐 - {strSiteName} - 免费高清{strVideoParentCategoryName}'
..
]
keywords: [
'最新{strVideoClassName},高清{strVideoClassName},免费{strVideoClassName}在线观看,{strSiteName},{strYear}{strVideoClassName}排行榜,{strVideoClassName}推荐',
'最新{strVideoParentCategoryName},高清{strVideoParentCategoryName},免费{strVideoParentCategoryName}在线观看,{strSiteName},{strYear}{strVideoParentCategoryName}排行榜,{strVideoParentCategoryName}推荐',
..
]
description: [
'{strSiteName}提供{strYear}最新{strVideoClassName},免费在线观看高清{strVideoClassName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
'{strSiteName}提供{strYear}最新{strVideoParentCategoryName},免费在线观看高清{strVideoParentCategoryName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
..
]
h1 [
'{strSiteName} - {strYear}最新{strVideoClassName}推荐'
'{strSiteName} - {strYear}最新{strVideoParentCategoryName}推荐'
..
]

View File

@@ -9,7 +9,7 @@
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
目前在搭建一个视频站点:
站点页面 有:首页,分类首页,分类列表页面,排行榜首页,排行榜列表页面,搜索页面,视频详情页面,视频播放页面
@@ -24,20 +24,20 @@
返回格式:
title [
'{strYear}最新{strVideoClassName}推荐 - {strSiteName} - 免费高清{strVideoClassName}'
'{strYear}最新{strVideoParentCategoryName}推荐 - {strSiteName} - 免费高清{strVideoParentCategoryName}'
..
]
keywords: [
'最新{strVideoClassName},高清{strVideoClassName},免费{strVideoClassName}在线观看,{strSiteName},{strYear}{strVideoClassName}排行榜,{strVideoClassName}推荐',
'最新{strVideoParentCategoryName},高清{strVideoParentCategoryName},免费{strVideoParentCategoryName}在线观看,{strSiteName},{strYear}{strVideoParentCategoryName}排行榜,{strVideoParentCategoryName}推荐',
..
]
description: [
'{strSiteName}提供{strYear}最新{strVideoClassName},免费在线观看高清{strVideoClassName},包括{sub_categories}等,{strSiteKeywords},立即访问{strSiteDomain}',
'{strSiteName}提供{strYear}最新{strVideoParentCategoryName},免费在线观看高清{strVideoParentCategoryName},包括{sub_categories}等,{strSiteKeywords},立即访问{strSiteDomain}',
..
]
h1 [
'{strSiteName} - {strYear}最新{strVideoClassName}推荐'
'{strSiteName} - {strYear}最新{strVideoParentCategoryName}推荐'
..
]

View File

@@ -8,13 +8,13 @@
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strOrderName}' => '这个是排序名字..',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
目前在搭建一个视频站点:
站点页面 有:首页,分类首页,分类列表页面,排行榜首页,排行榜列表页面,搜索页面,视频详情页面,视频播放页面
注意:目前 优化排行榜页面:排行榜页面没有分页,
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoClassName} 是这些的占位符
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoParentCategoryName} 是这些的占位符
每个大分类下面有N个小分类 动作片 爱情片 .. 注意:{strVideoCategoryName} 是这些的占位符
筛选条件1 按排序筛选: 天排行榜,周排行榜,月排行榜,总排行榜,票房排行榜 .. 注意:{strOrderName} 是这些的占位符
@@ -30,20 +30,20 @@
返回格式:
title [
'{strYear}{strVideoClassName}排行榜 - {strSiteName} - 高清热门{strVideoClassName}'
'{strYear}{strVideoParentCategoryName}排行榜 - {strSiteName} - 高清热门{strVideoParentCategoryName}'
..
]
keywords: [
'{strVideoClassName}排行榜,热门{strVideoClassName},高清{strVideoClassName},免费{strVideoClassName}在线观看,{strSiteName},{strSiteKeywords}',
'{strVideoParentCategoryName}排行榜,热门{strVideoParentCategoryName},高清{strVideoParentCategoryName},免费{strVideoParentCategoryName}在线观看,{strSiteName},{strSiteKeywords}',
..
]
description: [
'{strSiteName}精选{strYear}{strVideoClassName}排行榜,免费观看高清热门{strVideoClassName},包括{sub_categories}等,{strSiteKeywords},访问{strSiteDomain}',
'{strSiteName}精选{strYear}{strVideoParentCategoryName}排行榜,免费观看高清热门{strVideoParentCategoryName},包括{sub_categories}等,{strSiteKeywords},访问{strSiteDomain}',
..
]
h1 [
'{strSiteName} - {strYear}{strVideoClassName}排行榜'
'{strSiteName} - {strYear}{strVideoParentCategoryName}排行榜'
..
]

View File

@@ -0,0 +1,78 @@
很好,下面是我整理了一份格式,你根据这个格式 返回我需要的高质量内容
{strSiteKeywords} = 免费视频,热门影视,视频网站
最牛的seo 优化大师
这个是 替换标识 这个页面下面的标签都可以使用 {strSiteKeywords} 是全局公用关键词,你看看怎么使用
'{strSiteName}' => '这个是网站名',
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'
目前在搭建一个视频站点:
站点页面 有:首页,分类首页,分类列表页面,排行榜首页,排行榜列表页面,搜索页面,视频详情页面,视频播放页面
注意:目前 优化排行榜首页:排行榜页面没有分页,
分类列表页 展示内容: 日,周 ,月,总 四个排行榜列表每个列表展示20个视频
需要你帮忙设计 TKD 模板,
h1标签内容 模板,
h4标签(页面介绍描述,主要是丰富页面 友好seo)
因为我后面需要部署大量域名站点 都使用同一个视图模板,所以要设计不同的 seo 替换模板
请根据路由和上面的替换标识和描述你帮忙设计50套最友好seo的 tkd. h1 . h4 替换模板,字数要符合常规,不要超标也不要少,质量要保证,多参考其它 权重高的视频站点设计,
需要完整 50 套模板的详细文本(而非代表性示例),不要重复
注意 占位替换模板只能使用我上面列出来的,如果需要增加请告诉我,尽量把上面的占位符都使用上
返回格式:
title [
..
]
keywords: [
..
]
description: [
..
]
h1 [
..
]
h4 [
..
]
注意:h4: 确保 <h4> 内容自然长度适中50-120 字)(作用是丰富列表页面内容的文案)
{
"title": [
],
"keywords": [
],
"description": [
],
"h1": [
],
"h4": [
]
}

View File

@@ -7,7 +7,7 @@
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
'{strAreaName}' => '这个是当前视地区名字..',
'{strLangName}' => '这个是当前视语言名字..',
@@ -58,14 +58,14 @@
注意:h4: 确保 <h4> 内容自然长度适中50-120 字)(作用是丰富列表页面内容的文案)
感谢你的详细需求!你的目标是为视频站点的视频播放页面设计 50 套高质量、互不重复的 SEO 优化 TKDTitle、Keywords、Description、H1 和 H4 模板,并补充 50 套社交媒体标签模板Open Graph 和 Twitter Card以支持多域名部署并确保模板符合 SEO 最佳实践、字数要求和内容质量。你提供了占位符({strSiteName}, {strSiteDomain}, {strSiteKeywords}, {strYear}, {strVideoClassName}, {strVideoCategoryName}, {strAreaName}, {strLangName}, {strVideoName}, {strVideoDirector}, {strVideoActor}, {strVideoDescription}, {intPlayIndex})和全局关键词(免费视频,热门影视,视频网站),并要求参考高权重视频站点(如爱奇艺、腾讯视频、优酷),确保 <h4> 内容自然、长度适中50-120 字),且模板仅使用指定占位符,尽量融入所有占位符,尤其是重要占位符(如 {strVideoName}, {strVideoDescription}, {intPlayIndex})。
感谢你的详细需求!你的目标是为视频站点的视频播放页面设计 50 套高质量、互不重复的 SEO 优化 TKDTitle、Keywords、Description、H1 和 H4 模板,并补充 50 套社交媒体标签模板Open Graph 和 Twitter Card以支持多域名部署并确保模板符合 SEO 最佳实践、字数要求和内容质量。你提供了占位符({strSiteName}, {strSiteDomain}, {strSiteKeywords}, {strYear}, {strVideoParentCategoryName}, {strVideoCategoryName}, {strAreaName}, {strLangName}, {strVideoName}, {strVideoDirector}, {strVideoActor}, {strVideoDescription}, {intPlayIndex})和全局关键词(免费视频,热门影视,视频网站),并要求参考高权重视频站点(如爱奇艺、腾讯视频、优酷),确保 <h4> 内容自然、长度适中50-120 字),且模板仅使用指定占位符,尽量融入所有占位符,尤其是重要占位符(如 {strVideoName}, {strVideoDescription}, {intPlayIndex})。
视频播放页面与视频详情页面高度相似,但增加了播放器(播放 m3u8 文件),且对于电视剧包含集数(通过 {intPlayIndex} 表示)。以下是根据你的要求设计的 完整 50 套 TKD、H1、H4 模板 和 50 套社交媒体标签模板,专为视频播放页面优化,确保高质量、无重复,参考高权重视频站点的 SEO 和社交媒体策略(如爱奇艺的“电视剧名称 第X集 - 在线观看”)。
设计原则
TKD、H1、H4 模板
SEO 友好:
Title60-70 字符,突出 {strVideoName}、 {intPlayIndex}如“第1集”、 {strVideoClassName},吸引点击。
Title60-70 字符,突出 {strVideoName}、 {intPlayIndex}如“第1集”、 {strVideoParentCategoryName},吸引点击。
Keywords6-8 个关键词,融入 {strSiteKeywords}, {strVideoActor}, {intPlayIndex},覆盖高频搜索词(如“电视剧名称 第1集”
Description120-160 字符,包含 {strVideoName}, {strVideoDescription:50}, {intPlayIndex} 和行动号召。
H120-40 字符,突出 {strVideoName} 和 {intPlayIndex},适合页面显示。
@@ -88,7 +88,7 @@ H450-120 字(约 100-200 字符)。
腾讯视频H1 简洁(如“电视剧名称 第X集”Keywords 覆盖主演和集数。
优酷Description 突出“在线播放”、“高清”。
占位符使用:
尽量融入 {strSiteName}, {strSiteDomain}, {strSiteKeywords}, {strYear}, {strVideoClassName}, {strVideoCategoryName}, {strAreaName}, {strLangName}, {strVideoName}, {strVideoDirector}, {strVideoActor}, {strVideoDescription}, {intPlayIndex}。
尽量融入 {strSiteName}, {strSiteDomain}, {strSiteKeywords}, {strYear}, {strVideoParentCategoryName}, {strVideoCategoryName}, {strAreaName}, {strLangName}, {strVideoName}, {strVideoDirector}, {strVideoActor}, {strVideoDescription}, {intPlayIndex}。
{intPlayIndex} 在电视剧播放页面中高频使用(如“第{intPlayIndex}集”),电影播放页面可省略或替换为“正片”。
社交媒体标签模板
SEO 和分享优化:

View File

@@ -7,7 +7,7 @@
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
'{strAreaName}' => '这个是当前视地区名字..',
'{strLangName}' => '这个是当前视语言名字..',
@@ -59,11 +59,11 @@
感谢你的详细需求!你的目标是为视频站点的视频详情页面设计 50 套高质量、互不重复的 SEO 优化 TKDTitle、Keywords、Description、H1 和 H4 模板,以支持多域名部署,并确保模板符合 SEO 最佳实践、字数要求和内容质量。你提供了占位符({strSiteName}、{strSiteDomain}、{strSiteKeywords}、{strYear}、{strVideoClassName}、{strVideoCategoryName}、{strAreaName}、{strLangName}、{strVideoName}、{strVideoDirector}、{strVideoActor}、{strVideoDescription})和全局关键词(免费视频,热门影视,视频网站),并要求参考高权重视频站点(如爱奇艺、腾讯视频、优酷),确保 <h4> 内容自然、长度适中50-120 字),且模板仅使用指定占位符,尽量融入所有占位符,尤其是重要占位符(如 {strVideoName}、{strVideoDescription})。
感谢你的详细需求!你的目标是为视频站点的视频详情页面设计 50 套高质量、互不重复的 SEO 优化 TKDTitle、Keywords、Description、H1 和 H4 模板,以支持多域名部署,并确保模板符合 SEO 最佳实践、字数要求和内容质量。你提供了占位符({strSiteName}、{strSiteDomain}、{strSiteKeywords}、{strYear}、{strVideoParentCategoryName}、{strVideoCategoryName}、{strAreaName}、{strLangName}、{strVideoName}、{strVideoDirector}、{strVideoActor}、{strVideoDescription})和全局关键词(免费视频,热门影视,视频网站),并要求参考高权重视频站点(如爱奇艺、腾讯视频、优酷),确保 <h4> 内容自然、长度适中50-120 字),且模板仅使用指定占位符,尽量融入所有占位符,尤其是重要占位符(如 {strVideoName}、{strVideoDescription})。
以下是根据你的要求设计的 完整 50 套详细、无重复的 SEO 优化模板,针对视频详情页面(包含视频的详细信息,如名称、导演、演员、简介等)。模板参考高权重视频站点的 SEO 策略(如爱奇艺的“电影名称 - 在线观看 - 爱奇艺”),注重关键词密度、语义清晰、用户吸引力和多域名适配。每个模板确保:
Title60-70 字符,突出 {strVideoName}、 {strVideoClassName},吸引点击。
Title60-70 字符,突出 {strVideoName}、 {strVideoParentCategoryName},吸引点击。
Keywords6-8 个关键词,融入 {strSiteKeywords}、{strVideoActor},覆盖高频搜索词。
Description120-160 字符,包含 {strVideoName}、 {strVideoDescription}截取前50字和行动号召。
H120-40 字符,突出 {strVideoName},适合页面显示。
@@ -71,14 +71,14 @@ H450-120 字,自然流畅,引导用户,丰富页面内容。
设计原则
SEO 友好:
模板融入高频关键词如“在线观看”、“高清”、“免费”参考高权重视频站点的标题结构如“2025电影名称 - 腾讯视频”)。
确保 Title、Keywords、Description 和 H1/H4 关键词一致,强化页面主题(如 {strVideoName}、 {strVideoClassName})。
确保 Title、Keywords、Description 和 H1/H4 关键词一致,强化页面主题(如 {strVideoName}、 {strVideoParentCategoryName})。
{strVideoDescription} 在 Description 中截取前50字确保语义完整符合 SEO 规范。
独特性:
50 套模板通过措辞变化(如“热播”、“精选”、“热门”)、占位符组合(如 {strVideoActor}、 {strVideoDirector})和结构调整(如站点名称位置)保持多样性。
避免与视频播放页面或其他页面(如分类列表页)冲突,详情页面强调 {strVideoName}、 {strVideoDescription} 和 {strVideoActor}。
多域名适配:
使用指定占位符(未新增任何占位符)支持批量部署。
{strVideoClassName} 动态替换大分类(如“电影”),{strVideoCategoryName} 替换小分类(如“动作片”),{strVideoName} 替换具体视频名称。
{strVideoParentCategoryName} 动态替换大分类(如“电影”),{strVideoCategoryName} 替换小分类(如“动作片”),{strVideoName} 替换具体视频名称。
字数控制:
Title60-70 字符。
Keywords6-8 个关键词。
@@ -90,6 +90,6 @@ H450-120 字(约 100-200 字符)。
腾讯视频H1 简洁如“电影名称”Description 突出“主演”、“导演”。
优酷Keywords 覆盖广泛(如“电影名称、演员、免费在线观看”)。
占位符使用:
所有模板尽量融入 {strSiteName}、{strSiteDomain}、{strSiteKeywords}、{strYear}、{strVideoClassName}、{strVideoCategoryName}、{strAreaName}、{strLangName}、{strVideoName}、{strVideoDirector}、{strVideoActor}、{strVideoDescription}。
所有模板尽量融入 {strSiteName}、{strSiteDomain}、{strSiteKeywords}、{strYear}、{strVideoParentCategoryName}、{strVideoCategoryName}、{strAreaName}、{strLangName}、{strVideoName}、{strVideoDirector}、{strVideoActor}、{strVideoDescription}。
{strVideoDescription} 在 Description 中截取前50字如“{strVideoDescription:50}”H4 中使用完整简介或部分引导语。
重要占位符(如 {strVideoName}、{strVideoDescription}、{strVideoActor})在每套模板中高频使用

View File

@@ -9,13 +9,13 @@
'{strLangName}' => '这个是语言名字..',
'{strOrderName}' => '这个是排序名字..',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
'{intPage}' => '当前页面分页页码',
分类列表页面:
分类首页有分页 {intPage} 是这的占位符,
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoClassName} 是这些的占位符
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoParentCategoryName} 是这些的占位符
每个大分类下面有N个小分类 动作片 爱情片 .. 注意:{strVideoCategoryName} 是这些的占位符
筛选条件1 按地区筛选: 中国 美国 .. 注意:{strAreaName} 是这些的占位符
筛选条件2 按语言筛选: 汉语,英语 .. 注意:{strLangName} 是这些的占位符
@@ -30,20 +30,20 @@
返回格式例子:
title [
'{strYear}最新{strVideoClassName}推荐 - {strSiteName} - 免费高清{strVideoClassName}'
'{strYear}最新{strVideoParentCategoryName}推荐 - {strSiteName} - 免费高清{strVideoParentCategoryName}'
..
]
keywords: [
'最新{strVideoClassName},高清{strVideoClassName},免费{strVideoClassName}在线观看,{strSiteName},{strYear}{strVideoClassName}排行榜,{strVideoClassName}推荐',
'最新{strVideoParentCategoryName},高清{strVideoParentCategoryName},免费{strVideoParentCategoryName}在线观看,{strSiteName},{strYear}{strVideoParentCategoryName}排行榜,{strVideoParentCategoryName}推荐',
..
]
description: [
'{strSiteName}提供{strYear}最新{strVideoClassName},免费在线观看高清{strVideoClassName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
'{strSiteName}提供{strYear}最新{strVideoParentCategoryName},免费在线观看高清{strVideoParentCategoryName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
..
]
h1 [
'{strSiteName} - {strYear}最新{strVideoClassName}推荐'
'{strSiteName} - {strYear}最新{strVideoParentCategoryName}推荐'
..
]

View File

@@ -5,7 +5,7 @@
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
分类首页:
没有分页一共有5大分类 电影,电视剧,综艺,动漫,短剧
@@ -19,20 +19,20 @@
返回格式:
title [
'{strYear}最新{strVideoClassName}推荐 - {strSiteName} - 免费高清{strVideoClassName}'
'{strYear}最新{strVideoParentCategoryName}推荐 - {strSiteName} - 免费高清{strVideoParentCategoryName}'
..
]
keywords: [
'最新{strVideoClassName},高清{strVideoClassName},免费{strVideoClassName}在线观看,{strSiteName},{strYear}{strVideoClassName}排行榜,{strVideoClassName}推荐',
'最新{strVideoParentCategoryName},高清{strVideoParentCategoryName},免费{strVideoParentCategoryName}在线观看,{strSiteName},{strYear}{strVideoParentCategoryName}排行榜,{strVideoParentCategoryName}推荐',
..
]
description: [
'{strSiteName}提供{strYear}最新{strVideoClassName},免费在线观看高清{strVideoClassName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
'{strSiteName}提供{strYear}最新{strVideoParentCategoryName},免费在线观看高清{strVideoParentCategoryName},包括{strSiteKeywords}等,立即访问{strSiteDomain}',
..
]
h1 [
'{strSiteName} - {strYear}最新{strVideoClassName}推荐'
'{strSiteName} - {strYear}最新{strVideoParentCategoryName}推荐'
..
]

View File

@@ -5,12 +5,12 @@
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strOrderName}' => '这个是排序名字..',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
排行榜页面:
排行榜页面没有分页,
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoClassName} 是这些的占位符
一共有5大分类 电影,电视剧,综艺,动漫,短剧 注意:{strVideoParentCategoryName} 是这些的占位符
每个大分类下面有N个小分类 动作片 爱情片 .. 注意:{strVideoCategoryName} 是这些的占位符
筛选条件1 按排序筛选: 天排行榜,周排行榜,月排行榜,总排行榜,票房排行榜 .. 注意:{strOrderName} 是这些的占位符
@@ -25,20 +25,20 @@
返回格式:
title [
'{strYear}{strVideoClassName}排行榜 - {strSiteName} - 高清热门{strVideoClassName}'
'{strYear}{strVideoParentCategoryName}排行榜 - {strSiteName} - 高清热门{strVideoParentCategoryName}'
..
]
keywords: [
'{strVideoClassName}排行榜,热门{strVideoClassName},高清{strVideoClassName},免费{strVideoClassName}在线观看,{strSiteName},{strSiteKeywords}',
'{strVideoParentCategoryName}排行榜,热门{strVideoParentCategoryName},高清{strVideoParentCategoryName},免费{strVideoParentCategoryName}在线观看,{strSiteName},{strSiteKeywords}',
..
]
description: [
'{strSiteName}精选{strYear}{strVideoClassName}排行榜,免费观看高清热门{strVideoClassName},包括{sub_categories}等,{strSiteKeywords},访问{strSiteDomain}',
'{strSiteName}精选{strYear}{strVideoParentCategoryName}排行榜,免费观看高清热门{strVideoParentCategoryName},包括{sub_categories}等,{strSiteKeywords},访问{strSiteDomain}',
..
]
h1 [
'{strSiteName} - {strYear}{strVideoClassName}排行榜'
'{strSiteName} - {strYear}{strVideoParentCategoryName}排行榜'
..
]

View File

@@ -4,7 +4,7 @@
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
'{strAreaName}' => '这个是当前视地区名字..',
'{strLangName}' => '这个是当前视语言名字..',

View File

@@ -4,7 +4,7 @@
'{strSiteDomain}' => '这个是站点域名',
'{strSiteKeywords}' => '这个是网站全局通用关键字,可以替换到任何页面的 TKD模板里面',
'{strYear}' => '这个是年份',
'{strVideoClassName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoParentCategoryName}' => '视频自定义分类名称:电影/电视剧..',
'{strVideoCategoryName}' => '视频分类名称:动作片..',
'{strAreaName}' => '这个是当前视地区名字..',
'{strLangName}' => '这个是当前视语言名字..',