video-template-3

This commit is contained in:
make
2025-05-09 19:33:40 +08:00
parent a228bb8083
commit 715466075a
138 changed files with 22125 additions and 13 deletions

View File

@@ -0,0 +1,247 @@
<html lang="zh-CN">
<head>
{block name="get-data"}{/block}
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta name="robots" content="index, follow">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{block name="title"}{/block}</title>
<meta name="keywords" content='{block name="keywords"}{/block}'>
<meta name="description" content='{block name="description"}{/block}'>
<link rel="shortcut icon" href="/template/videoboku//images/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-font.css" type="text/css">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-ui.css" type="text/css">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-site.css" type="text/css">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-share.css" type="text/css">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-color.css" type="text/css" name="default">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-color.css" type="text/css" name="skin" disabled="">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-color1.css" type="text/css" name="skin" disabled="">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-color2.css" type="text/css" name="skin" disabled="">
<link rel="stylesheet" href="/template/videoboku/css/mytheme-color3.css" type="text/css" name="skin" disabled="">
{block name="head"}{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
<script>
const strPcPath = `{$strPcPath}`;
</script>
<style type="text/css">
</style>
</head>
<body class="active {block name='body-class'}{/block}" id="{block name='body-id'}{/block}">
<header class="myui-header__top clearfix top-fixed headroom--top headroom--not-bottom" id="header-top">
<div class="container">
<div class="row">
<div class="myui-header_bd clearfix">
<div class="myui-header__logo" >
<a class="logo" href="/">
{$DomainModel->d_name}
</a>
</div>
<ul class="myui-header__menu nav-menu">
<li class="{if $Request.route.strParentCategory == ''}active{/if} visible-inline-lg"><a class="logo" href="/">首页</a></li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class=" visible-inline-lg {if $val.v_category_en == $Request.route.strParentCategory}active{/if}">
<a href='{site:vciurl parent_category="$val.v_category_en" /}'>
{$val.v_category}
</a>
</li>
{/video:categorytype}
<li class=" visible-inline-lg">
<a href='{$strRankUrlTemp}'>
榜单
</a>
</li>
<li class="dropdown-hover dropdown-toggle"><a href="javascript:;">频道<i class="fa fa-angle-down"></i></a>
<div class="dropdown-box bottom fadeInDown clearfix">
<ul class="item nav-list clearfix">
<li class="col-lg-5 col-md-5 col-sm-5 col-xs-3 ">
<a class="btn btn-sm btn-block {if $Request.route.strParentCategory == ''}btn-warm{else}btn-default{/if}" href="/">首页</a>
</li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class="col-lg-5 col-md-5 col-sm-5 col-xs-3 ">
<a class="btn btn-sm btn-block {if $val.v_category_en == $Request.route.strParentCategory}btn-warm{else}btn-default{/if}"
href='{site:vciurl parent_category="$val.v_category_en" /}'>
{$val.v_category}
</a>
</li>
{/video:categorytype}
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li class="col-lg-5 col-md-5 col-sm-5 col-xs-3 ">
<a class="btn btn-sm btn-block {if $arrChildrenCategory.v_category_en == $Request.route.strCategory}btn-warm{else}btn-default{/if}"
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>
</li>
{/foreach}
{/video:categorytype}
</ul>
</div>
</li>
</ul>
<div class="myui-header__search search-box">
<a class="search-select dropdown-hover"
href="javascript:;">
<span class="text">视频</span>
<i class="fa fa-caret-down"></i>
<div class="dropdown-box bottom fadeInDown">
<ul class="item">
<li class="vod" data-action="{$strSearchListUrlTemp}">视频</li>
</ul>
</div>
</a>
<form id="search" name="search" method="get" action="{$strSearchListUrlTemp}">
<input type="text" id="wd" name="keyword"
class="search_wd form-control ac_input" value="" placeholder="请输入关键字" autocomplete="off"
style=" padding-left: 65px; ">
<button class="submit search_submit" id="searchbutton" type="submit" name="submit">
<i class="fa fa-search"></i>
</button>
</form>
<a class="search-close visible-xs" href="javascript:;">
<i class="fa fa-close"></i>
</a>
<div class="search-dropdown-hot dropdown-box bottom fadeInDown">
<div class="item">
<p class="text-muted">热门搜索</p>
{video:list count="6"
sort_type="news"
d_key="key" d_val="Video"
cache_life="86400"}
<p>
<a class="text-333"
href='{site:vsurl key="$Video.v_name" p="1"/}'
title="{$Video.v_name}">
<span class="badge badge-first">{$key++}</span>
{$Video.v_name}
</a>
</p>
{/video:list}
</div>
</div>
</div>
<ul class="myui-header__user">
<li class="visible-xs">
<form id="search" name="search" method="get" action="{$strSearchListUrlTemp}">
<input type="text" id="wd" name="keyword"
class="search_wd form-control ac_input" value="" placeholder="请输入关键字" autocomplete="off"
style=" padding-left:2px; ">
<button class="submit search_submit h5-searchbutton" id="h5-searchbutton" type="submit" name="submit">
<i class="fa fa-search"></i>
</button>
</form>
</li>
<li class="dropdown-hover">
<a href="{$strHistoryUrlTemp}" title="播放记录">
<i class="fa fa-clock-o"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
</header>
{block name="main"}
{/block}
{include file="public/footer" /}
{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>
{// 全局统计 }
{site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/}
{// 站点统计 }
{$DomainModel->d_statis|raw}
<script>
(function () {
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
<script>
document.addEventListener("DOMContentLoaded", function () {
// 移动端点击切换
$('.dropdown-toggle').on('click', function(e) {
//e.preventDefault(); // 阻止默认行为(避免跳转)
var $parent = $(this).closest('.dropdown-hover');
var $dropdownBox = $parent.find('.dropdown-box');
// 切换 active 类
$parent.toggleClass('active');
// 显示或隐藏下拉菜单
if ($parent.hasClass('active')) {
$dropdownBox.slideDown(300); // 动画显示
} else {
$dropdownBox.slideUp(300); // 动画隐藏
}
// 关闭其他下拉菜单
$('.dropdown-hover').not($parent).removeClass('active').find('.dropdown-box').slideUp(300);
});
// 点击下拉菜单中的链接,允许跳转
$('.dropdown-box a').on('click', function(e) {
// 确保不阻止默认行为,允许 <a> 标签跳转
// 如果需要,可以在这里添加其他逻辑(如记录点击)
});
// 点击页面其他地方关闭下拉菜单
$(document).on('click', function(e) {
// 仅当点击不在 .dropdown-hover 或其子元素时关闭
if (!$(e.target).closest('.dropdown-hover').length) {
$('.dropdown-hover').removeClass('active').find('.dropdown-box').slideUp(300);
}
});
});
</script>
</body>
</html>

View File

@@ -0,0 +1,58 @@
独播库频模板-
http://test.yagebm.com/
1.视频分类 分页标签查询, 增加 4个查询字段
$v_class = $tag['v_class'] ?? '10'; // 自定义分类 电影 电视剧 ..
$v_lang = $tag['v_lang'] ?? "all"; // 语言
$v_area = $tag['v_area'] ?? "all"; // 地区
$v_year = $tag['v_year'] ?? "all"; // 年份
2. 排行榜标签 增加 分类查询
{video:ranklist v_class="dianying" v_category="$val.v_category_en"
需要 配置tkd 模板的页面
首页:
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
T
K
D
分类首页
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
tkd
分类分页
视频详情页面
视频播放页面
视频搜索页面
视频排行榜首页
视频排行榜分页
目前在搭建一个视频站点:
页面 有
首页
分类首页:分类首页没有分页,一共有 电影,电视剧,综艺,动漫,短剧 。5大分类。
分类首页 展示内容:每一大分类下面的所有小分类 展示10个视频
这个就是上面发你的代码;
需要你帮忙设计 TKD 模板
和 h1标签内容 模板
因为我后面需要部署大量域名站点 都使用同一个模板
分类列表分页:

View File

@@ -0,0 +1,267 @@
{extend name="base" /}
{block name="get-data"}
{video:listexp count="9" sort_type="tuijian" d_key="key" d_val="Video" cache_life="86400" export_name="arrVideoTuijian"
/}
{video:listexp count="9" sort_type="piaofang" d_key="key" d_val="Video" cache_life="86400"
export_name="arrVideoPiaofang" /}
{site:grm page_code="h5_index" diff="0" num="100" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="VIDEO@INDEX@INDEX@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@INDEX@INDEX@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content='{site:replace code="VIDEO@INDEX@INDEX@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="website" />
<!-- 结构化数据 -->
<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"
}
},
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{$DomainModel->d_name}热门推荐预告片",
"description": "观看{$DomainModel->d_name}最新电影和电视剧的精彩预告片!",
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key == 1 }
"thumbnailUrl": 'https://{$DomainModel->d_domain}{$Video.v_pic}',
{/if}
{/volist}
"uploadDate": "{:date('Y-m-d')}",
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}"
}
},
{
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - {$DomainModel->d_logo_text}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": "{$DomainModel->d_name}首页提供好莱坞最新电影、电视剧、综艺、动漫和短剧的免费高清在线观看,热门推荐每日更新!",
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem",
"position": {$key},
"item": {
"@type": "TVSeries",
"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}
{volist name="arrVideoPiaofang" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem{$Video.v_id}",
"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-js"}{/block}
{block name="main"}
<div class="container">
<div class="row">
<h1 class="view-title">
<a href="/">{$DomainModel->d_name}</a>-{$DomainModel->d_text_logo}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORYINDEX@TEXT"}</h4>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix"><span
class="text-muted more pull-right"></span>
<h2 class="title">全球票房榜</h2>
</div>
</div>
<div class="myui-panel_bd clearfix">
<ul class="myui-vodlist clearfix">
{foreach $arrVideoPiaofang as $key=>$Video }
{include file="public/video-list-shu-pf" start="0" col-lg="9"/}
{/foreach}
</ul>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix"><span
class="text-muted more pull-right"></span>
<h2 class="title">影片推荐</h2>
</div>
</div>
<div class="myui-panel_bd clearfix">
<ul class="myui-vodlist clearfix">
{foreach $arrVideoTuijian as $key=>$Video }
{include file="public/video-list-shu" start="10" col-lg="9"/}
{/foreach}
</ul>
</div>
</div>
</div>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
{include file="public/video-panel" /}
{/video:categorytype}
<div class="myui-panel myui-panel-bg hidden-xs clearfix visible-inline-lg">
<div class="myui-panel-box clearfix">
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
{if $val.v_category_en != 'zong-yi'}
<div class="col-lg-4 col-md-3 col-sm-2 col-xs-1 padding-0">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h2 class="title">{$val.v_category}总榜单</h2>
<a class="more text-muted"
href="{$strRankUrlTemp}">更多<i class="fa fa-angle-right"></i></a>
</div>
</div>
<div class="myui-panel_bd clearfix">
<ul class="myui-vodlist__media active col-pd clearfix">
{video:ranklist count="1"
v_parent_category_en="$val.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
<li>
<div class="thumb">
<a class="myui-vodlist__thumb img-xs-70"
style="background: url({$Video.v_pic});"
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-original="{$Video.v_pic}">
</a>
</div>
<div class="detail detail-side">
<h6 class="title">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' >
<i class="fa fa-angle-right text-muted pull-right"></i>
{$Video.v_name}
</a>
</h6>
<p class="font-12"><span class="text-muted">类型:</span>{$Video.v_parent_category}</p>
<p class="font-12"><span class="text-muted">地区:</span>
{volist name='$Video.v_area' id='vo' key='index'}
{$vo}&nbsp;
{/volist}
</p>
<p class="font-12 margin-0"><span class="text-muted">主演:</span>
{volist name='$Video.v_actor' id='vo' key='index'}
{$vo}
&nbsp;
{/volist}
</p>
</div>
</li>
{/video:ranklist}
</ul>
<ul class="myui-vodlist__text col-pd clearfix">
{video:ranklist count="10"
v_parent_category_en="$val.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
{if $key >0}
{include file="public/video-list-phb" start="80"/}
{/if}
{/video:ranklist}
</ul>
</div>
</div>
{/if}
{/video:categorytype}
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,75 @@
<div class="container">
<div class="row">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title">友情链接</h3>
</div>
</div>
<div class="myui-panel_bd clearfix">
<div class="col-xs-1">
<ul class="myui-link__text clearfix">
{ad:list code="YOUQING_LIANJIE_GUANG_GAO" order="desc" limit="2" id="ad"}
<li>
<a href="{$ad.gg_tiao_zhuan_di_zhi}" target="_blank">{$ad.gg_wen_zi}
</a>
</li>
{/ad:list}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="myui-foot clearfix">
<div class="container min">
<div class="row">
<div class="col-pd text-center masked">
<p>本站所有视频和图片均来自互联网收集而来本网站只提供web页面服务并不提供资源存储也不参与录制、上传<br>若本站收录的节目无意侵犯了贵司权益,请发邮件至{site:cfg code="YOU_XIANG" encode="false"/}
我们会在3个工作日内删除侵权内容谢谢。</p>
<p>{$DomainModel->d_name}是一个优质影视资源网站,免费提供最新电影、热播电视剧、综艺节目、动漫、短剧等影视作品在线观看,看电影追剧首选{$DomainModel->d_name}。</p>
<p>反馈邮箱:{site:cfg code="YOU_XIANG" encode="false"/}</p>
<p class="hidden-xs">
<a href="/sitemap_index.xml" target="_blank">XML地图</a>
<a href="/robots.txt" target="_blank">网站地图</a>
{ad:list code="YOUQING_LIANJIE_GUANG_GAO" order="desc" limit="2" id="ad"}
<a href="{$ad.gg_tiao_zhuan_di_zhi}" target="_blank">{$ad.gg_wen_zi}
</a>
{/ad:list}
<!-- <a target="_blank" href="/rss.xml">RSS订阅</a><span class="split-line"></span><a
target="_blank" href="/rss/baidu.xml">百度蜘蛛</a><span class="split-line"></span><a
target="_blank" href="/rss/google.xml">谷歌地图</a><span class="split-line"></span><a
target="_blank" href="/rss/bing.xml">必应地图</a><span class="split-line"></span><a
target="_blank" href="/rss/so.xml">360地图</a><span class="split-line"></span><a
target="_blank" href="/rss/sogou.xml">搜狗地图</a> -->
</p>
<p class="margin-0">Copyright © 2008-2023 by {$DomainModel->d_name} 统计代码</p>
</div>
</div>
</div>
</div>
<div class="myui-panel-bg myui-nav__tabbar">
<a class="item" href="/">
<p style="padding: 5px 5px;" class="btn {if $arrChildrenCategory.v_category_en == $Request.route.strCategory}btn-warm{/if}">首页</p>
</a>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<a class="item" href='{site:vciurl parent_category="$val.v_category_en" /}'>
<p style="padding: 5px 5px;" class="btn {if $val.v_category_en == $Request.route.strParentCategory}btn-warm{/if}">{$val.v_category}</p>
</a>
{/video:categorytype}
<a class="item" href="{$strRankUrlTemp}">
<p style="padding: 5px 5px;" class="btn ">榜单</p>
</a>
</div>

View File

@@ -0,0 +1,16 @@
<li>
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<?php $key ++ ?>
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">
<span class="pull-right text-muted hidden-md">{$Video.v_remarks} </span>
<span class='badge badge-radius
{eq name="$key" value="1"}badge-first {/eq}
{eq name="$key" value="2"}badge-second {/eq}
{eq name="$key" value="3"}badge-third {/eq}'
'>{$key}</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,34 @@
<li class="col-lg-[col-lg] col-md-8 col-sm-4 col-xs-3">
<div class="myui-vodlist__box">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="myui-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="{$Video.v_pic ?? ''}"
style="background-image: url(&quot;/static/img/loading.gif&quot;);">
<span class="play hidden-xs"></span>
<span class="pic-tag pic-tag-top" style="background-color: #5bb7fe;">{$Video.v_box_office ?? 0}亿</span>
<span class="pic-text text-right">{$Video.v_remarks}</span>
<img src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看"
style="display: none;">
</a>
<div class="myui-vodlist__detail">
<h3 class="title text-overflow">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">{$Video.v_name}</a>
</h3>
<p class="text text-overflow text-muted hidden-xs">
{$Video.v_year}
/
{volist name='$Video.v_area' id='vo' key='index'}
{$vo}&nbsp;
{/volist}
/ {$Video.v_parent_category}
</p>
</div>
</div>
</li>

View File

@@ -0,0 +1,34 @@
<li class="col-lg-[col-lg] col-md-8 col-sm-4 col-xs-3">
<div class="myui-vodlist__box">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="myui-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="{$Video.v_pic ?? ''}"
style="background-image: url(&quot;/static/img/loading.gif&quot;);">
<span class="play hidden-xs"></span>
<span class="pic-tag pic-tag-top" style="background-color: #5bb7fe;">{$Video.v_score}分</span>
<span class="pic-text text-right">{$Video.v_remarks}</span>
<img src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看"
style="display: none;">
</a>
<div class="myui-vodlist__detail">
<h3 class="title text-overflow">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">{$Video.v_name}</a>
</h3>
<p class="text text-overflow text-muted hidden-xs">
{$Video.v_year}
/
{volist name='$Video.v_area' id='vo' key='index'}
{$vo}&nbsp;
{/volist}
/ {$Video.v_parent_category}
</p>
</div>
</div>
</li>

View File

@@ -0,0 +1,9 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="top-line-dot text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">
<span class="text-muted pull-right">{$Video.v_remarks}</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,51 @@
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_bd clearfix">
<div class="col-lg-wide-75 col-xs-1 padding-0">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h2 class="title">最新{$val.v_category}</h2>
<a class="more text-muted"
href='{site:vclurl parent_category="$val.v_category_en" category="all" area="all" lang="all" year="all" order="all" page="1"/}'>
更多<i class="fa fa-angle-right"></i>
</a>
<ul class="nav nav-text pull-right hidden-sm hidden-xs">
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li>
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
class="text-muted">
{$arrChildrenCategory.v_category}
</a>
<span class="split-line"></span>
</li>
{/foreach}
</ul>
</div>
</div>
<ul class="myui-vodlist clearfix">
{video:list count="12" v_parent_category_en="$val.v_category_en" sort_type="news" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="27+($key*12)" col-lg="6"/}
{/video:list}
</ul>
</div>
<div class="col-lg-wide-25 hidden-sm hidden-xs visible-inline-lg">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h2 class="title">最热{$val.v_category}周排行榜</h2><a class="more text-muted"
href="{$strRankUrlTemp}">更多<i class="fa fa-angle-right"></i></a>
</div>
</div>
<ul class="myui-vodlist__text active clearfix" style="padding: 0 10px;">
{video:ranklist count="16"
v_parent_category_en="$val.v_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="27+($key*17)"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,294 @@
对于一个小说站点(如你提到的包含首页、分类列表、排行榜、男生/女生频道、详情页面、章节页面、目录页面等),配置 Sitemap 时需要根据页面类型的重要性和 SEO 目标选择性地包含 URL并合理组织以优化搜索引擎抓取和索引。以下是针对小说站点特点的 Sitemap 配置建议,包括哪些页面应该包含、如何处理大量 URL以及相关的最佳实践。
---
### 一、小说站点页面类型分析
根据你提供的信息,小说站点的页面类型可以分为以下几类,每类页面的 SEO 价值和是否需要包含在 Sitemap 中有所不同:
| 页面类型 | 描述 | SEO 价值 | 是否包含在 Sitemap |
|------------------|----------------------------------------------------------------------|---------------------------------------|--------------------|
| **首页** | 网站主入口,通常包含推荐小说、导航等。 | 高(核心流量入口) | 是 |
| **分类列表** | 按题材、类型(如玄幻、言情)展示小说列表,可能有多页(如 `page=2`)。| 高(引导用户到具体小说) | 是(仅包含主页面) |
| **排行榜** | 热门小说排行,可能按日、周、月或类型(如男生/女生)排序。 | 中到高(吸引点击,动态更新) | 是(视情况精选) |
| **男生/女生频道**| 针对不同用户群的分类页面(如男生玄幻、女生穿越)。 | 高(细分用户需求) | 是 |
| **详情页面** | 小说详情页,包含简介、封面、目录链接等。 | 高(核心转化页面) | 是 |
| **章节页面** | 小说具体章节内容,通常数量庞大。 | 中到低内容分散SEO 价值有限) | 视情况(可选) |
| **目录页面** | 小说章节列表,汇总所有章节链接。 | 中便于用户导航SEO 价值中等) | 是 |
---
### 二、Sitemap 配置策略
#### 1. 哪些 URL 应该包含?
基于小说站点的特点,建议优先包含以下页面:
- **首页**
- 包含站点的唯一首页 URL`https://www.example.com/`)。
- 设置高优先级(如 `<priority>1.0</priority>`)和频繁更新(如 `<changefreq>daily</changefreq>`)。
- **分类列表(主页面)**
- 包含每个分类的主页面(如 `https://www.example.com/category/xuanhuan`)。
- 排除分页 URL`https://www.example.com/category/xuanhuan?page=2`),因为分页内容重复且 SEO 价值低。
- 示例:玄幻、言情、历史等分类页面。
- **男生/女生频道**
- 包含频道主页(如 `https://www.example.com/male``https://www.example.com/female`)。
- 如果频道下有子分类(如男生玄幻、女生穿越),也应包含。
- **排行榜(精选)**
- 包含主要排行榜页面(如 `https://www.example.com/rank/hot``https://www.example.com/rank/male`)。
- 如果排行榜页面频繁更新(如每日排行),可设置 `<changefreq>daily</changefreq>`
- 排除次要或动态参数页面(如 `?sort=week`),避免重复内容。
- **详情页面**
- 包含所有小说详情页面(如 `https://www.example.com/book/123`)。
- 这些页面是 SEO 的核心,吸引搜索流量(如用户搜索小说名)。
- 使用 `<lastmod>` 反映小说更新时间,提示搜索引擎重新抓取。
- **目录页面**
- 包含每个小说的目录页面(如 `https://www.example.com/book/123/chapters`)。
- 目录页面便于用户导航,且可能被搜索引擎索引为长尾关键词(如“小说名 章节列表”)。
- **章节页面(可选)**
- **不建议全部包含**小说章节页面数量庞大可能数十万到数百万SEO 价值较低(用户很少通过搜索直接进入具体章节)。
- **可选策略**
- 只包含最新章节(如最近 30 天的章节),吸引搜索引擎抓取更新内容。
- 只包含热门小说的前几章(如前 10 章),作为引流入口。
- 如果包含,设置较低优先级(如 `<priority>0.3</priority>`)。
#### 2. 哪些 URL 应该排除?
- **分页 URL**:如分类列表的 `?page=2`,重复内容无 SEO 价值。
- **动态参数 URL**:如 `?sort=latest``?utm_source=...`,应规范化到标准 URL。
- **不可索引页面**
- 已设置 `<meta name="robots" content="noindex">` 的页面。
-`robots.txt` 屏蔽的页面(如 `Disallow: /user/`)。
- **用户生成内容**
- 如评论页、用户个人中心、搜索结果页(`?q=keyword`)。
- **临时页面**
- 如促销活动页、测试页面。
- **错误页面**:如 404、500 页面。
---
### 三、处理大量 URL 的策略
小说站点通常有大量 URL尤其是章节页面可能超过 Sitemap 的限制50,000 条 URL 或 50MB。以下是应对方法
#### 1. 使用 Sitemap 索引文件
- 将 URL 分组到多个子 Sitemap 文件(如 `sitemap-books.xml``sitemap-chapters.xml`),每文件不超过 50,000 条 URL。
- 创建一个 Sitemap 索引文件(如 `sitemap_index.xml`)引用所有子 Sitemap。
- 示例:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-chapters.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 2. 分组策略
- **按页面类型分组**
- `sitemap-main.xml`:首页、分类列表、排行榜、男生/女生频道。
- `sitemap-books.xml`:小说详情页面和目录页面。
- `sitemap-chapters.xml`:章节页面(如果包含)。
- **按更新频率分组**
- 频繁更新的页面(如排行榜、最新章节)单独分组,设置 `<changefreq>daily</changefreq>`。
- **按小说分组**
- 为每部小说生成单独的 Sitemap如 `sitemap-book123.xml`),包含其详情页、目录页和部分章节页。
#### 3. 动态生成 Sitemap
- **脚本生成**
- 使用 Python、PHP 等脚本从数据库查询 URL生成 Sitemap 文件。
- 示例Python参考前文
```python
from lxml import etree
import datetime
# 模拟数据库查询
urls = [
{'loc': 'https://www.example.com/', 'lastmod': '2025-04-21', 'changefreq': 'daily', 'priority': '1.0'},
{'loc': 'https://www.example.com/book/123', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.8'},
{'loc': 'https://www.example.com/book/123/chapters', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.6'},
]
urlset = etree.Element("urlset", xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
for url in urls:
url_element = etree.SubElement(urlset, "url")
loc = etree.SubElement(url_element, "loc")
loc.text = url['loc']
lastmod = etree.SubElement(url_element, "lastmod")
lastmod.text = url['lastmod']
changefreq = etree.SubElement(url_element, "changefreq")
changefreq.text = url['changefreq']
priority = etree.SubElement(url_element, "priority")
priority.text = url['priority']
tree = etree.ElementTree(urlset)
tree.write("sitemap-main.xml", pretty_print=True, xml_declaration=True, encoding="UTF-8")
```
- **定时任务**
- 使用 cron 任务每天或每周生成 Sitemap上传到根目录。
- 示例Linux cron
```bash
0 2 * * * python3 /path/to/generate_sitemap.py
```
- **触发式更新**
- 在小说更新(如新章节发布)时,触发脚本更新相关 Sitemap。
#### 4. 伪静态 Sitemap
- 配置服务器将 `sitemap_index.xml` 等请求重定向到动态脚本,实时生成 XML 内容。
- 示例Apache + PHP参考前文
```apache
RewriteEngine On
RewriteRule ^sitemap_index\.xml$ sitemap_index.php [L]
```
---
### 四、robots.txt 配置
在 `robots.txt` 中声明 Sitemap 索引文件,使用绝对路径:
```txt
User-agent: *
Disallow: /user/
Disallow: /search/
Sitemap: https://www.example.com/sitemap_index.xml
```
- 确保不通过 `Disallow` 屏蔽 Sitemap 文件。
- 如果 Sitemap 托管在 CDN如 `https://cdn.example.com/sitemap_index.xml`),在 `robots.txt` 中使用 CDN 地址,并验证所有权。
---
### 五、SEO 优化建议
1. **优先级设置**
- 首页:`<priority>1.0</priority>`
- 分类/频道/详情页:`<priority>0.8</priority>`
- 目录页:`<priority>0.6</priority>`
- 章节页(若包含):`<priority>0.3</priority>`
2. **更新频率**
- 首页、排行榜:`<changefreq>daily</changefreq>`
- 分类/频道/详情/目录页:`<changefreq>weekly</changefreq>`
- 章节页:`<changefreq>monthly</changefreq>`(或 `never` 如果不频繁更新)
3. **规范化 URL**
- 确保只包含规范 URL如 `https://www.example.com/book/123` 而非 `http://example.com/book/123`)。
- 使用 `<link rel="canonical">` 或 Sitemap 统一规范版本。
4. **避免重复内容**
- 排除带参数的 URL如 `?sort=latest`)。
- 如果男生/女生频道与分类列表有重复内容,选择主要入口包含在 Sitemap 中。
5. **图片 Sitemap可选**
- 为小说封面图片创建图片 Sitemap优化图片搜索排名。
- 示例:
```xml
<url>
<loc>https://www.example.com/book/123</loc>
<image:image>
<image:loc>https://www.example.com/images/book123.jpg</image:loc>
<image:title>小说封面</image:title>
</image:image>
</url>
```
---
### 六、注意事项
1. **章节页面数量庞大**
- 如果每部小说有数百章节,章节页面可能占主导。建议只包含最新或热门章节,或完全排除章节页面,依靠目录页面引导爬虫。
2. **抓取预算**
- 小说站点 URL 数量多,需优化 Sitemap 避免浪费搜索引擎的抓取预算。
3. **动态更新**
- 小说站点内容更新频繁(如新章节发布),建议动态生成 Sitemap 或频繁更新。
4. **验证 Sitemap**
- 提交 `sitemap_index.xml` 到 Google Search Console、Bing Webmaster Tools检查是否被正确解析。
- 使用 GSC 的“索引覆盖率”报告,确认重要页面(如详情页)是否被索引。
---
### 七、示例 Sitemap 配置
#### 索引文件(`sitemap_index.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 主 Sitemap`sitemap-main.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.example.com/category/xuanhuan</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/male</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/rank/hot</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
</urlset>
```
#### 小说 Sitemap`sitemap-books.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/book/123</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/book/123/chapters</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
```
---
### 八、结论
- **不需包含所有 URL**:小说站点应优先包含首页、分类列表、男生/女生频道、排行榜、详情页面和目录页面。章节页面可根据需要部分包含或完全排除。
- **精选策略**:重点包含 SEO 价值高的页面(如详情页),排除分页、动态参数、低价值页面。
- **大型站点处理**:使用 Sitemap 索引文件和子 Sitemap按页面类型分组动态生成以应对大量 URL。
- **SEO 优化**:设置合理的 `<priority>` 和 `<changefreq>`,定期更新 Sitemap验证索引效果。
如果你需要针对小说站点的具体脚本(生成 Sitemap 或伪静态配置、CMS 插件推荐,或其他细节(如图片 Sitemap、robots.txt 优化),请告诉我!

View File

@@ -0,0 +1,3 @@
User-agent: *
Disallow:
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nclurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" order="zheng" page="1"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
<!-- 最多 50,000 个 <url> 条目 -->
</urlset>

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,18 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:lcpurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.{$DomainModel->d_domain}/</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- 分类 -->
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
<!-- 排序 -->
{novel:sort d_key="sort_key" d_val="strSortName"}
<!-- 状态 -->
{novel:status d_key="status_key" d_val="strStatusName"}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/novel:status}
{/novel:sort}
{/novel:category}
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
</urlset>

View File

@@ -0,0 +1,39 @@
{novel:pagerexp page="1" limit="40000"
sort_type="news"
d_key="d_key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-main.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
<!--小说总数量/50000 得出 sitemap-books 一共有多少个 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说总数量/50000 得出 sitemap-books-catalog一共有多少个,每个小说只取一个目录链接,分页不需要加入去 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-catalog-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说章节取最新章节 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-chapters-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
</sitemapindex>

View File

@@ -0,0 +1,118 @@
{extend name="base" /}
{block name="get-data"}
{site:grm page_code="h5_video_search" diff="$Request.url" num="30" g_key="arrGrm" /}
{/block}
{block name="title"}我的观看记录{/block}
{block name="keywords"}我的观看记录{/block}
{block name="description"}我的观看记录{/block}
{block name="head"}
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name="main"}
<div class="wrap">
<div class="container min">
<div class="row">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h2 class="a1100b title">观看记录</h2>
</div>
</div>
<div class="myui-panel_bd col-pd clearfix">
<ul class="myui-vodlist__media clearfix" id="historyContainer">
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
<script>
const strVideoUrlTemp = `{site:replace code="VIDEO_INFO_URL"}`;
const strVideoPlayUrlTemp = `{site:replace code="VIDEO_PLAY_URL"}`;
const strSearchUrlTemp = `{site:replace code="VIDEO_SEARCH_LIST_URL"}`;
// 调用展示书架功能
document.addEventListener("DOMContentLoaded", function () {
const secondTemplate = `
<li class="active clearfix">
<div class="thumb">
<a class="myui-vodlist__thumb img-lg-150 img-xs-100 lazyload"
href={{videoUrl}}
title="{{videoName}}"
data-src="{{videoPic}}"
data-original="{{videoPic}}"
style="background-image: url(&quot;{{videoPic}}&quot;);">
<span class="play hidden-xs"></span>
<span class="pic-tag pic-tag-top" style="background-color: #5bb7fe;">{$Video.v_score}分</span>
<span class="pic-text text-right">{{videoRemarks}}</span>
</a>
</div>
<div class="detail">
<h4 class="title">
<a href={{videoUrl}}>
{{videoName}}
</a>
</h4>
<p><span class="text-muted">导演:</span>内详</p>
<p><span class="text-muted">主演:</span>内详</p>
<p><span class="text-muted">分类:</span>
{{videoParentCategory}}
<span class="split-line"></span>
<span class="text-muted hidden-xs">地区:</span>
内详
<span class="split-line"></span>
<span class="text-muted hidden-xs">年份:</span>
{{videoYear}}
</p>
<p class="hidden-xs">
<span class="text-muted">简介:</span>
...
<a href={{videoUrl}}>详情 &gt;</a>
</p>
<p class="margin-0">
<a class="btn btn-sm btn-warm"
href='{{videoPlayUrl}}'>
<i class="fa fa-play"></i>
立即播放
</a>
&nbsp;&nbsp;
<a class="btn btn-sm btn-default hidden-xs"
href={{videoUrl}}>
查看详情
<i class="fa fa-angle-right"></i>
</a>
</p>
</div>
</li>
`;
// 调用展示书架功能
displayHistory(secondTemplate);
})
</script>
{/block}

View File

@@ -0,0 +1,268 @@
{extend name="base" /}
{block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="27" button_num="10" cache_life="86400"
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="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}" />
{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"}
<div class="container">
<h1 class="view-title">
{site:replace code="VIDEO@GETCATEGORY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORY@TEXT"}</h4>
<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='{site:vciurl parent_category="$Request.route.strParentCategory" /}' itemprop="item">
<span itemprop="name">{site:getval code="strVideoParentCategoryName" /}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{site:getval code="strVideoCategoryName" /}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
</nav>
<div class="row">
<div class="myui-panel myui-panel-bg2 clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h3 class="title"> {site:getval code="strVideoParentCategoryName" /}</h3>
</div>
</div>
<div class="myui-panel_bd">
<div class="slideDown-box">
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="text-muted btn">类型</a></li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li>
<a href='{site:vclurl parent_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="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="btn 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>
<a class=" a618ce btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'>{$arrChildrenCategory.v_category}</a>
</li>
{/foreach}
{/if}
{/video:categorytype}
</ul>
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="btn text-muted">地区</a></li>
{video:area d_key="key" d_val="val"}
<li>
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$key" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" ae52d4 btn {if $Request.route.strArea == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:area}
</ul>
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="btn text-muted">年份</a></li>
{video:year d_key="key" d_val="val"}
<li>
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$key" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" e230a5 btn {if $Request.route.strYear == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:year}
</ul>
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="btn text-muted">语言</a></li>
{video:lang d_key="key" d_val="val"}
<li>
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$key" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" btn {if $Request.route.strLang == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:lang}
</ul>
</div>
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="btn text-muted">排序</a></li>
{video:sort d_key="key" d_val="val"}
<li>
<a class=" btn {if $Request.route.strOrder == $key}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$key" page="$Request.route.intPage"}'>
{$val}
</a>
</li>
{/video:sort}
</ul>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_bd">
<ul class="myui-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="9"/}
{/foreach}
</ul>
</div>
</div>
</div>
<ul class="myui-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li>
<a href="{$vo.url}"
class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,195 @@
{extend name="base" /}
{block name="get-data"}
{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}
{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_parent_category_en="$Request.route.strParentCategory"
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}{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 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>
{video:categorytype category_type="ONE" d_key="strParentCategoryKey" d_val="arrParentCategory"}
{if $arrParentCategory.v_category_en == $Request.route.strParentCategory}
{foreach $arrParentCategory.children as $strChildrenCategoryKey=>$arrChildrenCategory }
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_bd clearfix">
<div class="col-lg-wide-75 col-xs-1 padding-0">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title">最新{$arrChildrenCategory.v_category}</h3>
<a class="more text-muted"
href='{site:vclurl parent_category="$arrParentCategory.v_category_en" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"/}'>
更多<i class="fa fa-angle-right"></i>
</a>
<ul class="nav nav-text pull-right hidden-sm hidden-xs">
{foreach $arrChildrenCategory.children as $intChildrenKey=>$arrChildrenCategory }
<li>
<a href='{site:vclurl parent_category="$arrParentCategory.v_category_en" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
class="text-muted">
{$arrChildrenCategory.v_category}
</a>
<span class="split-line"></span>
</li>
{/foreach}
</ul>
</div>
</div>
<ul class="myui-vodlist clearfix">
{video:list count="12"
v_parent_category_en="$arrParentCategory.v_category_en"
v_category_en="$arrChildrenCategory.v_category_en"
sort_type="news"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="27" col-lg="6"/}
{/video:list}
</ul>
</div>
<div class="col-lg-wide-25 hidden-sm hidden-xs visible-inline-lg">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title">最热{$arrChildrenCategory.v_category}</h3><a class="more text-muted"
href="{$strRankUrlTemp}">更多<i class="fa fa-angle-right"></i></a>
</div>
</div>
<ul class="myui-vodlist__text active clearfix" style="padding: 0 10px;">
{video:ranklist count="17"
v_parent_category_en="$arrParentCategory.v_category_en"
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="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
{/foreach}
{/if}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,224 @@
{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="86400"}
{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">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKINDEX@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKINDEX@TEXT"}</h4>
<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>
<div class="row">
<div class="myui-panel myui-panel-bg2 clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h2 class="title"> 排行榜 筛选</h2>
</div>
</div>
<div class="myui-panel_bd">
<div class="slideDown-box">
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="text-muted btn">类型</a></li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li>
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="daily" page="1"/}'
class="btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
</div>
</div>
</div>
</div>
<!-- hidden-xs visible-inline-lg-->
<div class="myui-panel myui-panel-bg clearfix ">
<div class="myui-panel-box clearfix">
<?php $intRankSortKey = 0;?>
{video:ranksort d_key="strRankSortKey" d_val="strRankSortVal"}
<?php $intRankSortKey ++ ;?>
<div class="col-lg-4 col-md-3 col-sm-2 col-xs-1 padding-0">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h2 class="title">{$strRankSortVal}排行榜</h2>
<a class="more text-muted"
href='{site:vrlurl parent_category="all" category="all" sort_type="$strRankSortKey" page="1"/}'>
更多
<i class="fa fa-angle-right"></i>
</a>
</div>
</div>
<div class="myui-panel_bd clearfix">
<ul class="myui-vodlist__media active col-pd clearfix">
{video:ranklist count="1"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
<li>
<div class="thumb">
<a class="myui-vodlist__thumb img-xs-70"
style="background: url({$Video.v_pic});"
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-original="{$Video.v_pic}">
</a>
</div>
<div class="detail detail-side">
<h6 class="title">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' >
<i class="fa fa-angle-right text-muted pull-right"></i>
{$Video.v_name}
</a>
</h6>
<p class="font-12"><span class="text-muted">类型:</span>{$Video.v_parent_category}</p>
<p class="font-12"><span class="text-muted">地区:</span>
{volist name='$Video.v_area' id='vo' key='index'}
{$vo}&nbsp;
{/volist}
</p>
<p class="font-12 margin-0"><span class="text-muted">主演:</span>
{volist name='$Video.v_actor' id='vo' key='index'}
{$vo}
&nbsp;
{/volist}
</p>
</div>
</li>
{/video:ranklist}
</ul>
<ul class="myui-vodlist__text col-pd clearfix">
{video:ranklist count="10"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
{if $key >0}
{include file="public/video-list-phb" start="($intRankSortKey * 10)"/}
{/if}
{/video:ranklist}
</ul>
</div>
</div>
{/video:ranksort}
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,204 @@
{extend name="base" /}
{block name="get-data"}
{video:ranklistexp page="1" limit="50"
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" 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@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="bac3b3 container" style="margin-top:10px;">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKLIST@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKLIST@TEXT"}</h4>
<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>
<div class=" row">
<div class="myui-panel myui-panel-bg2 clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h2 class="title"> {site:getval code="strVideoParentCategoryName" /}排行榜</h2>
</div>
</div>
<div class="myui-panel_bd">
<div class="slideDown-box">
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="text-muted btn">类型</a></li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li>
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="daily" page="1"/}'
class="btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="btn 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>
<a class="btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
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>
<ul class="myui-screen__list nav-slide clearfix" data-align="left">
<li><a class="text-muted btn">排序</a></li>
{video:ranksort d_key="key" d_val="val"}
<li>
<a href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" sort_type="$key" page="1"/}'
class="btn {if $Request.route.strSortType == $key}btn-warm{/if}">
{$val}排行榜
</a>
</li>
{/video:ranksort}
</ul>
</div>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_bd">
<ul class="myui-vodlist clearfix">
{foreach $arrVideoRankList as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="9"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,231 @@
{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="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="$Request.url" 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="wrap">
<div class="container min">
<h1 class="view-title">
{site:replace code="VIDEO@GETSEARCHVIDEO@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETSEARCHVIDEO@TEXT"}</h4>
<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='{site:vsurl key="$Request.get.keyword" p="1"/}' itemprop="item">
<span itemprop="name">搜索:{$Request.get.keyword}</span>
</a>
<meta itemprop="position" content="2" />
</li>
</ol>
</nav>
<div class="row">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h2 class="a1100b title"> 搜索<span style="color:red">“{$Request.get.keyword}”</span>相关结果共有 <span style="color:red">{$resData.p_data.total}</span> 部视频 </h2>
</div>
</div>
<div class="myui-panel_bd col-pd clearfix">
<ul class="myui-vodlist__media clearfix" id="searchList">
{foreach $resData.data as $key=>$Video}
<li class="active clearfix">
<div class="thumb">
<a class="myui-vodlist__thumb img-lg-150 img-xs-100 lazyload"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"
data-original="{$Video.v_pic}"
style="background-image: url(&quot;{$Video.v_pic}&quot;);">
<span class="play hidden-xs"></span>
<span class="pic-tag pic-tag-top" style="background-color: #5bb7fe;">{$Video.v_score}分</span>
<span class="pic-text text-right">{$Video.v_remarks}</span>
</a>
</div>
<div class="detail">
<h4 class="title">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'>
{$Video.v_name}
</a>
</h4>
<p><span class="text-muted">导演:</span>内详</p>
<p><span class="text-muted">主演:</span>内详</p>
<p><span class="text-muted">分类:</span>
{$Video.v_parent_category}
<span class="split-line"></span>
<span class="text-muted hidden-xs">地区:</span>
内详
<span class="split-line"></span>
<span class="text-muted hidden-xs">年份:</span>
{$Video.v_year}
</p>
<p class="hidden-xs">
<span class="text-muted">简介:</span>
...
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'>详情 &gt;</a>
</p>
<p class="margin-0">
<a class="btn btn-sm btn-warm"
href='{site:vpurl v_id="$Video.v_id" v_py="$Video.v_name_en" play_type="default" play_index="1" /}'>
<i class="fa fa-play"></i>
立即播放
</a>
&nbsp;&nbsp;
<a class="btn btn-sm btn-default hidden-xs"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'>
查看详情
<i class="fa fa-angle-right"></i>
</a>
</p>
</div>
</li>
{/foreach}
</ul>
</div>
</div>
</div>
<ul class="myui-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li >
<a href="{$vo.url}" class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
</div>
</div>
<!-- <script
type="text/javascript">
var wdkey = /哪吒/g; var wd = $('#searchList'); wd[0].innerHTML = wd[0].innerHTML.replace(wdkey, "<font color=red>哪吒</font>");
</script> -->
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,499 @@
{extend name="base" /}
{block name="get-data"}
{if $Request.route.intVId}
{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" /}
{/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="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="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="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}">
{// 结构化数据}
<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="main"}
<div class="container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOINFO@H1" diff="$arrVideo.v_id"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOINFO@TEXT" diff="$arrVideo.v_id"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="row">
<div class="col-md-wide-7 col-xs-1 padding-0">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="col-xs-1">
<div class="myui-content__thumb">
<a class="myui-vodlist__thumb picture"
href="#" title="{$arrVideo.v_name}">
<img class="lazyload"
src="{$arrVideo.v_pic}"
data-original="{$arrVideo.v_pic}">
<span class="play hidden-xs"></span>
</a>
</div>
<div class="myui-content__detail">
<h1 class="title">{$arrVideo.v_name}</h1>
<div id="rating" class="score" data-mid="1" data-id="71202" data-score="{$arrVideo.v_score}">
<span class="left text-muted">评分:</span>
<span class="branch">{$arrVideo.v_score}</span>
</div>
<p class="data">
<span class="text-muted">分类:</span>
<a href='{site:vsurl key="$arrVideo.v_parent_category" p="1"/}'>{$arrVideo.v_parent_category}</a>
<span class="split-line"></span>
<span class="text-muted hidden-xs">地区:</span>
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
<span class="split-line"></span>
<span class="text-muted hidden-xs">年份:</span>
<a href='{site:vsurl key="$arrVideo.v_year" p="1"/}'>{$arrVideo.v_year}</a>
</p>
<p class="data">
<span class="text-muted">更新:</span>
<span class="text-red">{$arrVideo.v_publish_date}</span>
</p>
<p class="data">
<span class="text-muted">主演:</span>
{volist name='$arrVideo.v_actor' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="data"><span class="text-muted">导演:</span>
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="data hidden-xs">
<span class="text-muted">简介:</span>
{$arrVideo.v_description|raw|mb_substr=0,30}
<a class="text-link" href="#desc">
详情
<i class="fa fa-angle-right"></i>
</a>
</p>
</div>
<div class="myui-content__operate">
<a class="btn btn-warm" href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
<i class="fa fa-play"></i>
立即播放
</a>
</div>
</div>
</div>
</div>
<!-- <script type="text/javascript">Myui.Score();</script> -->
<div class="myui-panel myui-panel-bg clearfix" id="desc">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h3 class="title">
<img src="/template/videoboku/images/juqing.png">剧情简介</h3>
</div>
</div>
<div class="myui-panel_bd">
<div class="col-pd text-collapse content">
<!-- <p class="myui-content__tag">关键词
<a href="">
{$arrVideo.v_name}
</a>
&nbsp;
</p> -->
<span class="sketch content">
《{$arrVideo.v_name}》是一部在
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
上映的导演的日韩动漫影视作品,影片的导演是
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
{$arrVideo.v_description|raw}
想要看更多的
<a href="#" title="{$DomainModel->d_name}_{$arrVideo.v_name}" >《{$arrVideo.v_name}》</a>
相关影视作品,请关注
<a href="/" title="{$DomainModel->d_name}" >{$DomainModel->d_domain}</a>
</span>
</div>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix"><a
class="more sort-button pull-right" href="javascript:;"><i
class="fa fa-sort-amount-asc"></i>排序</a>
<h3 class="title"><img src="/template/videoboku/images/bf.png">播放线路</h3>
<ul class="nav nav-tabs active">
<?php $keyLineGroup = 0;?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup ++ ;?>
<li class='{eq name="$keyLineGroup" value="1"}active {/eq}' id="line_head_{$strPlayGroupName}" onclick="checkLine('{$strPlayGroupName}')">
<a href="javascript:;" data-toggle="tab">
{$strPlayGroupName}
</a>
</li>
{/foreach}
</ul>
</div>
</div>
<div class="tab-content myui-panel_bd">
<?php $keyLine = 0;?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLine ++ ;?>
<div id="playlist_{$strPlayGroupName}" class='tab-pane fade in clearfix {eq name="$keyLine" value="1"}active {/eq}'>
<ul class="myui-content__list sort-list clearfix"
style="max-height: 300px; overflow: auto;">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="col-lg-10 col-md-8 col-sm-6 col-xs-4">
<a class="btn btn-default"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>
{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
{/foreach}
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title"><img src="/template/videoboku/images/zb.png">猜你喜欢</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title"><img src="/template/videoboku/images/see.png">大家正在看</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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="13" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="col-md-wide-3 col-xs-1 myui-sidebar hidden-sm hidden-xs">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title">热播榜</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__media active col-pd clearfix">
{video:ranklist count="1"
v_parent_category_en="$arrVideo.v_parent_category_en"
v_category_en="$arrVideo.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
<li>
<div class="thumb">
<a class="myui-vodlist__thumb img-xs-70"
style="background: url({$Video.v_pic});"
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-original="{$Video.v_pic}">
</a>
</div>
<div class="detail detail-side">
<h6 class="title">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' >
<i class="fa fa-angle-right text-muted pull-right"></i>
{$Video.v_name}
</a>
</h6>
<p class="font-12"><span class="text-muted">类型:</span>{$Video.v_parent_category}</p>
<p class="font-12"><span class="text-muted">地区:</span>
{volist name='$Video.v_area' id='vo' key='index'}
{$vo}&nbsp;
{/volist}
</p>
<p class="font-12 margin-0"><span class="text-muted">主演:</span>
{volist name='$Video.v_actor' id='vo' key='index'}
{$vo}
&nbsp;
{/volist}
</p>
</div>
</li>
{/video:ranklist}
</ul>
<ul class="myui-vodlist__text col-pd clearfix">
{video:ranklist count="30"
v_parent_category_en="$arrVideo.v_parent_category_en"
v_category_en="$arrVideo.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
{if $key >0}
{include file="public/video-list-phb" start="25"/}
{/if}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function checkLine(val){
//点击 通过传递过来的 当前元素id 组建2个 id ,一个是 head id 一个是列表id
// 1.给当前元素 添加类名 activ ,其它兄弟元素 删除 activee
// 构造 ID去掉 # 前缀)
let strLineHeadId = `line_head_${val}`;
let strLineListId = `playlist_${val}`;
// 获取 DOM 元素
let headElement = document.getElementById(strLineHeadId);
let listElement = document.getElementById(strLineListId);
// 1. 处理头部导航的 active 类
let navItems = document.querySelectorAll('.nav-tabs li');
navItems.forEach(item => {
if (item.id === strLineHeadId) {
item.classList.add('active');
} else {
item.classList.remove('active');
}
});
// 2. 处理播放列表的 active 类
let tabPanes = document.querySelectorAll('.tab-content .tab-pane');
tabPanes.forEach(pane => {
if (pane.id === strLineListId) {
pane.classList.add('active');
} else {
pane.classList.remove('active');
}
});
}
</script>
<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_parent_category': `{$arrVideo['v_parent_category']}`,
'v_year': `{$arrVideo['v_year']}`,
};
</script>
{/block}
{block name="customize"} {/block}

View File

@@ -0,0 +1,556 @@
{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}">
{// 结构化数据}
<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="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/dplayer/1.24.0/DPlayer.min.css">
<style type="text/css">
</style>
{/block}
{block name='body-class'}video-play-page active{/block}
{block name="main"}
<div class="myui-player clearfix" style="background-color: #27272f;">
<div class="container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOPLAY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOPLAY@TEXT"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="row">
<div class="myui-player__item clearfix" style="background-color: #1f1f1f;">
<div class="col-lg-wide-8 col-md-wide-8 clearfix padding-0 relative" id="player-left">
<div class="myui-player__box player-fixed">
<div id="tips" class="tips close-box" style="background-color:#181515;">
<a
class="tips-close-btn pull-right" onclick="closeTips()"><i
class="fa fa-close"></i>
</a>
<ul>
<li id="Marquee" style="height: 38px">
<div>正在播放:{$arrVideo.v_name}-第{$Request.route.intPlayIndex}集</div>
</li>
</ul>
</div>
<a class="player-fixed-off" href="javascript:;" style="display: none;">
<i class="fa fa-close"></i>
</a>
<div class="dplayer-prent">
<div id="dplayer" class="dplayer" muted=“muted” style="margin-top: 5px;"></div>
</div>
</div>
<ul class="myui-player__operate" style="background-color: #1b1a25;">
<li><a href="javascript:;" onclick="window.location.reload()"><i
class="fa fa-spinner"></i>刷新</a></li>
<li>
<a class="digg_link" data-mid="1" data-type="up" href="javascript:;">
<i class="fa fa-thumbs-up"></i>
<span class="digg_num">{$arrVideo.v_score}</span>
</a>
</li>
<li>
<a class="digg_link" data-mid="1" data-type="down"
href="javascript:;">
<i class="fa fa-thumbs-down"></i>
<span class="digg_num">{$arrVideo.vc_clicks ?? 0}</span>
</a>
</li>
</ul>
</div>
<div class="col-lg-wide-2 col-md-wide-2 " id="player-sidebar"
style="max-height: 549.594px; overflow: auto;">
<div class="myui-panel margin-0 clearfix">
<div class="myui-panel-box clearfix">
<div class="tips close-box"
style="background-color:#0090CE;border-radius: 5px;margin-bottom: 10px;text-shadow: #1f1f1f 2px 2px 2px;font-size:15px;">
<span class="tips-close-btn pull-right"><span
style="font-weight: bold;">播放卡顿请点下方切换线路</span>&nbsp;<i
style="font-size:20px" class="fa fa-hand-o-down"></i></span></div>
<div class="myui-panel__head active clearfix">
<h2 class="title text-fff">{$arrVideo.v_name}</h2>
</div>
<div class="text-muted">
<ul class="nav nav-tabs pull-right">
<?php $keyLineGroup = 0;?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLineGroup ++ ;?>
<li class='dropdown pb10 margin-0 {eq name="$keyLineGroup" value="1"}active {/eq}'
id="line_head_{$strPlayGroupName}"
onclick="checkLine('{$strPlayGroupName}')">
<a href='javascript:;' >
{$strPlayGroupName}
</a>
</li>
&nbsp;
{/foreach}
</ul>
换线路:
</div>
<div class="tab-content mb10">
<?php $keyLine = 0;?>
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<?php $keyLine ++ ;?>
<div id="playlist_{$strPlayGroupName}" class='tab-pane fade in clearfix {eq name="$keyLine" value="1"}active {/eq}'>
<ul class="myui-content__list playlist clearfix" id="playlist">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="col-lg-3 col-md-2 col-sm-5 col-xs-4 active">
<a class="btn btn-default btn-warm"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>
{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
{/foreach}
</div>
</div>
</div>
</div>
</div>
<div class="myui-player__data hidden-xs clearfix">
<h3>
<a class="text-fff" href="/voddetail/71202.html">{$arrVideo.v_name}</a>
<small class="text-muted">第{$Request.route.intPlayIndex}集</small>
</h3>
<p class="text-muted margin-0">
{$arrVideo.v_publish_date}更新
/
<span class="text-red">{$arrVideo.v_score}分</span>
/
<a class="text-muted">{$arrVideo.v_parent_category}</a>
/<a class="text-muted">
{$arrVideo.v_category} /
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist} </a>
/
<a class="text-muted">{$arrVideo.v_year}</a>
</p>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="row">
<div class="col-lg-wide-75 col-xs-1 padding-0">
<div class="myui-panel myui-panel-bg clearfix" id="desc">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head active bottom-line clearfix">
<h3 class="title"><img src="/template/videoboku/images/juqing.png">剧情简介</h3>
</div>
</div>
<div class="myui-panel_bd">
<div class="col-pd text-collapse content">
<p>
<span class="text-muted">导演:</span>
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="myui-content__tag">关键词:
</p>
<span
{$arrVideo.v_name}是一部在
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
上映的导演的日韩动漫影视作品,影片的导演是
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
{$arrVideo.v_description|raw}
想要看更多的
<a href="#" title="{$DomainModel->d_name}_{$arrVideo.v_name}" >《{$arrVideo.v_name}》</a>
相关影视作品,请关注
<a href="/" title="{$DomainModel->d_name}" >{$DomainModel->d_domain}</a>
</span>
<span class="data"
style="display: none;">
《{$arrVideo.v_name}》是一部在
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
上映的导演的日韩动漫影视作品,影片的导演是
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
{$arrVideo.v_description|raw}
想要看更多的
<a href="#" title="{$DomainModel->d_name}_{$arrVideo.v_name}" >《{$arrVideo.v_name}》</a>
相关影视作品,请关注
<a href="/" title="{$DomainModel->d_name}" >{$DomainModel->d_domain}</a>
</span>
<a
class="details text-link" href="javascript:;">
详情
<i class="fa fa-angle-down"></i>
</a>
</div>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_bd">
<div class="myui-panel_hd">
<div id="pl" class="myui-panel__head clearfix">
<h3 class="title">影片评论</h3>
</div>
</div>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title"><img src="/template/videoboku/images/zb.png">猜你喜欢</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title"><img src="/template/videoboku/images/see.png">大家正在看</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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="13" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="col-lg-wide-25 col-xs-1 myui-sidebar">
<div class="visible-inline-lg">
<div class="myui-panel myui-panel-bg clearfix">
<div class="myui-panel-box clearfix">
<div class="myui-panel_hd">
<div class="myui-panel__head clearfix">
<h3 class="title">热播榜</h3>
</div>
</div>
<div class="myui-panel_bd">
<ul class="myui-vodlist__media active col-pd clearfix">
{video:ranklist count="1"
v_parent_category_en="$arrVideo.v_parent_category_en"
v_category_en="$arrVideo.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
<li>
<div class="thumb">
<a class="myui-vodlist__thumb img-xs-70"
style="background: url({$Video.v_pic});"
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-original="{$Video.v_pic}">
</a>
</div>
<div class="detail detail-side">
<h6 class="title">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' >
<i class="fa fa-angle-right text-muted pull-right"></i>
{$Video.v_name}
</a>
</h6>
<p class="font-12"><span class="text-muted">类型:</span>{$Video.v_parent_category}</p>
<p class="font-12"><span class="text-muted">地区:</span>
{volist name='$Video.v_area' id='vo' key='index'}
{$vo}&nbsp;
{/volist}
</p>
<p class="font-12 margin-0"><span class="text-muted">主演:</span>
{volist name='$Video.v_actor' id='vo' key='index'}
{$vo}
&nbsp;
{/volist}
</p>
</div>
</li>
{/video:ranklist}
</ul>
<ul class="myui-vodlist__text col-pd clearfix">
{video:ranklist count="30"
v_parent_category_en="$arrVideo.v_parent_category_en"
v_category_en="$arrVideo.v_category_en"
sort_type="total"
d_key="key" d_val="Video" cache_life="86400"}
{if $key >0}
{include file="public/video-list-phb" start="25"/}
{/if}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
function checkLine(val){
//点击 通过传递过来的 当前元素id 组建2个 id ,一个是 head id 一个是列表id
// 1.给当前元素 添加类名 activ ,其它兄弟元素 删除 activee
// 构造 ID去掉 # 前缀)
let strLineHeadId = `line_head_${val}`;
let strLineListId = `playlist_${val}`;
// 获取 DOM 元素
let headElement = document.getElementById(strLineHeadId);
let listElement = document.getElementById(strLineListId);
// 1. 处理头部导航的 active 类
let navItems = document.querySelectorAll('.nav-tabs li');
navItems.forEach(item => {
if (item.id === strLineHeadId) {
item.classList.add('active');
} else {
item.classList.remove('active');
}
});
// 2. 处理播放列表的 active 类
let tabPanes = document.querySelectorAll('.tab-content .tab-pane');
tabPanes.forEach(pane => {
if (pane.id === strLineListId) {
pane.classList.add('active');
} else {
pane.classList.remove('active');
}
});
}
</script>
<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_parent_category': `{$arrVideo['v_parent_category']}`,
'v_year': `{$arrVideo['v_year']}`,
};
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 = ""
</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

@@ -0,0 +1,292 @@
以下是对提供的视频站点首页(`video2.com`SEO优化的分析和建议重点针对中国大陆的浏览搜索排名如百度结合同行影视站点的常见优化策略确保排名提升至首页。分析涵盖现有代码的优点、不足并提供具体改进建议。
---
### 现有SEO优点
1. **TKDTitle, Keywords, Description设置**
- 标题包含核心关键词如“大地资源网在线观看免费官网”“2024大地影院免费高清电视剧大全”长度适中约60字符符合百度要求。
- 关键词和描述包含热门搜索词(如“免费视频”“高清电视剧”),与影视站点用户搜索习惯高度相关。
- 使用`{{{video_type}}}`占位符,动态插入内容(如“动作片”),提升页面相关性。
2. **结构化数据**
- 包含`WebSite``VideoObject``CollectionPage`的JSON-LD结构化数据增强百度富媒体展示如视频缩略图、评分
- `ItemList`列出具体影片,包含名称、描述、演员、图片等,利于搜索引擎理解内容。
3. **站内链接**
- 导航链接(如`/vodtype/dian-ying`)和内容链接(如`/voddetail/wu-ren-guo-jing-140361`结构清晰URL规范化利于爬虫抓取。
- 提供“更多”链接(如`/vodtype-dian-ying/all-all-all-all/all-page1`),引导用户深入浏览,增加页面权重。
4. **Sitemap和Robots**
- 提供多种地图链接XML、RSS、百度Sitemap等便于搜索引擎快速收录。
- `robots.txt`支持,明确爬虫规则。
5. **响应式设计**
- 使用`meta viewport`和响应式网格(如`col-lg-4 col-md-4`适配PC和移动端提升用户体验和移动端排名。
6. **社交媒体标签**
- `og:title``og:description`等Open Graph标签支持社交媒体分享增加外部流量来源。
---
### SEO不足及优化建议
以下是首页SEO的不足之处及具体改进建议针对中国大陆影视站点特点如百度算法偏好优化。
#### 1. **标题Title优化**
**问题**
- 标题过长约70字符含“https://video1.com-大地”),可能被截断,影响展示效果。
- 包含重复关键词(如“大地”出现多次),降低关键词密度效率。
- 包含无关域名(`https://video1.com`),与实际域名(`video2.com`)不一致,易引起搜索引擎混淆。
**建议**
- 精简标题控制在60字符以内突出核心关键词避免重复。
- 移除无关域名,使用实际域名(`video2.com`)增强品牌一致性。
- 示例优化标题:
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
```
#### 2. **关键词Keywords优化**
**问题**
- 关键词列表较长,部分词(如“短视频”“预告片”)与主站内容(电影、电视剧)相关性较低。
- 关键词堆砌(如“大地影院大全在线观看”“大地”),可能被百度视为过度优化。
- 未包含长尾关键词如“免费电影在线观看”“2024最新电视剧”错失精准流量。
**建议**
- 精选5-8个高相关性关键词包含品牌词如“大地影视”和长尾词。
- 避免重复和无关词,突出用户搜索意图。
- 示例优化关键词:
```html
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
```
#### 3. **描述Description优化**
**问题**
- 描述过长约180字符可能被截断影响点击率。
- 包含无效URL`www.https://video1.com`),格式错误,降低可信度。
- 关键词堆砌(如“大地影视”重复出现),未突出独特卖点(如“无广告”)。
- `{{{video_type}}}`占位符在首页可能未正确替换,导致描述不完整。
**建议**
- 控制描述在120-160字符简洁突出免费、高清、无广告等卖点。
- 修正URL为`video2.com`,确保一致性。
- 确保`{{{video_type}}}`在首页有默认值(如“电影”)或移除。
- 示例优化描述:
```html
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
```
#### 4. **URL规范化**
**问题**
- 页面URL`https://video2.com`)与描述中的`https://video1.com`不一致,可能导致权重分散。
- 部分链接(如`/news/52050.html`)指向非视频内容,降低页面主题相关性。
- 热门搜索链接(如`/news/52050.html`)重复指向同一页面,浪费爬虫资源。
**建议**
- 统一使用`https://video2.com`作为规范URL添加`rel="canonical"`标签:
```html
<link rel="canonical" href="https://video2.com">
```
- 将热门搜索链接改为视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`),提高相关性。
- 检查站内链接确保无404或重定向错误。
#### 5. **结构化数据改进**
**问题**
- `VideoObject`的`thumbnailUrl`指向详情页URL而非图片URL格式错误。
- `uploadDate`格式为`25-05-08`不符ISO 8601标准如`2025-05-08`)。
- 部分影片描述为空如“铁鹰战士4”影响富媒体展示效果。
- `aggregateRating`的`ratingValue`多为`0.0`,缺乏真实评分数据。
**建议**
- 修正`thumbnailUrl`为实际图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)。
- 规范化`uploadDate`为`YYYY-MM-DD`格式。
- 为每部影片补充简短描述50-100字提高信息完整性。
- 若无真实评分,移除`aggregateRating`或用默认值(如`5.0`)。
- 示例优化片段:
```json
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "大地影视热门推荐预告片",
"description": "观看大地影视最新电影和电视剧的精彩预告片!",
"thumbnailUrl": "https://video2.com/img/video/2025/01/27/22/wu-ren-guo-jing.webp",
"uploadDate": "2025-05-08",
"publisher": {
"@type": "Organization",
"name": "大地影视"
}
}
```
#### 6. **内容优化**
**问题**
- 首页内容偏少,部分模块(如“最新电视剧”“最新综艺”)的`<ul>`为空,降低页面信息量。
- 影片简介过长如“无人过境”超300字可能影响加载速度和用户体验。
- 缺少关键词密度优化,核心词(如“免费观看”“高清影视”)出现频率低。
**建议**
- 填充空模块至少展示3-5条内容增加页面信息量。
- 简介控制在100-150字超出部分移至详情页首页仅展示摘要。
- 在`<h2>`、`<p>`中适度插入关键词(如“免费高清电影”),但避免堆砌。
- 示例优化影片项:
```html
<div class="dbbcf6 lvshicms-vodlist__detail">
<h2 class="c9c8c4 title text-overflow">
<a href="/voddetail/wu-ren-guo-jing-140361" title="无人过境免费观看">无人过境</a>
</h2>
<p class="ed925a text text-overflow text-muted hidden-xs">
简介: 西北小镇混混老姜欲雇凶杀人,高启义为筹医药费假冒杀手,引发连环追杀。免费高清在线观看,精彩公路冒险!
</p>
</div>
```
#### 7. **导航优化**
**问题**
- 导航下拉菜单(如“电影”“电视剧”)的子项链接(如`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`)层级过深,增加爬虫抓取难度。
- 热门搜索模块的链接指向`/news`而非视频详情页,降低转化率。
- 导航未使用面包屑导航影响用户体验和SEO权重传递。
**建议**
- 简化URL层级如将`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`改为`/movie/action/page1`。
- 将热门搜索链接指向视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`)。
- 添加面包屑导航:
```html
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">首页</a></li>
<li class="breadcrumb-item"><a href="/vodtype/dian-ying">电影</a></li>
<li class="breadcrumb-item active" aria-current="page">动作片</li>
</ol>
</nav>
```
#### 8. **图片优化**
**问题**
- 图片未使用`alt`属性(如`<img>`或背景图),错失关键词优化机会。
- 图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)未压缩,增加加载时间。
- 懒加载属性(`data-src`)未全面覆盖,可能影响首屏加载。
**建议**
- 为所有图片添加`alt`属性,包含关键词:
```html
<a class="d0ff14 lvshicms-vodlist__thumb lazyload" ...>
<img src="/img/video/2025/01/27/22/wu-ren-guo-jing.webp" alt="无人过境免费高清电影海报" style="display:none;">
</a>
```
- 使用工具如TinyPNG压缩图片减少文件大小。
- 确保所有图片使用`data-src`和`data-original`,并验证懒加载脚本有效。
#### 9. **加载速度优化**
**问题**
- 加载多个CSS文件`plugins.css`、`global.css`等增加HTTP请求。
- JS文件如`jquery-3.7.1.min.js`未使用defer或async阻塞渲染。
- 百度推送脚本重复加载(`<head>`和`<body>`各一次)。
**建议**
- 合并CSS文件为单一文件减少请求
```html
<link rel="stylesheet" href="/template/videodingzhu/css/combined.css" type="text/css">
```
- 为非关键JS添加`defer`或`async`
```html
<script src="/public/jquery/jquery-3.7.1.min.js" defer></script>
```
- 删除重复的百度推送脚本,仅保留`<head>`中的:
```html
<script src="http://push.zhanzhang.baidu.com/push.js"></script>
```
#### 10. **移动端体验**
**问题**
- 移动端搜索表单的占位符(“输入主演名或影片名”)未突出免费观看优势。
- 部分模块(如“好莱坞榜单”)在移动端隐藏(`hidden-xs`),减少信息量。
- 未启用AMP加速移动页面或PWA渐进式Web应用
**建议**
- 修改搜索占位符,突出卖点:
```html
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
```
- 在移动端显示简版榜单如前3项增加内容
```html
<div class="a51b92 col-md-wide-25 hidden-md hidden-lg">
<!-- 简版榜单 -->
</div>
```
- 考虑引入AMP版本如`/amp/index.html`或PWA提升移动端加载速度和用户留存。
#### 11. **外部链接与友链**
**问题**
- 友情链接模块(`<ul class="a085fb lvshicms-link__text">`)为空,错失权重传递机会。
- 未利用站外链接(如知乎、微博)引导流量。
**建议**
- 添加5-10个高质量友情链接优先选择影视相关站点
```html
<ul class="a085fb lvshicms-link__text clearfix">
<li><a href="https://example.com" target="_blank">影视资源站</a></li>
</ul>
```
- 在社交媒体(如微博)创建官方账号,发布视频预告,添加`video2.com`链接。
#### 12. **其他细节**
**问题**
- `<html lang="zh">`未指定具体语言(如`zh-CN`可能影响区域化SEO。
- 部分影片评分(`ratingValue: 0.0`)不可信,降低用户信任。
- 未设置HSTSHTTP严格传输安全影响安全性评分。
**建议**
- 修改语言为`zh-CN`
```html
<html lang="zh-CN">
```
- 为热门影片添加真实评分(如基于豆瓣或用户评分)。
- 启用HSTS
```html
<meta http-equiv="Strict-Transport-Security" content="max-age=31536000; includeSubDomains">
```
---
### 综合优化后的首页TKD示例
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
<link rel="canonical" href="https://video2.com">
```
---
### 实施优先级
1. **高优先级**(立即修复,影响排名):
- 修正标题、关键词、描述(精简、统一域名)。
- 规范化URL添加`rel="canonical"`。
- 填充空模块,优化简介长度。
2. **中优先级**1-2周内优化
- 改进结构化数据(修正`thumbnailUrl`、`uploadDate`)。
- 压缩图片合并CSS/JS。
- 添加面包屑导航和友情链接。
3. **低优先级**(长期优化):
- 引入AMP/PWA。
- 建立社交媒体账号。
- 启用HSTS。
---
### 同行对比分析
通过分析中国大陆影视站点如爱奇艺、腾讯视频、免费影视站常见SEO策略包括
- **关键词聚焦**突出“免费”“高清”“在线观看”长尾词覆盖广泛如“2024最新动作片免费观看”
- **内容丰富**:首页展示多类型内容(电影、电视剧、综艺等),每日更新。
- **技术优化**CDN加速、图片压缩、懒加载全面应用。
- **外部引流**:通过微博、抖音、贴吧发布短视频或预告,引导流量。
**建议**参考爱奇艺的动态TKD和内容密度结合免费站点的关键词策略如“无广告”在首页增加短视频预告模块吸引用户停留。
---
### 总结
当前首页SEO基础良好但存在标题冗长、URL不统一、内容空缺等问题。通过精简TKD、规范化URL、填充内容、优化图片和加载速度可显著提升百度排名。建议优先实施高优先级优化并结合社交媒体引流1-2个月内有望进入首页。
若需具体代码调整(如某个模块的实现)或进一步分析(如竞争对手关键词),请提供更多细节!

View File

@@ -183,7 +183,6 @@
<script type="text/javascript" <script type="text/javascript"
src='/public/video/common.js?v={site:cfg code="STATIC_FILE_VERSION" encode="false"/}'></script> src='/public/video/common.js?v={site:cfg code="STATIC_FILE_VERSION" encode="false"/}'></script>
{// 全局统计 } {// 全局统计 }
{site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/} {site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/}

View File

@@ -183,7 +183,7 @@
<div class="a193f5 lvshicms-panel-box clearfix"> <div class="a193f5 lvshicms-panel-box clearfix">
<div class="dea615 col-xs-1 detail-box"> <div class="dea615 col-xs-1 detail-box">
<div class="b97972 lvshicms-content__thumb"> <div class="b97972 lvshicms-content__thumb">
<a class="f2880b lvshicms-vodlist__thumb video-info-lvshicms-vodlist__thumb picture" href="/product/90860-1-1.html" <a class="f2880b lvshicms-vodlist__thumb video-info-lvshicms-vodlist__thumb picture" href="javascript::"
title="{$arrVideo.v_name}"> title="{$arrVideo.v_name}">
<img class="f20604 lazyload" src="{$arrVideo.v_pic}"> <img class="f20604 lazyload" src="{$arrVideo.v_pic}">
<span class="c5512d detail-icon play"></span> <span class="c5512d detail-icon play"></span>

View File

@@ -0,0 +1,211 @@
<html lang="zh-CN">
<head>
{block name="get-data"}{/block}
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta name="robots" content="index, follow">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{block name="title"}{/block}</title>
<meta name="keywords" content='{block name="keywords"}{/block}'>
<meta name="description" content='{block name="description"}{/block}'>
<link rel="shortcut icon" href="/template/videodingzhu/images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="/template/videodingzhu/css/plugins.css" type="text/css">
<link rel="stylesheet" href="/template/videodingzhu/css/global.css" type="text/css">
<link rel="stylesheet" href="/template/videodingzhu/css/style.css" type="text/css">
{//
<!-- <link rel="stylesheet" href="/template/videodingzhu/css/color.css" type="text/css" name="default"> -->
<!-- <link rel="stylesheet" href="/public/layer/layer.css?v=3.5.1" id="layuicss-layer"> -->
}
{block name="head"}{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
<script>
const strPcPath = `{$strPcPath}`;
</script>
</head>
<body class="f9eb6d active {block name='body-class'}{/block}" id="{block name='body-id'}{/block}">
<header class="a23db0 lvshicms-header__top" id="header-top">
<div class="c6f1a2 container">
<div class="d3071b row">
<div class="b6bfb3 lvshicms-header__logo">
<a class="f1c0ad logo" href="/">
{$DomainModel->d_name}
</a>
</div>
<div
class="d55436 lvshicms-header__menu hidden-sm hidden-xs swiper-initialized swiper-horizontal swiper-pointer-events swiper-free-mode">
<ul class="c308d4 swiper-wrapper" id="swiper-wrapper-15acf77edda9621f" aria-live="polite"
style="transition-duration: 300ms;">
<li class="c1afb6 swiper-slide {if $Request.route.strParentCategory == ''}active{/if}"><a href="/">首页</a></li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class='ac50b3 swiper-slide dropdown-hover {if $val.v_category_en == $Request.route.strParentCategory}active{/if}'>
<a href='{site:vciurl parent_category="$val.v_category_en" /}'>{$val.v_category}</a>
<div class="bed39b dropdown-box bottom fadeInDown clearfix" style="padding-top: 0;">
<ul class="e7213a item nav-list clearfix" style="width: 190px;">
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li class="b6abc3 col-md-2 col-sm-2 col-xs-1" style="padding: 6px;"><a
class="c11c57 btn btn-sm btn-block btn-default"
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>
</li>
{/foreach}
</ul>
</div>
</li>
{/video:categorytype}
<li class="a2d382 swiper-slide "> <a href="{$strRankUrlTemp}">榜单</a> </li>
</ul>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
<ul class="e4dd97 lvshicms-header__user">
<li class="f7ad8a hist slide-search-toggle hidden-xs hidden-sm">
<form action="{$strSearchListUrlTemp}">
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
<button class="d3b134 mobile-search-button" type="submit"><i
class="b2a8c7 fa fa-search"></i></button>
</form>
</li>
<li class="f37351 hist dropdown-hover">
<a href="{$strHistoryUrlTemp}" title="播放记录">
<i class="afd2b2 fa fa-clock-o"></i>
</a>
</li>
</ul>
<div class="d9ad47 mobile-search hidden-md hidden-lg">
<form action="{$strSearchListUrlTemp}">
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
<button class="d3b134 mobile-search-button" type="submit"><i
class="b2a8c7 fa fa-search"></i></button>
</form>
</div>
<div
class="ab3059 nav-box hidden-md hidden-lg swiper-initialized swiper-horizontal swiper-pointer-events swiper-free-mode swiper-backface-hidden">
<ul class="f34760 swiper-wrapper" id="swiper-wrapper-cc8105579edaa1a3" aria-live="polite">
<li class="a4f250 nav-item swiper-slide {if $Request.route.strParentCategory == ''}active swiper-slide-active{/if}" role="group"
aria-label="1 / 8">
<a href="/">
<i class="bd0907 nav-item-icon home"></i>
<span class="b08159 nav-item-text">首页</span>
</a>
</li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class='e544e2 nav-item swiper-slide swiper-slide-next {if $val.v_category_en == $Request.route.strParentCategory}active swiper-slide-active{/if}' role="group" aria-label="2 / 8">
<a href='{site:vciurl parent_category="$val.v_category_en" /}'>
<i class="afd4ea nav-item-icon dy"></i>
<span class="d8f67b nav-item-text">{$val.v_category}</span>
</a>
</li>
{/video:categorytype}
<li class="d0f97c nav-item swiper-slide" role="group" aria-label="7 / 8">
<a href="{$strRankUrlTemp}">
<i class="c739f9 nav-item-icon bd"></i>
<span class="e34e2d nav-item-text">热播</span>
</a>
</li>
</ul>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
</div>
</div>
<div class="f075db lvshicms-header__top_bg hidden-sm hidden-xs"></div>
</header>
<div class="d61dbe slide-search">
<header class="a8408b slide-search-header">
<a class="b4a13d slide-search-close" href="javascript:;">
<i class="f8d4d2 fa fa-chevron-left"></i>
</a>
搜索
</header>
<div class="da8a21 slide-search-body">
<form class="a40443 slide-search-form" method="get" action="{$strSearchListUrlTemp}">
<input type="text" name="keyword" class="d05fc1 slide-search-input" value="" placeholder="搜索免费高清电影或主演"
autocomplete="off">
<button type="submit" class="b6ce5d slide-search-submit"><i class="b004bd fa fa-search"></i></button>
</form>
<ul class="ab08b9 slide-search-list">
<li class="bfcc70 slide-search-title">热门搜索</li>
{video:list count="6"
sort_type="news"
d_key="key" d_val="Video"
cache_life="86400"}
<li class="cbc4a0 slide-search-item">
<a href='{site:vsurl key="$Video.v_name" p="1"/}'>
<em class="f1a98e slide-search-icon">NO</em>
<em class="bd65b9 slide-search-num slide-search-num1">{$key}</em>
<span class="ddcfc6 slide-search-name">{$Video.v_name}</span>
</a>
</li>
{/video:list}
</ul>
</div>
</div>
<div class="e2b25c slide-search-bg"></div>
{block name="main"}
{/block}
{include file="public/footer" /}
{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>
{// 全局统计 }
{site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/}
{// 站点统计 }
{$DomainModel->d_statis|raw}
<script>
(function () {
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>
</html>

View File

@@ -0,0 +1,58 @@
蜂鸟视频模板
http://test.enderuixm.com/
1.视频分类 分页标签查询, 增加 4个查询字段
$v_class = $tag['v_class'] ?? '10'; // 自定义分类 电影 电视剧 ..
$v_lang = $tag['v_lang'] ?? "all"; // 语言
$v_area = $tag['v_area'] ?? "all"; // 地区
$v_year = $tag['v_year'] ?? "all"; // 年份
2. 排行榜标签 增加 分类查询
{video:ranklist v_class="dianying" v_category="$val.v_category_en"
需要 配置tkd 模板的页面
首页:
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
T
K
D
分类首页
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
tkd
分类分页
视频详情页面
视频播放页面
视频搜索页面
视频排行榜首页
视频排行榜分页
目前在搭建一个视频站点:
页面 有
首页
分类首页:分类首页没有分页,一共有 电影,电视剧,综艺,动漫,短剧 。5大分类。
分类首页 展示内容:每一大分类下面的所有小分类 展示10个视频
这个就是上面发你的代码;
需要你帮忙设计 TKD 模板
和 h1标签内容 模板
因为我后面需要部署大量域名站点 都使用同一个模板
分类列表分页:

View File

@@ -0,0 +1,226 @@
{extend name="base" /}
{block name="get-data"}
{video:listexp count="8" sort_type="tuijian" d_key="key" d_val="Video" cache_life="86400" export_name="arrVideoTuijian"
/}
{video:listexp count="17" sort_type="piaofang" d_key="key" d_val="Video" cache_life="86400"
export_name="arrVideoPiaofang" /}
{site:grm page_code="h5_index" diff="0" num="100" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="VIDEO@INDEX@INDEX@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@INDEX@INDEX@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content='{site:replace code="VIDEO@INDEX@INDEX@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="website" />
<!-- 结构化数据 -->
<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"
}
},
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{$DomainModel->d_name}热门推荐预告片",
"description": "观看{$DomainModel->d_name}最新电影和电视剧的精彩预告片!",
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key == 1 }
"thumbnailUrl": 'https://{$DomainModel->d_domain}{$Video.v_pic}',
{/if}
{/volist}
"uploadDate": "{:date('Y-m-d')}",
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}"
}
},
{
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - {$DomainModel->d_logo_text}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": "{$DomainModel->d_name}首页提供好莱坞最新电影、电视剧、综艺、动漫和短剧的免费高清在线观看,热门推荐每日更新!",
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem",
"position": {$key},
"item": {
"@type": "TVSeries",
"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}
{volist name="arrVideoPiaofang" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem{$Video.v_id}",
"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-js"}{/block}
{block name="main"}
<div class="bc22cc container">
<div class="eb5be5 row ">
<h1 class="view-title">
<a href="/">{$DomainModel->d_name}</a>-{$DomainModel->d_text_logo}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORYINDEX@TEXT"}</h4>
</div>
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 热门推荐 </h2>
<a class="ec883e more text-muted right bg" href='{site:vclurl parent_category="all" category="all" area="all" lang="all" year="all" order="tuijian" page="1"/}'>更多推荐 <i
class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{foreach $arrVideoTuijian as $key=>$Video }
{include file="public/video-list-shu" start="0" col-lg="4"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> 好莱坞榜单 </h2>
<a class="c502a3 more text-muted right bg" href="javascript::">票房(亿) </a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{foreach $arrVideoPiaofang as $key=>$Video }
{include file="public/video-list-phb" start="27" /}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="bd998f row">
<div class="c9d5a5 col-xs-1">
<div class="d739ec lvshicms-panel lvshicms-panel-bg clearfix">
<div class="f2c9c4 lvshicms-panel-box clearfix">
<div class="aa80ce lvshicms-panel_hd">
<div class="c49f14 lvshicms-panel__head bottom-line active clearfix">
<h2 class="a9d97c title">最新上映</h2>
</div>
</div>
<div class="a27622 lvshicms-panel_bd clearfix">
<ul class="bbf222 lvshicms-vodlist clearfix">
{video:list count="6"
sort_type="news"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
</div>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
{include file="public/video-panel" /}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,49 @@
<div class="df0a63 lvshicms-foot clearfix" style="padding-top:0px;">
<div class="fa6207 container">
<div class="f8fa68 row">
<div class="d4ce18 col-xs-1">
<div class="be974b lvshicms-panel lvshicms-panel-bg clearfix">
<div class="cbdc99 lvshicms-panel-box clearfix">
<div class="f98dfa lvshicms-panel_hd">
<div class="bd50fd lvshicms-panel__head clearfix">
<h3 class="f7c1b4 title"> 友情链接 </h3>
</div>
</div>
<div class="f9bdb5 lvshicms-panel_bd clearfix">
<div class="f358be col-xs-1">
<ul class="a085fb lvshicms-link__text clearfix">
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="aa00ab col-xs-1">
<div class="cea0ad col-pd text-center">
<p>
<!-- <a href="/rss/index.xml" target="_blank">RSS地图</a>
<a href="/rss/baidu.xml" target="_blank">百度Sitemap</a>
<a href="/rss/so.xml" target="_blank">360Sitemap</a>
<a href="/rss/google.xml" target="_blank">谷歌Sitemap</a> -->
<a href="/sitemap_index.xml" target="_blank">XML地图</a>
<a href="/robots.txt" target="_blank">网站地图</a>
{ad:list code="YOUQING_LIANJIE_GUANG_GAO" order="desc" limit="2" id="ad"}
<a href="{$ad.gg_tiao_zhuan_di_zhi}" target="_blank">{$ad.gg_wen_zi}
</a>
{/ad:list}
</p>
<p>Copyright © 2025 {$DomainModel->d_name} <a href="/"> {$DomainModel->d_domain}</a>All Rights Reserved .</p>
<p>若本站收录内容侵犯了您的权益,请给我们留言,本站将第一时间处理。</p>
<p>反馈邮箱:{site:cfg code="YOU_XIANG" encode="false"/}</p>
</div>
</div>
</div>
</div>
</div>
<ul class="b3f1cb lvshicms-extra clearfix">
<li> <a class="fb9d99 backtop" href="javascript:scroll(0,0)" title="返回顶部" style="display: none;"><i
class="f6e490 fa fa-angle-up"></i></a> </li>
</ul>

View File

@@ -0,0 +1,21 @@
<li>
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<?php $key ++ ?>
<a class="ae5cfc text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<span class='c4df4f pull-right text-muted visible-lg '>
{$Video.v_box_office ?? 0}
</span>
<span class='dd3e38 badge
{eq name="$key" value="1"}badge-first {/eq}
{eq name="$key" value="2"}badge-second {/eq}
{eq name="$key" value="3"}badge-third {/eq}'>
{$key}
</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,25 @@
<li class="fc7a7d col-lg-[col-lg] col-md-4 col-sm-3 col-xs-2">
<div class="a9a18d lvshicms-vodlist__box">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="d0ff14 lvshicms-vodlist__thumb"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<img class="lazyload-img" src="/static/img/load.png"
data-src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看">
<span class="c3b20e play hidden-xs"></span>
<span class="bf637e pic-text text-right">{$Video.v_remarks}</span>
</a>
<div class="dbbcf6 lvshicms-vodlist__detail">
<h3 class="c9c8c4 title text-overflow">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">{$Video.v_name}</a></h3>
<p class="ed925a text text-overflow text-muted hidden-xs">简介:{$Video.v_description|raw}</p>
</div>
</div>
</li>

View File

@@ -0,0 +1,9 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="top-line-dot text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">
<span class="text-muted pull-right">{$Video.v_remarks}</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,48 @@
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 最新{$val.v_category} </h2>
<a class="ec883e more text-muted right bg" href='{site:vclurl parent_category="$val.v_category_en" category="all" area="all" lang="all" year="all" order="all" page="1"/}'>更多 <i
class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{video:list count="8" v_parent_category_en="$val.v_category_en" sort_type="news" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="27" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> {$val.v_category}周榜单 </h2>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="17"
v_parent_category_en="$val.v_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,294 @@
对于一个小说站点(如你提到的包含首页、分类列表、排行榜、男生/女生频道、详情页面、章节页面、目录页面等),配置 Sitemap 时需要根据页面类型的重要性和 SEO 目标选择性地包含 URL并合理组织以优化搜索引擎抓取和索引。以下是针对小说站点特点的 Sitemap 配置建议,包括哪些页面应该包含、如何处理大量 URL以及相关的最佳实践。
---
### 一、小说站点页面类型分析
根据你提供的信息,小说站点的页面类型可以分为以下几类,每类页面的 SEO 价值和是否需要包含在 Sitemap 中有所不同:
| 页面类型 | 描述 | SEO 价值 | 是否包含在 Sitemap |
|------------------|----------------------------------------------------------------------|---------------------------------------|--------------------|
| **首页** | 网站主入口,通常包含推荐小说、导航等。 | 高(核心流量入口) | 是 |
| **分类列表** | 按题材、类型(如玄幻、言情)展示小说列表,可能有多页(如 `page=2`)。| 高(引导用户到具体小说) | 是(仅包含主页面) |
| **排行榜** | 热门小说排行,可能按日、周、月或类型(如男生/女生)排序。 | 中到高(吸引点击,动态更新) | 是(视情况精选) |
| **男生/女生频道**| 针对不同用户群的分类页面(如男生玄幻、女生穿越)。 | 高(细分用户需求) | 是 |
| **详情页面** | 小说详情页,包含简介、封面、目录链接等。 | 高(核心转化页面) | 是 |
| **章节页面** | 小说具体章节内容,通常数量庞大。 | 中到低内容分散SEO 价值有限) | 视情况(可选) |
| **目录页面** | 小说章节列表,汇总所有章节链接。 | 中便于用户导航SEO 价值中等) | 是 |
---
### 二、Sitemap 配置策略
#### 1. 哪些 URL 应该包含?
基于小说站点的特点,建议优先包含以下页面:
- **首页**
- 包含站点的唯一首页 URL`https://www.example.com/`)。
- 设置高优先级(如 `<priority>1.0</priority>`)和频繁更新(如 `<changefreq>daily</changefreq>`)。
- **分类列表(主页面)**
- 包含每个分类的主页面(如 `https://www.example.com/category/xuanhuan`)。
- 排除分页 URL`https://www.example.com/category/xuanhuan?page=2`),因为分页内容重复且 SEO 价值低。
- 示例:玄幻、言情、历史等分类页面。
- **男生/女生频道**
- 包含频道主页(如 `https://www.example.com/male``https://www.example.com/female`)。
- 如果频道下有子分类(如男生玄幻、女生穿越),也应包含。
- **排行榜(精选)**
- 包含主要排行榜页面(如 `https://www.example.com/rank/hot``https://www.example.com/rank/male`)。
- 如果排行榜页面频繁更新(如每日排行),可设置 `<changefreq>daily</changefreq>`
- 排除次要或动态参数页面(如 `?sort=week`),避免重复内容。
- **详情页面**
- 包含所有小说详情页面(如 `https://www.example.com/book/123`)。
- 这些页面是 SEO 的核心,吸引搜索流量(如用户搜索小说名)。
- 使用 `<lastmod>` 反映小说更新时间,提示搜索引擎重新抓取。
- **目录页面**
- 包含每个小说的目录页面(如 `https://www.example.com/book/123/chapters`)。
- 目录页面便于用户导航,且可能被搜索引擎索引为长尾关键词(如“小说名 章节列表”)。
- **章节页面(可选)**
- **不建议全部包含**小说章节页面数量庞大可能数十万到数百万SEO 价值较低(用户很少通过搜索直接进入具体章节)。
- **可选策略**
- 只包含最新章节(如最近 30 天的章节),吸引搜索引擎抓取更新内容。
- 只包含热门小说的前几章(如前 10 章),作为引流入口。
- 如果包含,设置较低优先级(如 `<priority>0.3</priority>`)。
#### 2. 哪些 URL 应该排除?
- **分页 URL**:如分类列表的 `?page=2`,重复内容无 SEO 价值。
- **动态参数 URL**:如 `?sort=latest``?utm_source=...`,应规范化到标准 URL。
- **不可索引页面**
- 已设置 `<meta name="robots" content="noindex">` 的页面。
-`robots.txt` 屏蔽的页面(如 `Disallow: /user/`)。
- **用户生成内容**
- 如评论页、用户个人中心、搜索结果页(`?q=keyword`)。
- **临时页面**
- 如促销活动页、测试页面。
- **错误页面**:如 404、500 页面。
---
### 三、处理大量 URL 的策略
小说站点通常有大量 URL尤其是章节页面可能超过 Sitemap 的限制50,000 条 URL 或 50MB。以下是应对方法
#### 1. 使用 Sitemap 索引文件
- 将 URL 分组到多个子 Sitemap 文件(如 `sitemap-books.xml``sitemap-chapters.xml`),每文件不超过 50,000 条 URL。
- 创建一个 Sitemap 索引文件(如 `sitemap_index.xml`)引用所有子 Sitemap。
- 示例:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-chapters.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 2. 分组策略
- **按页面类型分组**
- `sitemap-main.xml`:首页、分类列表、排行榜、男生/女生频道。
- `sitemap-books.xml`:小说详情页面和目录页面。
- `sitemap-chapters.xml`:章节页面(如果包含)。
- **按更新频率分组**
- 频繁更新的页面(如排行榜、最新章节)单独分组,设置 `<changefreq>daily</changefreq>`。
- **按小说分组**
- 为每部小说生成单独的 Sitemap如 `sitemap-book123.xml`),包含其详情页、目录页和部分章节页。
#### 3. 动态生成 Sitemap
- **脚本生成**
- 使用 Python、PHP 等脚本从数据库查询 URL生成 Sitemap 文件。
- 示例Python参考前文
```python
from lxml import etree
import datetime
# 模拟数据库查询
urls = [
{'loc': 'https://www.example.com/', 'lastmod': '2025-04-21', 'changefreq': 'daily', 'priority': '1.0'},
{'loc': 'https://www.example.com/book/123', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.8'},
{'loc': 'https://www.example.com/book/123/chapters', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.6'},
]
urlset = etree.Element("urlset", xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
for url in urls:
url_element = etree.SubElement(urlset, "url")
loc = etree.SubElement(url_element, "loc")
loc.text = url['loc']
lastmod = etree.SubElement(url_element, "lastmod")
lastmod.text = url['lastmod']
changefreq = etree.SubElement(url_element, "changefreq")
changefreq.text = url['changefreq']
priority = etree.SubElement(url_element, "priority")
priority.text = url['priority']
tree = etree.ElementTree(urlset)
tree.write("sitemap-main.xml", pretty_print=True, xml_declaration=True, encoding="UTF-8")
```
- **定时任务**
- 使用 cron 任务每天或每周生成 Sitemap上传到根目录。
- 示例Linux cron
```bash
0 2 * * * python3 /path/to/generate_sitemap.py
```
- **触发式更新**
- 在小说更新(如新章节发布)时,触发脚本更新相关 Sitemap。
#### 4. 伪静态 Sitemap
- 配置服务器将 `sitemap_index.xml` 等请求重定向到动态脚本,实时生成 XML 内容。
- 示例Apache + PHP参考前文
```apache
RewriteEngine On
RewriteRule ^sitemap_index\.xml$ sitemap_index.php [L]
```
---
### 四、robots.txt 配置
在 `robots.txt` 中声明 Sitemap 索引文件,使用绝对路径:
```txt
User-agent: *
Disallow: /user/
Disallow: /search/
Sitemap: https://www.example.com/sitemap_index.xml
```
- 确保不通过 `Disallow` 屏蔽 Sitemap 文件。
- 如果 Sitemap 托管在 CDN如 `https://cdn.example.com/sitemap_index.xml`),在 `robots.txt` 中使用 CDN 地址,并验证所有权。
---
### 五、SEO 优化建议
1. **优先级设置**
- 首页:`<priority>1.0</priority>`
- 分类/频道/详情页:`<priority>0.8</priority>`
- 目录页:`<priority>0.6</priority>`
- 章节页(若包含):`<priority>0.3</priority>`
2. **更新频率**
- 首页、排行榜:`<changefreq>daily</changefreq>`
- 分类/频道/详情/目录页:`<changefreq>weekly</changefreq>`
- 章节页:`<changefreq>monthly</changefreq>`(或 `never` 如果不频繁更新)
3. **规范化 URL**
- 确保只包含规范 URL如 `https://www.example.com/book/123` 而非 `http://example.com/book/123`)。
- 使用 `<link rel="canonical">` 或 Sitemap 统一规范版本。
4. **避免重复内容**
- 排除带参数的 URL如 `?sort=latest`)。
- 如果男生/女生频道与分类列表有重复内容,选择主要入口包含在 Sitemap 中。
5. **图片 Sitemap可选**
- 为小说封面图片创建图片 Sitemap优化图片搜索排名。
- 示例:
```xml
<url>
<loc>https://www.example.com/book/123</loc>
<image:image>
<image:loc>https://www.example.com/images/book123.jpg</image:loc>
<image:title>小说封面</image:title>
</image:image>
</url>
```
---
### 六、注意事项
1. **章节页面数量庞大**
- 如果每部小说有数百章节,章节页面可能占主导。建议只包含最新或热门章节,或完全排除章节页面,依靠目录页面引导爬虫。
2. **抓取预算**
- 小说站点 URL 数量多,需优化 Sitemap 避免浪费搜索引擎的抓取预算。
3. **动态更新**
- 小说站点内容更新频繁(如新章节发布),建议动态生成 Sitemap 或频繁更新。
4. **验证 Sitemap**
- 提交 `sitemap_index.xml` 到 Google Search Console、Bing Webmaster Tools检查是否被正确解析。
- 使用 GSC 的“索引覆盖率”报告,确认重要页面(如详情页)是否被索引。
---
### 七、示例 Sitemap 配置
#### 索引文件(`sitemap_index.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 主 Sitemap`sitemap-main.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.example.com/category/xuanhuan</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/male</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/rank/hot</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
</urlset>
```
#### 小说 Sitemap`sitemap-books.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/book/123</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/book/123/chapters</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
```
---
### 八、结论
- **不需包含所有 URL**:小说站点应优先包含首页、分类列表、男生/女生频道、排行榜、详情页面和目录页面。章节页面可根据需要部分包含或完全排除。
- **精选策略**:重点包含 SEO 价值高的页面(如详情页),排除分页、动态参数、低价值页面。
- **大型站点处理**:使用 Sitemap 索引文件和子 Sitemap按页面类型分组动态生成以应对大量 URL。
- **SEO 优化**:设置合理的 `<priority>` 和 `<changefreq>`,定期更新 Sitemap验证索引效果。
如果你需要针对小说站点的具体脚本(生成 Sitemap 或伪静态配置、CMS 插件推荐,或其他细节(如图片 Sitemap、robots.txt 优化),请告诉我!

View File

@@ -0,0 +1,3 @@
User-agent: *
Disallow:
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nclurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" order="zheng" page="1"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
<!-- 最多 50,000 个 <url> 条目 -->
</urlset>

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,18 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:lcpurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.{$DomainModel->d_domain}/</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- 分类 -->
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
<!-- 排序 -->
{novel:sort d_key="sort_key" d_val="strSortName"}
<!-- 状态 -->
{novel:status d_key="status_key" d_val="strStatusName"}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/novel:status}
{/novel:sort}
{/novel:category}
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
</urlset>

View File

@@ -0,0 +1,39 @@
{novel:pagerexp page="1" limit="40000"
sort_type="news"
d_key="d_key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-main.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
<!--小说总数量/50000 得出 sitemap-books 一共有多少个 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说总数量/50000 得出 sitemap-books-catalog一共有多少个,每个小说只取一个目录链接,分页不需要加入去 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-catalog-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说章节取最新章节 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-chapters-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
</sitemapindex>

View File

@@ -0,0 +1,109 @@
{extend name="base" /}
{block name="get-data"}
{site:grm page_code="h5_video_search" diff="$Request.url" num="30" g_key="arrGrm" /}
{/block}
{block name="title"}我的观看记录{/block}
{block name="keywords"}我的观看记录{/block}
{block name="description"}我的观看记录{/block}
{block name="head"}
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name="main"}
<div class="container">
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h3 class="a1100b title"> 观看记录 </h3>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix" id="historyContainer">
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h3 class="f48698 title">周榜单 </h3>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="20"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
<script>
const strVideoUrlTemp = `{site:replace code="VIDEO_INFO_URL"}`;
const strVideoPlayUrlTemp = `{site:replace code="VIDEO_PLAY_URL"}`;
const strSearchUrlTemp = `{site:replace code="VIDEO_SEARCH_LIST_URL"}`;
// 调用展示书架功能
document.addEventListener("DOMContentLoaded", function () {
const secondTemplate = `
<li class="fc7a7d col-lg-[col-lg] col-md-4 col-sm-3 col-xs-2">
<div class="a9a18d lvshicms-vodlist__box">
<a class="d0ff14 lvshicms-vodlist__thumb lazyload lazyload-bg"
href="{{videoUrl}}"
title="{{videoName}}"
data-src="{{videoPic}}"
data-original="{{videoPic}}"
style="background-image: url('{{videoPic}}');">
<span class="c3b20e play hidden-xs"></span>
<span class="bf637e pic-text text-right">{{videoRemarks}}</span>
</a>
<div class="dbbcf6 lvshicms-vodlist__detail">
<h4 class="c9c8c4 title text-overflow">
<a href="{{videoUrl}}" title="{{videoName}}">{{videoName}}</a>
</h4>
<p class="ed925a text text-overflow text-muted hidden-xs">描述:{{videoDescription}}</p>
</div>
</div>
</li>
`;
// 调用展示书架功能
displayHistory(secondTemplate);
})
</script>
{/block}

View File

@@ -0,0 +1,270 @@
{extend name="base" /}
{block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="30" button_num="10" cache_life="86400"
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="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}" />
{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"}
<div class="bac3b3 container" style="margin-top:10px;">
<h1 class="view-title">
{site:replace code="VIDEO@GETCATEGORY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORY@TEXT"}</h4>
<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='{site:vciurl parent_category="$Request.route.strParentCategory" /}' itemprop="item">
<span itemprop="name">{site:getval code="strVideoParentCategoryName" /}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="all" lang="all" year="all" order="all" page="1"/}' itemprop="item">
<span itemprop="name">{site:getval code="strVideoCategoryName" /}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
</nav>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> {site:getval code="strVideoParentCategoryName" /} 筛选</h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_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="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="d353e6 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="af2d48 btn 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>
<a class=" a618ce btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'>{$arrChildrenCategory.v_category}</a>
</li>
{/foreach}
{/if}
{/video:categorytype}
</ul>
<ul class="b03fb8 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="aca9e5 btn text-muted">地区</a> </li>
{video:area d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$key" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" ae52d4 btn {if $Request.route.strArea == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:area}
</ul>
<ul class="a383e9 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="e49c5f btn text-muted">年份</a> </li>
{video:year d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$key" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" e230a5 btn {if $Request.route.strYear == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:year}
</ul>
<ul class="a383e9 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="e49c5f btn text-muted">语言</a> </li>
{video:lang d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$key" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class="c32026 btn {if $Request.route.strLang == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:lang}
</ul>
</div>
<ul class="d95c02 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="d40281 btn text-muted">排序</a> </li>
{video:sort d_key="key" d_val="val"}
<li>
<a class="c32026 btn {if $Request.route.strOrder == $key}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$key" page="$Request.route.intPage"}'>
{$val}
</a>
</li>
{/video:sort}
</ul>
</div>
</div>
</div>
<div class="aed4a1 lvshicms-panel active lvshicms-panel-bg clearfix">
<div class="dbaf2a lvshicms-panel-box clearfix">
<div class="e028a7 lvshicms-panel_bd">
<ul class="c75497 lvshicms-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/foreach}
</ul>
</div>
</div>
</div>
<ul class="ae5171 lvshicms-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li >
<a href="{$vo.url}" class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,194 @@
{extend name="base" /}
{block name="get-data"}
{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}
{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_parent_category_en="$Request.route.strParentCategory"
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}{site:vciurl parent_category="$Request.route.strParentCategory" /}"
}
]
},
]
</script>
{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
{block name="main"}
<div class="bc22cc 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 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>
{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="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 最新{$arrChildrenCategory.v_category} </h2>
<a class="ec883e more text-muted right bg"
href='{site:vclurl parent_category="$val.v_category_en" category="all" area="all" lang="all" year="all" order="all" page="1"/}'>更多
<i class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{video:list count="8"
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="27" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> {$arrChildrenCategory.v_category}周榜单 </h2>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="17"
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="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
{/foreach}
{/if}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,230 @@
{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="86400"}
{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">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKINDEX@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKINDEX@TEXT"}</h4>
<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>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> 排行榜 筛选</h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li>
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="daily" page="1"/}'
class="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="e489dd container">
<div class="a1ce09 row">
{video:ranksort d_key="key" d_val="val"}
<div class="fe3214 col-lg-3 col-md-4 col-sm-2 col-xs-1">
<div class="ccba9b lvshicms-panel-bg2 col-pd radius-4 clearfix">
<div class="fd0689 lvshicms-panel_hd">
<div class="e58f0e lvshicms-panel__head bottom-line active clearfix text-overflow">
<h2 class="d653d5 title"> {$val}排行榜 </h2>
</div>
</div>
<div class="ce0ed8 lvshicms-panel_bd clearfix">
<ul class="da258b lvshicms-vodlist__media col-pd clearfix">
{video:ranklist count="10"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
<?php $key ++ ;?>
{if $key < 4} <li>
<div class="a45a81 thumb">
<a class="b7fde8 lvshicms-vodlist__thumb img-xs-70"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name} ">
<img class="lazyload-img" src="/static/img/load.png"
data-src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看">
<span class='fa73de badge
{eq name="$key" value="1"}badge-first {/eq}
{eq name="$key" value="2"}badge-second {/eq}
{eq name="$key" value="3"}badge-third {/eq}'>
{$key}
</span>
</a>
</div>
<div class="b6dc66 detail detail-side">
<h3 class="c58a4d title"><a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'><i
class="bc63b3 fa fa-angle-right text-muted pull-right"></i> {$Video.v_name}
</a>
</h3>
<p class="e3349d font-12"><span class="e2d8fb text-muted">类型:</span>{$Video.v_category}<span
class="cd23c6 text-muted">地区:</span>{volist name='$Video.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}</p>
<p class="a70415 font-12 margin-0"><span
class="cf514a text-muted">主演:</span>{volist name='$Video.v_actor' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist},</p>
</div>
</li>
{/if}
{/video:ranklist}
</ul>
<ul class="a33a7f lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="10"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
<?php $key ++ ;?>
{if $key > 3}
<li class="c11eab top-line"> <a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"> <span class="d507d5 badge">{$key}</span>{$Video.v_name}
</a> </li>
{/if}
{/video:ranklist}
</ul>
</div>
</div>
</div>
{/video:ranksort}
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,200 @@
{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="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@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="bac3b3 container" style="margin-top:10px;">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKLIST@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKLIST@TEXT"}</h4>
<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>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> {site:getval code="strVideoParentCategoryName" /}排行榜 </h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li >
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="$Request.route.strSortType" page="1"/}'
class="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="d353e6 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="af2d48 btn 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>
<a class=" a618ce btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
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>
<ul class="d95c02 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="d40281 btn text-muted">排序</a> </li>
{video:ranksort d_key="key" d_val="val"}
<li class="{if $Request.route.strSortType == $key}btn-warm{/if}">
<a href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" sort_type="$key" page="1"/}'>
{$val}排行榜
</a>
</li>
{/video:ranksort}
</ul>
</div>
</div>
</div>
<div class="aed4a1 lvshicms-panel active lvshicms-panel-bg clearfix">
<div class="dbaf2a lvshicms-panel-box clearfix">
<div class="e028a7 lvshicms-panel_bd">
<ul class="c75497 lvshicms-vodlist clearfix">
{foreach $arrVideoRankList as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,199 @@
{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="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="$Request.url" 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">
<h1 class="view-title">
{site:replace code="VIDEO@GETSEARCHVIDEO@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETSEARCHVIDEO@TEXT"}</h4>
<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='{site:vsurl key="$Request.get.keyword" p="1"/}' itemprop="item">
<span itemprop="name">搜索:{$Request.get.keyword}</span>
</a>
<meta itemprop="position" content="2" />
</li>
</ol>
</nav>
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 搜索<span style="color:red">“{$Request.get.keyword}”</span>相关结果共有 <span style="color:red">{$resData.p_data.total}</span> 部视频 </h2>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" start="27" col-lg="4"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h3 class="f48698 title">周榜单 </h3>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="20"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
<ul class="ae5171 lvshicms-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li >
<a href="{$vo.url}" class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,384 @@
{extend name="base" /}
{block name="get-data"}
{if $Request.route.intVId}
{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" /}
{/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="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="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="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}">
{// 结构化数据}
<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="main"}
<div class="a971eb lvshicms-container-bg detail-info-box" style="margin-top:-20px;">
<div class="f969ad container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOINFO@H1" diff="$arrVideo.v_id"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOINFO@TEXT" diff="$arrVideo.v_id"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="fc40de row">
<div class="f147ce lvshicms-panel margin-0 clearfix">
<div class="a193f5 lvshicms-panel-box clearfix">
<div class="dea615 col-xs-1 detail-box">
<div class="b97972 lvshicms-content__thumb">
<a class="f2880b lvshicms-vodlist__thumb video-info-lvshicms-vodlist__thumb picture" href="/product/90860-1-1.html"
title="{$arrVideo.v_name}">
<img class="f20604 lazyload" src="{$arrVideo.v_pic}">
<span class="c5512d detail-icon play"></span>
<span class="a555ce pic-text text-right">已完结</span>
</a>
</div>
<div class="eecb94 lvshicms-content__detail">
<h1 class="edfc9f title">{$arrVideo.v_name}</h1>
<p class="fe7a76 data"><span class="dcb052 text-muted">主演:</span>
{volist name='$arrVideo.v_actor' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="d53452 data"><span class="a0dae5 text-muted">导演:</span>
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="bb52e4 data">
<span class="ed25a2 text-muted">分类:</span>
<a
href='{site:vsurl key="$arrVideo.v_parent_category" p="1"/}'>{$arrVideo.v_parent_category}</a>
</p>
<p class="bb52e4 data">
<span class="ed25a2 text-muted">类型:</span>
<a href='{site:vsurl key="$arrVideo.v_category" p="1"/}'>{$arrVideo.v_category}</a>
</p>
<p class="d994f6 data">
<span class="d8c8c2 text-muted">地区:</span>
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="e027e7 data"><span class="ca5df1 text-muted">更新:</span>{$arrVideo.v_publish_date}
</p>
<div class="ca86f6 detail-info-btn">
<li>
<a class="c82c25 btn btn-warm"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
<i class="b6a199 fa fa-play"></i>
立即播放
</a>
</li>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="b949ce container">
<div class="d4cf89 row">
<div class="f608c5 col-xs-1 col-md-wide-75">
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<div class="cfd65a lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b3a7e3 lvshicms-panel-box clearfix">
<div class="e8c33d lvshicms-panel_hd">
<div class="f238a4 lvshicms-panel__head bottom-line active clearfix">
<h3 class="d82c55 title"> {$strPlayGroupName} </h3>
<span class="ace011 more text-muted"></span>
</div>
</div>
<div class="af83ff lvshicms-panel_bd clearfix">
<ul class="ec7fc4 lvshicms-content__list sort-list clearfix">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="fe7195 col-lg-6 col-md-5 col-sm-4 col-xs-3">
<a class="bd8e2d btn btn-default"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
</div>
</div>
{/foreach}
<div class="fbb509 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="de59fa lvshicms-panel-box clearfix">
<div class="c42a28 lvshicms-panel_hd">
<div class="bb7fba lvshicms-panel__head clearfix">
<h3 class="f3d3f6 title">剧情介绍</h3>
</div>
</div>
<div class="f42eb6 lvshicms-panel_bd">
<ul class="fee9ad lvshicms-vod-content col-pd clearfix">
<li class="ba9e50 col-pd">
<div class="d154e9 shrink-box shrinked">
<div class="acf872 shrink-text">
{$arrVideo.v_description|raw}</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="cf2f0c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c47e1e lvshicms-panel-box clearfix">
<div class="e83124 lvshicms-panel_hd">
<div class="afb3ca lvshicms-panel__head bottom-line active clearfix">
<h3 class="d3b7c4 title">同类型</h3>
</div>
</div>
<div class="d5b99f lvshicms-panel_bd">
<ul class="bc7e71 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="d6bc14 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="e81862 lvshicms-panel-box clearfix">
<div class="fcdb67 lvshicms-panel_hd">
<div class="b6114e lvshicms-panel__head bottom-line active clearfix">
<h3 class="ae5ab2 title">猜你喜欢</h3>
<span class="fdf3d7 text-muted more pull-right"><a rel="nofollow" href="/case/tv.html">更多 <i
class="f36af8 fa fa-angle-right"></i></a></span>
</div>
</div>
<div class="b29ef1 lvshicms-panel_bd">
<ul class="d95dd8 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="e1d6ee hidden-xs hidden-sm col-md-wide-25">
<div class="cad2e9 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c161d4 lvshicms-panel-box clearfix">
<div class="b068f7 lvshicms-panel_hd">
<div class="cb5cbd lvshicms-panel__head bottom-line active clearfix">
<h3 class="b12e07 title">热播{$arrVideo.v_parent_category}</h3>
</div>
</div>
<div class="cf4a36 lvshicms-panel_bd clearfix">
<ul class="f9a6ab lvshicms-vodlist__text col-pd clearfix">
{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="25"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<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']}`,
};
</script>
{/block}
{block name="customize"} {/block}

View File

@@ -0,0 +1,411 @@
{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}">
{// 结构化数据}
<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="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/dplayer/1.24.0/DPlayer.min.css">
<style type="text/css">
</style>
{/block}
{block name='body-class'}video-play-page{/block}
{block name="main"}
<div class="aaf99d lvshicms-container-bg padding-0" style="margin-top:-20px;">
<div class="bab1b0 container" style="z-index: 0;">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOPLAY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOPLAY@TEXT"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="e35b87 player-wrapper clearfix" style="z-index: 999;">
<div class="e1110d lvshicms-player__item clearfix" style="background-color: #27272f;">
<div class="a7ffc5 relative clearfix" id="player-left">
<div class="ef235b lvshicms-player__box player-fixed">
<div class="a705ec tips close-box" style="background-color: #181515;">
<a
class="e221a5 tips-close-btn pull-right" href="javascript:;">
<i class="ae97e1 fa fa-close"></i>
</a>
<ul>
<li>正在播放:{$arrVideo.v_name}-第{$Request.route.intPlayIndex}集</li>
</ul>
</div>
<div class="dplayer-prent">
<div id="dplayer" class="dplayer" muted=“muted” style="margin-top: 5px;"></div>
</div>
</div>
<ul class="e46e57 lvshicms-player__operate" style="background-color: #1b1a25;">
<li> <a href="javascript:;" onclick="window.location.reload()"><i
class="a330ca fa fa-spinner"></i> 刷新</a>
</li>
<li>
<a class="f4aa4c digg_link" data-id="90860" data-mid="1" data-type="up"
href="javascript:;">
<i class="ce7b63 fa fa-thumbs-up"></i>
<span nclass="d712b9 digg_num">{$arrVideo.v_score}</spanclass=>
</a>
</li>
<li>
<a class="c8cbc0 digg_link" data-id="90860" data-mid="1" data-type="down"
href="javascript:;">
<i class="d7a73d fa fa-thumbs-down"></i>
<span class="f60cfa digg_num">{$arrVideo.vc_clicks ?? 0}</span>
</a>
</li>
<!-- <li class="b269de playshare dropdown-hover"> <a href="javascript:;"><i
class="a5a6c4 fa fa-share font14"></i> 分享</a>
<div class="be59cf dropdown-box bottom fadeInDown clearfix">
<div class="ed9be4 item text-center" style="width: 260px;">
<div class="ad10df col-pd">
<p>复制下方内容粘贴给好友</p>
<p><textarea class="fe45d5 form-control content"
rows="4">我正在观看毕打职场笑传第01集地址https://www.dingzhu.net/product/90860-1-1.html</textarea>
</p>
<a class="ec0315 btn btn-xs btn-primary lvshicms-copy-html"
href="javascript:;">复制到剪贴板</a>
</div>
</div>
</div>
</li> -->
<!-- <li><a class="bbdb18 disabled" href=""><i class="b1d47a fa fa-caret-up"></i> 上集</a></li>
<li><a href="/product/90860-1-2.html"><i class="f38fad fa fa-caret-down"></i> 下集</a></li> -->
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="f49486 container">
<div class="f41398 row">
<div class="f30a1c col-xs-1">
<div class="ae33f8 lvshicms-player__data hidden-sm hidden-xs clearfix">
<div class="d368e1 col-pd">
<h3> {$arrVideo.v_name} <small class="e85030 text-muted">第{$Request.route.intPlayIndex}集</small> </h3>
<p class="e82edf text-muted margin-0"> {$arrVideo.v_publish_date}更新 / <span class="c8b71b text-red">{$arrVideo.v_score}分</span> /
{$arrVideo.v_parent_category} /
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
/
{$arrVideo.v_year} </p>
</div>
</div>
</div>
</div>
</div>
<div class="b949ce container">
<div class="d4cf89 row">
<div class="f608c5 col-xs-1 col-md-wide-75">
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<div class="cfd65a lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b3a7e3 lvshicms-panel-box clearfix">
<div class="e8c33d lvshicms-panel_hd">
<div class="f238a4 lvshicms-panel__head bottom-line active clearfix">
<h3 class="d82c55 title"> {$strPlayGroupName} </h3>
<span class="ace011 more text-muted"></span>
</div>
</div>
<div class="af83ff lvshicms-panel_bd clearfix">
<ul class="ec7fc4 lvshicms-content__list sort-list clearfix">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="fe7195 col-lg-6 col-md-5 col-sm-4 col-xs-3">
<a class="bd8e2d btn btn-default"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
</div>
</div>
{/foreach}
<div class="fbb509 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="de59fa lvshicms-panel-box clearfix">
<div class="c42a28 lvshicms-panel_hd">
<div class="bb7fba lvshicms-panel__head clearfix">
<h3 class="f3d3f6 title">剧情介绍</h3>
</div>
</div>
<div class="f42eb6 lvshicms-panel_bd">
<ul class="fee9ad lvshicms-vod-content col-pd clearfix">
<li class="ba9e50 col-pd">
<div class="d154e9 shrink-box shrinked">
<div class="acf872 shrink-text">
{$arrVideo.v_description|raw}</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="cf2f0c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c47e1e lvshicms-panel-box clearfix">
<div class="e83124 lvshicms-panel_hd">
<div class="afb3ca lvshicms-panel__head bottom-line active clearfix">
<h3 class="d3b7c4 title">同类型</h3>
</div>
</div>
<div class="d5b99f lvshicms-panel_bd">
<ul class="bc7e71 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="d6bc14 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="e81862 lvshicms-panel-box clearfix">
<div class="fcdb67 lvshicms-panel_hd">
<div class="b6114e lvshicms-panel__head bottom-line active clearfix">
<h3 class="ae5ab2 title">猜你喜欢</h3>
<span class="fdf3d7 text-muted more pull-right"><a rel="nofollow" href="/case/tv.html">更多 <i
class="f36af8 fa fa-angle-right"></i></a></span>
</div>
</div>
<div class="b29ef1 lvshicms-panel_bd">
<ul class="d95dd8 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="e1d6ee hidden-xs hidden-sm col-md-wide-25">
<div class="cad2e9 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c161d4 lvshicms-panel-box clearfix">
<div class="b068f7 lvshicms-panel_hd">
<div class="cb5cbd lvshicms-panel__head bottom-line active clearfix">
<h3 class="b12e07 title">热播{$arrVideo.v_parent_category}</h3>
</div>
</div>
<div class="cf4a36 lvshicms-panel_bd clearfix">
<ul class="f9a6ab lvshicms-vodlist__text col-pd clearfix">
{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="25"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<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']}`,
};
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 = ""
</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

@@ -0,0 +1,292 @@
以下是对提供的视频站点首页(`video2.com`SEO优化的分析和建议重点针对中国大陆的浏览搜索排名如百度结合同行影视站点的常见优化策略确保排名提升至首页。分析涵盖现有代码的优点、不足并提供具体改进建议。
---
### 现有SEO优点
1. **TKDTitle, Keywords, Description设置**
- 标题包含核心关键词如“大地资源网在线观看免费官网”“2024大地影院免费高清电视剧大全”长度适中约60字符符合百度要求。
- 关键词和描述包含热门搜索词(如“免费视频”“高清电视剧”),与影视站点用户搜索习惯高度相关。
- 使用`{{{video_type}}}`占位符,动态插入内容(如“动作片”),提升页面相关性。
2. **结构化数据**
- 包含`WebSite``VideoObject``CollectionPage`的JSON-LD结构化数据增强百度富媒体展示如视频缩略图、评分
- `ItemList`列出具体影片,包含名称、描述、演员、图片等,利于搜索引擎理解内容。
3. **站内链接**
- 导航链接(如`/vodtype/dian-ying`)和内容链接(如`/voddetail/wu-ren-guo-jing-140361`结构清晰URL规范化利于爬虫抓取。
- 提供“更多”链接(如`/vodtype-dian-ying/all-all-all-all/all-page1`),引导用户深入浏览,增加页面权重。
4. **Sitemap和Robots**
- 提供多种地图链接XML、RSS、百度Sitemap等便于搜索引擎快速收录。
- `robots.txt`支持,明确爬虫规则。
5. **响应式设计**
- 使用`meta viewport`和响应式网格(如`col-lg-4 col-md-4`适配PC和移动端提升用户体验和移动端排名。
6. **社交媒体标签**
- `og:title``og:description`等Open Graph标签支持社交媒体分享增加外部流量来源。
---
### SEO不足及优化建议
以下是首页SEO的不足之处及具体改进建议针对中国大陆影视站点特点如百度算法偏好优化。
#### 1. **标题Title优化**
**问题**
- 标题过长约70字符含“https://video1.com-大地”),可能被截断,影响展示效果。
- 包含重复关键词(如“大地”出现多次),降低关键词密度效率。
- 包含无关域名(`https://video1.com`),与实际域名(`video2.com`)不一致,易引起搜索引擎混淆。
**建议**
- 精简标题控制在60字符以内突出核心关键词避免重复。
- 移除无关域名,使用实际域名(`video2.com`)增强品牌一致性。
- 示例优化标题:
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
```
#### 2. **关键词Keywords优化**
**问题**
- 关键词列表较长,部分词(如“短视频”“预告片”)与主站内容(电影、电视剧)相关性较低。
- 关键词堆砌(如“大地影院大全在线观看”“大地”),可能被百度视为过度优化。
- 未包含长尾关键词如“免费电影在线观看”“2024最新电视剧”错失精准流量。
**建议**
- 精选5-8个高相关性关键词包含品牌词如“大地影视”和长尾词。
- 避免重复和无关词,突出用户搜索意图。
- 示例优化关键词:
```html
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
```
#### 3. **描述Description优化**
**问题**
- 描述过长约180字符可能被截断影响点击率。
- 包含无效URL`www.https://video1.com`),格式错误,降低可信度。
- 关键词堆砌(如“大地影视”重复出现),未突出独特卖点(如“无广告”)。
- `{{{video_type}}}`占位符在首页可能未正确替换,导致描述不完整。
**建议**
- 控制描述在120-160字符简洁突出免费、高清、无广告等卖点。
- 修正URL为`video2.com`,确保一致性。
- 确保`{{{video_type}}}`在首页有默认值(如“电影”)或移除。
- 示例优化描述:
```html
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
```
#### 4. **URL规范化**
**问题**
- 页面URL`https://video2.com`)与描述中的`https://video1.com`不一致,可能导致权重分散。
- 部分链接(如`/news/52050.html`)指向非视频内容,降低页面主题相关性。
- 热门搜索链接(如`/news/52050.html`)重复指向同一页面,浪费爬虫资源。
**建议**
- 统一使用`https://video2.com`作为规范URL添加`rel="canonical"`标签:
```html
<link rel="canonical" href="https://video2.com">
```
- 将热门搜索链接改为视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`),提高相关性。
- 检查站内链接确保无404或重定向错误。
#### 5. **结构化数据改进**
**问题**
- `VideoObject`的`thumbnailUrl`指向详情页URL而非图片URL格式错误。
- `uploadDate`格式为`25-05-08`不符ISO 8601标准如`2025-05-08`)。
- 部分影片描述为空如“铁鹰战士4”影响富媒体展示效果。
- `aggregateRating`的`ratingValue`多为`0.0`,缺乏真实评分数据。
**建议**
- 修正`thumbnailUrl`为实际图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)。
- 规范化`uploadDate`为`YYYY-MM-DD`格式。
- 为每部影片补充简短描述50-100字提高信息完整性。
- 若无真实评分,移除`aggregateRating`或用默认值(如`5.0`)。
- 示例优化片段:
```json
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "大地影视热门推荐预告片",
"description": "观看大地影视最新电影和电视剧的精彩预告片!",
"thumbnailUrl": "https://video2.com/img/video/2025/01/27/22/wu-ren-guo-jing.webp",
"uploadDate": "2025-05-08",
"publisher": {
"@type": "Organization",
"name": "大地影视"
}
}
```
#### 6. **内容优化**
**问题**
- 首页内容偏少,部分模块(如“最新电视剧”“最新综艺”)的`<ul>`为空,降低页面信息量。
- 影片简介过长如“无人过境”超300字可能影响加载速度和用户体验。
- 缺少关键词密度优化,核心词(如“免费观看”“高清影视”)出现频率低。
**建议**
- 填充空模块至少展示3-5条内容增加页面信息量。
- 简介控制在100-150字超出部分移至详情页首页仅展示摘要。
- 在`<h2>`、`<p>`中适度插入关键词(如“免费高清电影”),但避免堆砌。
- 示例优化影片项:
```html
<div class="dbbcf6 lvshicms-vodlist__detail">
<h2 class="c9c8c4 title text-overflow">
<a href="/voddetail/wu-ren-guo-jing-140361" title="无人过境免费观看">无人过境</a>
</h2>
<p class="ed925a text text-overflow text-muted hidden-xs">
简介: 西北小镇混混老姜欲雇凶杀人,高启义为筹医药费假冒杀手,引发连环追杀。免费高清在线观看,精彩公路冒险!
</p>
</div>
```
#### 7. **导航优化**
**问题**
- 导航下拉菜单(如“电影”“电视剧”)的子项链接(如`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`)层级过深,增加爬虫抓取难度。
- 热门搜索模块的链接指向`/news`而非视频详情页,降低转化率。
- 导航未使用面包屑导航影响用户体验和SEO权重传递。
**建议**
- 简化URL层级如将`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`改为`/movie/action/page1`。
- 将热门搜索链接指向视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`)。
- 添加面包屑导航:
```html
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">首页</a></li>
<li class="breadcrumb-item"><a href="/vodtype/dian-ying">电影</a></li>
<li class="breadcrumb-item active" aria-current="page">动作片</li>
</ol>
</nav>
```
#### 8. **图片优化**
**问题**
- 图片未使用`alt`属性(如`<img>`或背景图),错失关键词优化机会。
- 图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)未压缩,增加加载时间。
- 懒加载属性(`data-src`)未全面覆盖,可能影响首屏加载。
**建议**
- 为所有图片添加`alt`属性,包含关键词:
```html
<a class="d0ff14 lvshicms-vodlist__thumb lazyload" ...>
<img src="/img/video/2025/01/27/22/wu-ren-guo-jing.webp" alt="无人过境免费高清电影海报" style="display:none;">
</a>
```
- 使用工具如TinyPNG压缩图片减少文件大小。
- 确保所有图片使用`data-src`和`data-original`,并验证懒加载脚本有效。
#### 9. **加载速度优化**
**问题**
- 加载多个CSS文件`plugins.css`、`global.css`等增加HTTP请求。
- JS文件如`jquery-3.7.1.min.js`未使用defer或async阻塞渲染。
- 百度推送脚本重复加载(`<head>`和`<body>`各一次)。
**建议**
- 合并CSS文件为单一文件减少请求
```html
<link rel="stylesheet" href="/template/videodingzhu/css/combined.css" type="text/css">
```
- 为非关键JS添加`defer`或`async`
```html
<script src="/public/jquery/jquery-3.7.1.min.js" defer></script>
```
- 删除重复的百度推送脚本,仅保留`<head>`中的:
```html
<script src="http://push.zhanzhang.baidu.com/push.js"></script>
```
#### 10. **移动端体验**
**问题**
- 移动端搜索表单的占位符(“输入主演名或影片名”)未突出免费观看优势。
- 部分模块(如“好莱坞榜单”)在移动端隐藏(`hidden-xs`),减少信息量。
- 未启用AMP加速移动页面或PWA渐进式Web应用
**建议**
- 修改搜索占位符,突出卖点:
```html
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
```
- 在移动端显示简版榜单如前3项增加内容
```html
<div class="a51b92 col-md-wide-25 hidden-md hidden-lg">
<!-- 简版榜单 -->
</div>
```
- 考虑引入AMP版本如`/amp/index.html`或PWA提升移动端加载速度和用户留存。
#### 11. **外部链接与友链**
**问题**
- 友情链接模块(`<ul class="a085fb lvshicms-link__text">`)为空,错失权重传递机会。
- 未利用站外链接(如知乎、微博)引导流量。
**建议**
- 添加5-10个高质量友情链接优先选择影视相关站点
```html
<ul class="a085fb lvshicms-link__text clearfix">
<li><a href="https://example.com" target="_blank">影视资源站</a></li>
</ul>
```
- 在社交媒体(如微博)创建官方账号,发布视频预告,添加`video2.com`链接。
#### 12. **其他细节**
**问题**
- `<html lang="zh">`未指定具体语言(如`zh-CN`可能影响区域化SEO。
- 部分影片评分(`ratingValue: 0.0`)不可信,降低用户信任。
- 未设置HSTSHTTP严格传输安全影响安全性评分。
**建议**
- 修改语言为`zh-CN`
```html
<html lang="zh-CN">
```
- 为热门影片添加真实评分(如基于豆瓣或用户评分)。
- 启用HSTS
```html
<meta http-equiv="Strict-Transport-Security" content="max-age=31536000; includeSubDomains">
```
---
### 综合优化后的首页TKD示例
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
<link rel="canonical" href="https://video2.com">
```
---
### 实施优先级
1. **高优先级**(立即修复,影响排名):
- 修正标题、关键词、描述(精简、统一域名)。
- 规范化URL添加`rel="canonical"`。
- 填充空模块,优化简介长度。
2. **中优先级**1-2周内优化
- 改进结构化数据(修正`thumbnailUrl`、`uploadDate`)。
- 压缩图片合并CSS/JS。
- 添加面包屑导航和友情链接。
3. **低优先级**(长期优化):
- 引入AMP/PWA。
- 建立社交媒体账号。
- 启用HSTS。
---
### 同行对比分析
通过分析中国大陆影视站点如爱奇艺、腾讯视频、免费影视站常见SEO策略包括
- **关键词聚焦**突出“免费”“高清”“在线观看”长尾词覆盖广泛如“2024最新动作片免费观看”
- **内容丰富**:首页展示多类型内容(电影、电视剧、综艺等),每日更新。
- **技术优化**CDN加速、图片压缩、懒加载全面应用。
- **外部引流**:通过微博、抖音、贴吧发布短视频或预告,引导流量。
**建议**参考爱奇艺的动态TKD和内容密度结合免费站点的关键词策略如“无广告”在首页增加短视频预告模块吸引用户停留。
---
### 总结
当前首页SEO基础良好但存在标题冗长、URL不统一、内容空缺等问题。通过精简TKD、规范化URL、填充内容、优化图片和加载速度可显著提升百度排名。建议优先实施高优先级优化并结合社交媒体引流1-2个月内有望进入首页。
若需具体代码调整(如某个模块的实现)或进一步分析(如竞争对手关键词),请提供更多细节!

View File

@@ -0,0 +1,211 @@
<html lang="zh-CN">
<head>
{block name="get-data"}{/block}
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta name="robots" content="index, follow">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{block name="title"}{/block}</title>
<meta name="keywords" content='{block name="keywords"}{/block}'>
<meta name="description" content='{block name="description"}{/block}'>
<link rel="shortcut icon" href="/template/videodingzhu/images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="/template/videodingzhu/css/plugins.css" type="text/css">
<link rel="stylesheet" href="/template/videodingzhu/css/global.css" type="text/css">
<link rel="stylesheet" href="/template/videodingzhu/css/style.css" type="text/css">
{//
<!-- <link rel="stylesheet" href="/template/videodingzhu/css/color.css" type="text/css" name="default"> -->
<!-- <link rel="stylesheet" href="/public/layer/layer.css?v=3.5.1" id="layuicss-layer"> -->
}
{block name="head"}{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
<script>
const strPcPath = `{$strPcPath}`;
</script>
</head>
<body class="f9eb6d active {block name='body-class'}{/block}" id="{block name='body-id'}{/block}">
<header class="a23db0 lvshicms-header__top" id="header-top">
<div class="c6f1a2 container">
<div class="d3071b row">
<div class="b6bfb3 lvshicms-header__logo">
<a class="f1c0ad logo" href="/">
{$DomainModel->d_name}
</a>
</div>
<div
class="d55436 lvshicms-header__menu hidden-sm hidden-xs swiper-initialized swiper-horizontal swiper-pointer-events swiper-free-mode">
<ul class="c308d4 swiper-wrapper" id="swiper-wrapper-15acf77edda9621f" aria-live="polite"
style="transition-duration: 300ms;">
<li class="c1afb6 swiper-slide {if $Request.route.strParentCategory == ''}active{/if}"><a href="/">首页</a></li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class='ac50b3 swiper-slide dropdown-hover {if $val.v_category_en == $Request.route.strParentCategory}active{/if}'>
<a href='{site:vciurl parent_category="$val.v_category_en" /}'>{$val.v_category}</a>
<div class="bed39b dropdown-box bottom fadeInDown clearfix" style="padding-top: 0;">
<ul class="e7213a item nav-list clearfix" style="width: 190px;">
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li class="b6abc3 col-md-2 col-sm-2 col-xs-1" style="padding: 6px;"><a
class="c11c57 btn btn-sm btn-block btn-default"
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>
</li>
{/foreach}
</ul>
</div>
</li>
{/video:categorytype}
<li class="a2d382 swiper-slide "> <a href="{$strRankUrlTemp}">榜单</a> </li>
</ul>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
<ul class="e4dd97 lvshicms-header__user">
<li class="f7ad8a hist slide-search-toggle hidden-xs hidden-sm">
<form action="{$strSearchListUrlTemp}">
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
<button class="d3b134 mobile-search-button" type="submit"><i
class="b2a8c7 fa fa-search"></i></button>
</form>
</li>
<li class="f37351 hist dropdown-hover">
<a href="{$strHistoryUrlTemp}" title="播放记录">
<i class="afd2b2 fa fa-clock-o"></i>
</a>
</li>
</ul>
<div class="d9ad47 mobile-search hidden-md hidden-lg">
<form action="{$strSearchListUrlTemp}">
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
<button class="d3b134 mobile-search-button" type="submit"><i
class="b2a8c7 fa fa-search"></i></button>
</form>
</div>
<div
class="ab3059 nav-box hidden-md hidden-lg swiper-initialized swiper-horizontal swiper-pointer-events swiper-free-mode swiper-backface-hidden">
<ul class="f34760 swiper-wrapper" id="swiper-wrapper-cc8105579edaa1a3" aria-live="polite">
<li class="a4f250 nav-item swiper-slide {if $Request.route.strParentCategory == ''}active swiper-slide-active{/if}" role="group"
aria-label="1 / 8">
<a href="/">
<i class="bd0907 nav-item-icon home"></i>
<span class="b08159 nav-item-text">首页</span>
</a>
</li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class='e544e2 nav-item swiper-slide swiper-slide-next {if $val.v_category_en == $Request.route.strParentCategory}active swiper-slide-active{/if}' role="group" aria-label="2 / 8">
<a href='{site:vciurl parent_category="$val.v_category_en" /}'>
<i class="afd4ea nav-item-icon dy"></i>
<span class="d8f67b nav-item-text">{$val.v_category}</span>
</a>
</li>
{/video:categorytype}
<li class="d0f97c nav-item swiper-slide" role="group" aria-label="7 / 8">
<a href="{$strRankUrlTemp}">
<i class="c739f9 nav-item-icon bd"></i>
<span class="e34e2d nav-item-text">热播</span>
</a>
</li>
</ul>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
</div>
</div>
<div class="f075db lvshicms-header__top_bg hidden-sm hidden-xs"></div>
</header>
<div class="d61dbe slide-search">
<header class="a8408b slide-search-header">
<a class="b4a13d slide-search-close" href="javascript:;">
<i class="f8d4d2 fa fa-chevron-left"></i>
</a>
搜索
</header>
<div class="da8a21 slide-search-body">
<form class="a40443 slide-search-form" method="get" action="{$strSearchListUrlTemp}">
<input type="text" name="keyword" class="d05fc1 slide-search-input" value="" placeholder="搜索免费高清电影或主演"
autocomplete="off">
<button type="submit" class="b6ce5d slide-search-submit"><i class="b004bd fa fa-search"></i></button>
</form>
<ul class="ab08b9 slide-search-list">
<li class="bfcc70 slide-search-title">热门搜索</li>
{video:list count="6"
sort_type="news"
d_key="key" d_val="Video"
cache_life="86400"}
<li class="cbc4a0 slide-search-item">
<a href='{site:vsurl key="$Video.v_name" p="1"/}'>
<em class="f1a98e slide-search-icon">NO</em>
<em class="bd65b9 slide-search-num slide-search-num1">{$key}</em>
<span class="ddcfc6 slide-search-name">{$Video.v_name}</span>
</a>
</li>
{/video:list}
</ul>
</div>
</div>
<div class="e2b25c slide-search-bg"></div>
{block name="main"}
{/block}
{include file="public/footer" /}
{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>
{// 全局统计 }
{site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/}
{// 站点统计 }
{$DomainModel->d_statis|raw}
<script>
(function () {
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>
</html>

View File

@@ -0,0 +1,58 @@
老牛视频模板
http://test.xgcs8888.com/
1.视频分类 分页标签查询, 增加 4个查询字段
$v_class = $tag['v_class'] ?? '10'; // 自定义分类 电影 电视剧 ..
$v_lang = $tag['v_lang'] ?? "all"; // 语言
$v_area = $tag['v_area'] ?? "all"; // 地区
$v_year = $tag['v_year'] ?? "all"; // 年份
2. 排行榜标签 增加 分类查询
{video:ranklist v_class="dianying" v_category="$val.v_category_en"
需要 配置tkd 模板的页面
首页:
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
T
K
D
分类首页
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
tkd
分类分页
视频详情页面
视频播放页面
视频搜索页面
视频排行榜首页
视频排行榜分页
目前在搭建一个视频站点:
页面 有
首页
分类首页:分类首页没有分页,一共有 电影,电视剧,综艺,动漫,短剧 。5大分类。
分类首页 展示内容:每一大分类下面的所有小分类 展示10个视频
这个就是上面发你的代码;
需要你帮忙设计 TKD 模板
和 h1标签内容 模板
因为我后面需要部署大量域名站点 都使用同一个模板
分类列表分页:

View File

@@ -0,0 +1,226 @@
{extend name="base" /}
{block name="get-data"}
{video:listexp count="8" sort_type="tuijian" d_key="key" d_val="Video" cache_life="86400" export_name="arrVideoTuijian"
/}
{video:listexp count="17" sort_type="piaofang" d_key="key" d_val="Video" cache_life="86400"
export_name="arrVideoPiaofang" /}
{site:grm page_code="h5_index" diff="0" num="100" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="VIDEO@INDEX@INDEX@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@INDEX@INDEX@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content='{site:replace code="VIDEO@INDEX@INDEX@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="website" />
<!-- 结构化数据 -->
<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"
}
},
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{$DomainModel->d_name}热门推荐预告片",
"description": "观看{$DomainModel->d_name}最新电影和电视剧的精彩预告片!",
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key == 1 }
"thumbnailUrl": 'https://{$DomainModel->d_domain}{$Video.v_pic}',
{/if}
{/volist}
"uploadDate": "{:date('Y-m-d')}",
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}"
}
},
{
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - {$DomainModel->d_logo_text}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": "{$DomainModel->d_name}首页提供好莱坞最新电影、电视剧、综艺、动漫和短剧的免费高清在线观看,热门推荐每日更新!",
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem",
"position": {$key},
"item": {
"@type": "TVSeries",
"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}
{volist name="arrVideoPiaofang" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem{$Video.v_id}",
"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-js"}{/block}
{block name="main"}
<div class="bc22cc container">
<div class="eb5be5 row ">
<h1 class="view-title">
<a href="/">{$DomainModel->d_name}</a>-{$DomainModel->d_text_logo}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORYINDEX@TEXT"}</h4>
</div>
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 热门推荐 </h2>
<a class="ec883e more text-muted right bg" href='{site:vclurl parent_category="all" category="all" area="all" lang="all" year="all" order="tuijian" page="1"/}'>更多推荐 <i
class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{foreach $arrVideoTuijian as $key=>$Video }
{include file="public/video-list-shu" start="0" col-lg="4"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> 好莱坞榜单 </h2>
<a class="c502a3 more text-muted right bg" href="javascript::">票房(亿) </a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{foreach $arrVideoPiaofang as $key=>$Video }
{include file="public/video-list-phb" start="27" /}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="bd998f row">
<div class="c9d5a5 col-xs-1">
<div class="d739ec lvshicms-panel lvshicms-panel-bg clearfix">
<div class="f2c9c4 lvshicms-panel-box clearfix">
<div class="aa80ce lvshicms-panel_hd">
<div class="c49f14 lvshicms-panel__head bottom-line active clearfix">
<h2 class="a9d97c title">最新上映</h2>
</div>
</div>
<div class="a27622 lvshicms-panel_bd clearfix">
<ul class="bbf222 lvshicms-vodlist clearfix">
{video:list count="6"
sort_type="news"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
</div>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
{include file="public/video-panel" /}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,49 @@
<div class="df0a63 lvshicms-foot clearfix" style="padding-top:0px;">
<div class="fa6207 container">
<div class="f8fa68 row">
<div class="d4ce18 col-xs-1">
<div class="be974b lvshicms-panel lvshicms-panel-bg clearfix">
<div class="cbdc99 lvshicms-panel-box clearfix">
<div class="f98dfa lvshicms-panel_hd">
<div class="bd50fd lvshicms-panel__head clearfix">
<h3 class="f7c1b4 title"> 友情链接 </h3>
</div>
</div>
<div class="f9bdb5 lvshicms-panel_bd clearfix">
<div class="f358be col-xs-1">
<ul class="a085fb lvshicms-link__text clearfix">
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="aa00ab col-xs-1">
<div class="cea0ad col-pd text-center">
<p>
<!-- <a href="/rss/index.xml" target="_blank">RSS地图</a>
<a href="/rss/baidu.xml" target="_blank">百度Sitemap</a>
<a href="/rss/so.xml" target="_blank">360Sitemap</a>
<a href="/rss/google.xml" target="_blank">谷歌Sitemap</a> -->
<a href="/sitemap_index.xml" target="_blank">XML地图</a>
<a href="/robots.txt" target="_blank">网站地图</a>
{ad:list code="YOUQING_LIANJIE_GUANG_GAO" order="desc" limit="2" id="ad"}
<a href="{$ad.gg_tiao_zhuan_di_zhi}" target="_blank">{$ad.gg_wen_zi}
</a>
{/ad:list}
</p>
<p>Copyright © 2025 {$DomainModel->d_name} <a href="/"> {$DomainModel->d_domain}</a>All Rights Reserved .</p>
<p>若本站收录内容侵犯了您的权益,请给我们留言,本站将第一时间处理。</p>
<p>反馈邮箱:{site:cfg code="YOU_XIANG" encode="false"/}</p>
</div>
</div>
</div>
</div>
</div>
<ul class="b3f1cb lvshicms-extra clearfix">
<li> <a class="fb9d99 backtop" href="javascript:scroll(0,0)" title="返回顶部" style="display: none;"><i
class="f6e490 fa fa-angle-up"></i></a> </li>
</ul>

View File

@@ -0,0 +1,21 @@
<li>
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<?php $key ++ ?>
<a class="ae5cfc text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<span class='c4df4f pull-right text-muted visible-lg '>
{$Video.v_box_office ?? 0}
</span>
<span class='dd3e38 badge
{eq name="$key" value="1"}badge-first {/eq}
{eq name="$key" value="2"}badge-second {/eq}
{eq name="$key" value="3"}badge-third {/eq}'>
{$key}
</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,25 @@
<li class="fc7a7d col-lg-[col-lg] col-md-4 col-sm-3 col-xs-2">
<div class="a9a18d lvshicms-vodlist__box">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="d0ff14 lvshicms-vodlist__thumb"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<img class="lazyload-img" src="/static/img/load.png"
data-src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看">
<span class="c3b20e play hidden-xs"></span>
<span class="bf637e pic-text text-right">{$Video.v_remarks}</span>
</a>
<div class="dbbcf6 lvshicms-vodlist__detail">
<h3 class="c9c8c4 title text-overflow">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">{$Video.v_name}</a></h3>
<p class="ed925a text text-overflow text-muted hidden-xs">简介:{$Video.v_description|raw}</p>
</div>
</div>
</li>

View File

@@ -0,0 +1,9 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="top-line-dot text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">
<span class="text-muted pull-right">{$Video.v_remarks}</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,48 @@
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 最新{$val.v_category} </h2>
<a class="ec883e more text-muted right bg" href='{site:vclurl parent_category="$val.v_category_en" category="all" area="all" lang="all" year="all" order="all" page="1"/}'>更多 <i
class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{video:list count="8" v_parent_category_en="$val.v_category_en" sort_type="news" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="27" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> {$val.v_category}周榜单 </h2>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="17"
v_parent_category_en="$val.v_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,294 @@
对于一个小说站点(如你提到的包含首页、分类列表、排行榜、男生/女生频道、详情页面、章节页面、目录页面等),配置 Sitemap 时需要根据页面类型的重要性和 SEO 目标选择性地包含 URL并合理组织以优化搜索引擎抓取和索引。以下是针对小说站点特点的 Sitemap 配置建议,包括哪些页面应该包含、如何处理大量 URL以及相关的最佳实践。
---
### 一、小说站点页面类型分析
根据你提供的信息,小说站点的页面类型可以分为以下几类,每类页面的 SEO 价值和是否需要包含在 Sitemap 中有所不同:
| 页面类型 | 描述 | SEO 价值 | 是否包含在 Sitemap |
|------------------|----------------------------------------------------------------------|---------------------------------------|--------------------|
| **首页** | 网站主入口,通常包含推荐小说、导航等。 | 高(核心流量入口) | 是 |
| **分类列表** | 按题材、类型(如玄幻、言情)展示小说列表,可能有多页(如 `page=2`)。| 高(引导用户到具体小说) | 是(仅包含主页面) |
| **排行榜** | 热门小说排行,可能按日、周、月或类型(如男生/女生)排序。 | 中到高(吸引点击,动态更新) | 是(视情况精选) |
| **男生/女生频道**| 针对不同用户群的分类页面(如男生玄幻、女生穿越)。 | 高(细分用户需求) | 是 |
| **详情页面** | 小说详情页,包含简介、封面、目录链接等。 | 高(核心转化页面) | 是 |
| **章节页面** | 小说具体章节内容,通常数量庞大。 | 中到低内容分散SEO 价值有限) | 视情况(可选) |
| **目录页面** | 小说章节列表,汇总所有章节链接。 | 中便于用户导航SEO 价值中等) | 是 |
---
### 二、Sitemap 配置策略
#### 1. 哪些 URL 应该包含?
基于小说站点的特点,建议优先包含以下页面:
- **首页**
- 包含站点的唯一首页 URL`https://www.example.com/`)。
- 设置高优先级(如 `<priority>1.0</priority>`)和频繁更新(如 `<changefreq>daily</changefreq>`)。
- **分类列表(主页面)**
- 包含每个分类的主页面(如 `https://www.example.com/category/xuanhuan`)。
- 排除分页 URL`https://www.example.com/category/xuanhuan?page=2`),因为分页内容重复且 SEO 价值低。
- 示例:玄幻、言情、历史等分类页面。
- **男生/女生频道**
- 包含频道主页(如 `https://www.example.com/male``https://www.example.com/female`)。
- 如果频道下有子分类(如男生玄幻、女生穿越),也应包含。
- **排行榜(精选)**
- 包含主要排行榜页面(如 `https://www.example.com/rank/hot``https://www.example.com/rank/male`)。
- 如果排行榜页面频繁更新(如每日排行),可设置 `<changefreq>daily</changefreq>`
- 排除次要或动态参数页面(如 `?sort=week`),避免重复内容。
- **详情页面**
- 包含所有小说详情页面(如 `https://www.example.com/book/123`)。
- 这些页面是 SEO 的核心,吸引搜索流量(如用户搜索小说名)。
- 使用 `<lastmod>` 反映小说更新时间,提示搜索引擎重新抓取。
- **目录页面**
- 包含每个小说的目录页面(如 `https://www.example.com/book/123/chapters`)。
- 目录页面便于用户导航,且可能被搜索引擎索引为长尾关键词(如“小说名 章节列表”)。
- **章节页面(可选)**
- **不建议全部包含**小说章节页面数量庞大可能数十万到数百万SEO 价值较低(用户很少通过搜索直接进入具体章节)。
- **可选策略**
- 只包含最新章节(如最近 30 天的章节),吸引搜索引擎抓取更新内容。
- 只包含热门小说的前几章(如前 10 章),作为引流入口。
- 如果包含,设置较低优先级(如 `<priority>0.3</priority>`)。
#### 2. 哪些 URL 应该排除?
- **分页 URL**:如分类列表的 `?page=2`,重复内容无 SEO 价值。
- **动态参数 URL**:如 `?sort=latest``?utm_source=...`,应规范化到标准 URL。
- **不可索引页面**
- 已设置 `<meta name="robots" content="noindex">` 的页面。
-`robots.txt` 屏蔽的页面(如 `Disallow: /user/`)。
- **用户生成内容**
- 如评论页、用户个人中心、搜索结果页(`?q=keyword`)。
- **临时页面**
- 如促销活动页、测试页面。
- **错误页面**:如 404、500 页面。
---
### 三、处理大量 URL 的策略
小说站点通常有大量 URL尤其是章节页面可能超过 Sitemap 的限制50,000 条 URL 或 50MB。以下是应对方法
#### 1. 使用 Sitemap 索引文件
- 将 URL 分组到多个子 Sitemap 文件(如 `sitemap-books.xml``sitemap-chapters.xml`),每文件不超过 50,000 条 URL。
- 创建一个 Sitemap 索引文件(如 `sitemap_index.xml`)引用所有子 Sitemap。
- 示例:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-chapters.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 2. 分组策略
- **按页面类型分组**
- `sitemap-main.xml`:首页、分类列表、排行榜、男生/女生频道。
- `sitemap-books.xml`:小说详情页面和目录页面。
- `sitemap-chapters.xml`:章节页面(如果包含)。
- **按更新频率分组**
- 频繁更新的页面(如排行榜、最新章节)单独分组,设置 `<changefreq>daily</changefreq>`。
- **按小说分组**
- 为每部小说生成单独的 Sitemap如 `sitemap-book123.xml`),包含其详情页、目录页和部分章节页。
#### 3. 动态生成 Sitemap
- **脚本生成**
- 使用 Python、PHP 等脚本从数据库查询 URL生成 Sitemap 文件。
- 示例Python参考前文
```python
from lxml import etree
import datetime
# 模拟数据库查询
urls = [
{'loc': 'https://www.example.com/', 'lastmod': '2025-04-21', 'changefreq': 'daily', 'priority': '1.0'},
{'loc': 'https://www.example.com/book/123', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.8'},
{'loc': 'https://www.example.com/book/123/chapters', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.6'},
]
urlset = etree.Element("urlset", xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
for url in urls:
url_element = etree.SubElement(urlset, "url")
loc = etree.SubElement(url_element, "loc")
loc.text = url['loc']
lastmod = etree.SubElement(url_element, "lastmod")
lastmod.text = url['lastmod']
changefreq = etree.SubElement(url_element, "changefreq")
changefreq.text = url['changefreq']
priority = etree.SubElement(url_element, "priority")
priority.text = url['priority']
tree = etree.ElementTree(urlset)
tree.write("sitemap-main.xml", pretty_print=True, xml_declaration=True, encoding="UTF-8")
```
- **定时任务**
- 使用 cron 任务每天或每周生成 Sitemap上传到根目录。
- 示例Linux cron
```bash
0 2 * * * python3 /path/to/generate_sitemap.py
```
- **触发式更新**
- 在小说更新(如新章节发布)时,触发脚本更新相关 Sitemap。
#### 4. 伪静态 Sitemap
- 配置服务器将 `sitemap_index.xml` 等请求重定向到动态脚本,实时生成 XML 内容。
- 示例Apache + PHP参考前文
```apache
RewriteEngine On
RewriteRule ^sitemap_index\.xml$ sitemap_index.php [L]
```
---
### 四、robots.txt 配置
在 `robots.txt` 中声明 Sitemap 索引文件,使用绝对路径:
```txt
User-agent: *
Disallow: /user/
Disallow: /search/
Sitemap: https://www.example.com/sitemap_index.xml
```
- 确保不通过 `Disallow` 屏蔽 Sitemap 文件。
- 如果 Sitemap 托管在 CDN如 `https://cdn.example.com/sitemap_index.xml`),在 `robots.txt` 中使用 CDN 地址,并验证所有权。
---
### 五、SEO 优化建议
1. **优先级设置**
- 首页:`<priority>1.0</priority>`
- 分类/频道/详情页:`<priority>0.8</priority>`
- 目录页:`<priority>0.6</priority>`
- 章节页(若包含):`<priority>0.3</priority>`
2. **更新频率**
- 首页、排行榜:`<changefreq>daily</changefreq>`
- 分类/频道/详情/目录页:`<changefreq>weekly</changefreq>`
- 章节页:`<changefreq>monthly</changefreq>`(或 `never` 如果不频繁更新)
3. **规范化 URL**
- 确保只包含规范 URL如 `https://www.example.com/book/123` 而非 `http://example.com/book/123`)。
- 使用 `<link rel="canonical">` 或 Sitemap 统一规范版本。
4. **避免重复内容**
- 排除带参数的 URL如 `?sort=latest`)。
- 如果男生/女生频道与分类列表有重复内容,选择主要入口包含在 Sitemap 中。
5. **图片 Sitemap可选**
- 为小说封面图片创建图片 Sitemap优化图片搜索排名。
- 示例:
```xml
<url>
<loc>https://www.example.com/book/123</loc>
<image:image>
<image:loc>https://www.example.com/images/book123.jpg</image:loc>
<image:title>小说封面</image:title>
</image:image>
</url>
```
---
### 六、注意事项
1. **章节页面数量庞大**
- 如果每部小说有数百章节,章节页面可能占主导。建议只包含最新或热门章节,或完全排除章节页面,依靠目录页面引导爬虫。
2. **抓取预算**
- 小说站点 URL 数量多,需优化 Sitemap 避免浪费搜索引擎的抓取预算。
3. **动态更新**
- 小说站点内容更新频繁(如新章节发布),建议动态生成 Sitemap 或频繁更新。
4. **验证 Sitemap**
- 提交 `sitemap_index.xml` 到 Google Search Console、Bing Webmaster Tools检查是否被正确解析。
- 使用 GSC 的“索引覆盖率”报告,确认重要页面(如详情页)是否被索引。
---
### 七、示例 Sitemap 配置
#### 索引文件(`sitemap_index.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 主 Sitemap`sitemap-main.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.example.com/category/xuanhuan</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/male</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/rank/hot</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
</urlset>
```
#### 小说 Sitemap`sitemap-books.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/book/123</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/book/123/chapters</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
```
---
### 八、结论
- **不需包含所有 URL**:小说站点应优先包含首页、分类列表、男生/女生频道、排行榜、详情页面和目录页面。章节页面可根据需要部分包含或完全排除。
- **精选策略**:重点包含 SEO 价值高的页面(如详情页),排除分页、动态参数、低价值页面。
- **大型站点处理**:使用 Sitemap 索引文件和子 Sitemap按页面类型分组动态生成以应对大量 URL。
- **SEO 优化**:设置合理的 `<priority>` 和 `<changefreq>`,定期更新 Sitemap验证索引效果。
如果你需要针对小说站点的具体脚本(生成 Sitemap 或伪静态配置、CMS 插件推荐,或其他细节(如图片 Sitemap、robots.txt 优化),请告诉我!

View File

@@ -0,0 +1,3 @@
User-agent: *
Disallow:
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nclurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" order="zheng" page="1"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
<!-- 最多 50,000 个 <url> 条目 -->
</urlset>

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,18 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:lcpurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.{$DomainModel->d_domain}/</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- 分类 -->
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
<!-- 排序 -->
{novel:sort d_key="sort_key" d_val="strSortName"}
<!-- 状态 -->
{novel:status d_key="status_key" d_val="strStatusName"}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/novel:status}
{/novel:sort}
{/novel:category}
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
</urlset>

View File

@@ -0,0 +1,39 @@
{novel:pagerexp page="1" limit="40000"
sort_type="news"
d_key="d_key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-main.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
<!--小说总数量/50000 得出 sitemap-books 一共有多少个 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说总数量/50000 得出 sitemap-books-catalog一共有多少个,每个小说只取一个目录链接,分页不需要加入去 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-catalog-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说章节取最新章节 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-chapters-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
</sitemapindex>

View File

@@ -0,0 +1,109 @@
{extend name="base" /}
{block name="get-data"}
{site:grm page_code="h5_video_search" diff="$Request.url" num="30" g_key="arrGrm" /}
{/block}
{block name="title"}我的观看记录{/block}
{block name="keywords"}我的观看记录{/block}
{block name="description"}我的观看记录{/block}
{block name="head"}
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name="main"}
<div class="container">
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h3 class="a1100b title"> 观看记录 </h3>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix" id="historyContainer">
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h3 class="f48698 title">周榜单 </h3>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="20"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
<script>
const strVideoUrlTemp = `{site:replace code="VIDEO_INFO_URL"}`;
const strVideoPlayUrlTemp = `{site:replace code="VIDEO_PLAY_URL"}`;
const strSearchUrlTemp = `{site:replace code="VIDEO_SEARCH_LIST_URL"}`;
// 调用展示书架功能
document.addEventListener("DOMContentLoaded", function () {
const secondTemplate = `
<li class="fc7a7d col-lg-[col-lg] col-md-4 col-sm-3 col-xs-2">
<div class="a9a18d lvshicms-vodlist__box">
<a class="d0ff14 lvshicms-vodlist__thumb lazyload lazyload-bg"
href="{{videoUrl}}"
title="{{videoName}}"
data-src="{{videoPic}}"
data-original="{{videoPic}}"
style="background-image: url('{{videoPic}}');">
<span class="c3b20e play hidden-xs"></span>
<span class="bf637e pic-text text-right">{{videoRemarks}}</span>
</a>
<div class="dbbcf6 lvshicms-vodlist__detail">
<h4 class="c9c8c4 title text-overflow">
<a href="{{videoUrl}}" title="{{videoName}}">{{videoName}}</a>
</h4>
<p class="ed925a text text-overflow text-muted hidden-xs">描述:{{videoDescription}}</p>
</div>
</div>
</li>
`;
// 调用展示书架功能
displayHistory(secondTemplate);
})
</script>
{/block}

View File

@@ -0,0 +1,270 @@
{extend name="base" /}
{block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="30" button_num="10" cache_life="86400"
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="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}" />
{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"}
<div class="bac3b3 container" style="margin-top:10px;">
<h1 class="view-title">
{site:replace code="VIDEO@GETCATEGORY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORY@TEXT"}</h4>
<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='{site:vciurl parent_category="$Request.route.strParentCategory" /}' itemprop="item">
<span itemprop="name">{site:getval code="strVideoParentCategoryName" /}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="all" lang="all" year="all" order="all" page="1"/}' itemprop="item">
<span itemprop="name">{site:getval code="strVideoCategoryName" /}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
</nav>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> {site:getval code="strVideoParentCategoryName" /} 筛选</h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_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="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="d353e6 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="af2d48 btn 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>
<a class=" a618ce btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'>{$arrChildrenCategory.v_category}</a>
</li>
{/foreach}
{/if}
{/video:categorytype}
</ul>
<ul class="b03fb8 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="aca9e5 btn text-muted">地区</a> </li>
{video:area d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$key" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" ae52d4 btn {if $Request.route.strArea == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:area}
</ul>
<ul class="a383e9 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="e49c5f btn text-muted">年份</a> </li>
{video:year d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$key" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" e230a5 btn {if $Request.route.strYear == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:year}
</ul>
<ul class="a383e9 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="e49c5f btn text-muted">语言</a> </li>
{video:lang d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$key" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class="c32026 btn {if $Request.route.strLang == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:lang}
</ul>
</div>
<ul class="d95c02 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="d40281 btn text-muted">排序</a> </li>
{video:sort d_key="key" d_val="val"}
<li>
<a class="c32026 btn {if $Request.route.strOrder == $key}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$key" page="$Request.route.intPage"}'>
{$val}
</a>
</li>
{/video:sort}
</ul>
</div>
</div>
</div>
<div class="aed4a1 lvshicms-panel active lvshicms-panel-bg clearfix">
<div class="dbaf2a lvshicms-panel-box clearfix">
<div class="e028a7 lvshicms-panel_bd">
<ul class="c75497 lvshicms-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/foreach}
</ul>
</div>
</div>
</div>
<ul class="ae5171 lvshicms-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li >
<a href="{$vo.url}" class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,194 @@
{extend name="base" /}
{block name="get-data"}
{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}
{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_parent_category_en="$Request.route.strParentCategory"
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}{site:vciurl parent_category="$Request.route.strParentCategory" /}"
}
]
},
]
</script>
{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
{block name="main"}
<div class="bc22cc 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 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>
{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="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 最新{$arrChildrenCategory.v_category} </h2>
<a class="ec883e more text-muted right bg"
href='{site:vclurl parent_category="$val.v_category_en" category="all" area="all" lang="all" year="all" order="all" page="1"/}'>更多
<i class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{video:list count="8"
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="27" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> {$arrChildrenCategory.v_category}周榜单 </h2>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="17"
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="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
{/foreach}
{/if}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,230 @@
{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="86400"}
{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">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKINDEX@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKINDEX@TEXT"}</h4>
<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>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> 排行榜 筛选</h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li>
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="daily" page="1"/}'
class="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="e489dd container">
<div class="a1ce09 row">
{video:ranksort d_key="key" d_val="val"}
<div class="fe3214 col-lg-3 col-md-4 col-sm-2 col-xs-1">
<div class="ccba9b lvshicms-panel-bg2 col-pd radius-4 clearfix">
<div class="fd0689 lvshicms-panel_hd">
<div class="e58f0e lvshicms-panel__head bottom-line active clearfix text-overflow">
<h2 class="d653d5 title"> {$val}排行榜 </h2>
</div>
</div>
<div class="ce0ed8 lvshicms-panel_bd clearfix">
<ul class="da258b lvshicms-vodlist__media col-pd clearfix">
{video:ranklist count="10"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
<?php $key ++ ;?>
{if $key < 4} <li>
<div class="a45a81 thumb">
<a class="b7fde8 lvshicms-vodlist__thumb img-xs-70"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name} ">
<img class="lazyload-img" src="/static/img/load.png"
data-src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看">
<span class='fa73de badge
{eq name="$key" value="1"}badge-first {/eq}
{eq name="$key" value="2"}badge-second {/eq}
{eq name="$key" value="3"}badge-third {/eq}'>
{$key}
</span>
</a>
</div>
<div class="b6dc66 detail detail-side">
<h3 class="c58a4d title"><a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'><i
class="bc63b3 fa fa-angle-right text-muted pull-right"></i> {$Video.v_name}
</a>
</h3>
<p class="e3349d font-12"><span class="e2d8fb text-muted">类型:</span>{$Video.v_category}<span
class="cd23c6 text-muted">地区:</span>{volist name='$Video.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}</p>
<p class="a70415 font-12 margin-0"><span
class="cf514a text-muted">主演:</span>{volist name='$Video.v_actor' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist},</p>
</div>
</li>
{/if}
{/video:ranklist}
</ul>
<ul class="a33a7f lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="10"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
<?php $key ++ ;?>
{if $key > 3}
<li class="c11eab top-line"> <a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"> <span class="d507d5 badge">{$key}</span>{$Video.v_name}
</a> </li>
{/if}
{/video:ranklist}
</ul>
</div>
</div>
</div>
{/video:ranksort}
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,200 @@
{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="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@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="bac3b3 container" style="margin-top:10px;">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKLIST@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKLIST@TEXT"}</h4>
<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>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> {site:getval code="strVideoParentCategoryName" /}排行榜 </h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li >
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="$Request.route.strSortType" page="1"/}'
class="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="d353e6 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="af2d48 btn 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>
<a class=" a618ce btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
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>
<ul class="d95c02 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="d40281 btn text-muted">排序</a> </li>
{video:ranksort d_key="key" d_val="val"}
<li class="{if $Request.route.strSortType == $key}btn-warm{/if}">
<a href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" sort_type="$key" page="1"/}'>
{$val}排行榜
</a>
</li>
{/video:ranksort}
</ul>
</div>
</div>
</div>
<div class="aed4a1 lvshicms-panel active lvshicms-panel-bg clearfix">
<div class="dbaf2a lvshicms-panel-box clearfix">
<div class="e028a7 lvshicms-panel_bd">
<ul class="c75497 lvshicms-vodlist clearfix">
{foreach $arrVideoRankList as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,199 @@
{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="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="$Request.url" 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">
<h1 class="view-title">
{site:replace code="VIDEO@GETSEARCHVIDEO@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETSEARCHVIDEO@TEXT"}</h4>
<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='{site:vsurl key="$Request.get.keyword" p="1"/}' itemprop="item">
<span itemprop="name">搜索:{$Request.get.keyword}</span>
</a>
<meta itemprop="position" content="2" />
</li>
</ol>
</nav>
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 搜索<span style="color:red">“{$Request.get.keyword}”</span>相关结果共有 <span style="color:red">{$resData.p_data.total}</span> 部视频 </h2>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" start="27" col-lg="4"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h3 class="f48698 title">周榜单 </h3>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="20"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
<ul class="ae5171 lvshicms-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li >
<a href="{$vo.url}" class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,384 @@
{extend name="base" /}
{block name="get-data"}
{if $Request.route.intVId}
{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" /}
{/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="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="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="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}">
{// 结构化数据}
<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="main"}
<div class="a971eb lvshicms-container-bg detail-info-box" style="margin-top:-20px;">
<div class="f969ad container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOINFO@H1" diff="$arrVideo.v_id"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOINFO@TEXT" diff="$arrVideo.v_id"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="fc40de row">
<div class="f147ce lvshicms-panel margin-0 clearfix">
<div class="a193f5 lvshicms-panel-box clearfix">
<div class="dea615 col-xs-1 detail-box">
<div class="b97972 lvshicms-content__thumb">
<a class="f2880b lvshicms-vodlist__thumb video-info-lvshicms-vodlist__thumb picture" href="/product/90860-1-1.html"
title="{$arrVideo.v_name}">
<img class="f20604 lazyload" src="{$arrVideo.v_pic}">
<span class="c5512d detail-icon play"></span>
<span class="a555ce pic-text text-right">已完结</span>
</a>
</div>
<div class="eecb94 lvshicms-content__detail">
<h1 class="edfc9f title">{$arrVideo.v_name}</h1>
<p class="fe7a76 data"><span class="dcb052 text-muted">主演:</span>
{volist name='$arrVideo.v_actor' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="d53452 data"><span class="a0dae5 text-muted">导演:</span>
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="bb52e4 data">
<span class="ed25a2 text-muted">分类:</span>
<a
href='{site:vsurl key="$arrVideo.v_parent_category" p="1"/}'>{$arrVideo.v_parent_category}</a>
</p>
<p class="bb52e4 data">
<span class="ed25a2 text-muted">类型:</span>
<a href='{site:vsurl key="$arrVideo.v_category" p="1"/}'>{$arrVideo.v_category}</a>
</p>
<p class="d994f6 data">
<span class="d8c8c2 text-muted">地区:</span>
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="e027e7 data"><span class="ca5df1 text-muted">更新:</span>{$arrVideo.v_publish_date}
</p>
<div class="ca86f6 detail-info-btn">
<li>
<a class="c82c25 btn btn-warm"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
<i class="b6a199 fa fa-play"></i>
立即播放
</a>
</li>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="b949ce container">
<div class="d4cf89 row">
<div class="f608c5 col-xs-1 col-md-wide-75">
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<div class="cfd65a lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b3a7e3 lvshicms-panel-box clearfix">
<div class="e8c33d lvshicms-panel_hd">
<div class="f238a4 lvshicms-panel__head bottom-line active clearfix">
<h3 class="d82c55 title"> {$strPlayGroupName} </h3>
<span class="ace011 more text-muted"></span>
</div>
</div>
<div class="af83ff lvshicms-panel_bd clearfix">
<ul class="ec7fc4 lvshicms-content__list sort-list clearfix">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="fe7195 col-lg-6 col-md-5 col-sm-4 col-xs-3">
<a class="bd8e2d btn btn-default"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
</div>
</div>
{/foreach}
<div class="fbb509 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="de59fa lvshicms-panel-box clearfix">
<div class="c42a28 lvshicms-panel_hd">
<div class="bb7fba lvshicms-panel__head clearfix">
<h3 class="f3d3f6 title">剧情介绍</h3>
</div>
</div>
<div class="f42eb6 lvshicms-panel_bd">
<ul class="fee9ad lvshicms-vod-content col-pd clearfix">
<li class="ba9e50 col-pd">
<div class="d154e9 shrink-box shrinked">
<div class="acf872 shrink-text">
{$arrVideo.v_description|raw}</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="cf2f0c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c47e1e lvshicms-panel-box clearfix">
<div class="e83124 lvshicms-panel_hd">
<div class="afb3ca lvshicms-panel__head bottom-line active clearfix">
<h3 class="d3b7c4 title">同类型</h3>
</div>
</div>
<div class="d5b99f lvshicms-panel_bd">
<ul class="bc7e71 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="d6bc14 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="e81862 lvshicms-panel-box clearfix">
<div class="fcdb67 lvshicms-panel_hd">
<div class="b6114e lvshicms-panel__head bottom-line active clearfix">
<h3 class="ae5ab2 title">猜你喜欢</h3>
<span class="fdf3d7 text-muted more pull-right"><a rel="nofollow" href="/case/tv.html">更多 <i
class="f36af8 fa fa-angle-right"></i></a></span>
</div>
</div>
<div class="b29ef1 lvshicms-panel_bd">
<ul class="d95dd8 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="e1d6ee hidden-xs hidden-sm col-md-wide-25">
<div class="cad2e9 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c161d4 lvshicms-panel-box clearfix">
<div class="b068f7 lvshicms-panel_hd">
<div class="cb5cbd lvshicms-panel__head bottom-line active clearfix">
<h3 class="b12e07 title">热播{$arrVideo.v_parent_category}</h3>
</div>
</div>
<div class="cf4a36 lvshicms-panel_bd clearfix">
<ul class="f9a6ab lvshicms-vodlist__text col-pd clearfix">
{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="25"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<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']}`,
};
</script>
{/block}
{block name="customize"} {/block}

View File

@@ -0,0 +1,411 @@
{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}">
{// 结构化数据}
<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="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/dplayer/1.24.0/DPlayer.min.css">
<style type="text/css">
</style>
{/block}
{block name='body-class'}video-play-page{/block}
{block name="main"}
<div class="aaf99d lvshicms-container-bg padding-0" style="margin-top:-20px;">
<div class="bab1b0 container" style="z-index: 0;">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOPLAY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOPLAY@TEXT"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="e35b87 player-wrapper clearfix" style="z-index: 999;">
<div class="e1110d lvshicms-player__item clearfix" style="background-color: #27272f;">
<div class="a7ffc5 relative clearfix" id="player-left">
<div class="ef235b lvshicms-player__box player-fixed">
<div class="a705ec tips close-box" style="background-color: #181515;">
<a
class="e221a5 tips-close-btn pull-right" href="javascript:;">
<i class="ae97e1 fa fa-close"></i>
</a>
<ul>
<li>正在播放:{$arrVideo.v_name}-第{$Request.route.intPlayIndex}集</li>
</ul>
</div>
<div class="dplayer-prent">
<div id="dplayer" class="dplayer" muted=“muted” style="margin-top: 5px;"></div>
</div>
</div>
<ul class="e46e57 lvshicms-player__operate" style="background-color: #1b1a25;">
<li> <a href="javascript:;" onclick="window.location.reload()"><i
class="a330ca fa fa-spinner"></i> 刷新</a>
</li>
<li>
<a class="f4aa4c digg_link" data-id="90860" data-mid="1" data-type="up"
href="javascript:;">
<i class="ce7b63 fa fa-thumbs-up"></i>
<span nclass="d712b9 digg_num">{$arrVideo.v_score}</spanclass=>
</a>
</li>
<li>
<a class="c8cbc0 digg_link" data-id="90860" data-mid="1" data-type="down"
href="javascript:;">
<i class="d7a73d fa fa-thumbs-down"></i>
<span class="f60cfa digg_num">{$arrVideo.vc_clicks ?? 0}</span>
</a>
</li>
<!-- <li class="b269de playshare dropdown-hover"> <a href="javascript:;"><i
class="a5a6c4 fa fa-share font14"></i> 分享</a>
<div class="be59cf dropdown-box bottom fadeInDown clearfix">
<div class="ed9be4 item text-center" style="width: 260px;">
<div class="ad10df col-pd">
<p>复制下方内容粘贴给好友</p>
<p><textarea class="fe45d5 form-control content"
rows="4">我正在观看毕打职场笑传第01集地址https://www.dingzhu.net/product/90860-1-1.html</textarea>
</p>
<a class="ec0315 btn btn-xs btn-primary lvshicms-copy-html"
href="javascript:;">复制到剪贴板</a>
</div>
</div>
</div>
</li> -->
<!-- <li><a class="bbdb18 disabled" href=""><i class="b1d47a fa fa-caret-up"></i> 上集</a></li>
<li><a href="/product/90860-1-2.html"><i class="f38fad fa fa-caret-down"></i> 下集</a></li> -->
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="f49486 container">
<div class="f41398 row">
<div class="f30a1c col-xs-1">
<div class="ae33f8 lvshicms-player__data hidden-sm hidden-xs clearfix">
<div class="d368e1 col-pd">
<h3> {$arrVideo.v_name} <small class="e85030 text-muted">第{$Request.route.intPlayIndex}集</small> </h3>
<p class="e82edf text-muted margin-0"> {$arrVideo.v_publish_date}更新 / <span class="c8b71b text-red">{$arrVideo.v_score}分</span> /
{$arrVideo.v_parent_category} /
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
/
{$arrVideo.v_year} </p>
</div>
</div>
</div>
</div>
</div>
<div class="b949ce container">
<div class="d4cf89 row">
<div class="f608c5 col-xs-1 col-md-wide-75">
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<div class="cfd65a lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b3a7e3 lvshicms-panel-box clearfix">
<div class="e8c33d lvshicms-panel_hd">
<div class="f238a4 lvshicms-panel__head bottom-line active clearfix">
<h3 class="d82c55 title"> {$strPlayGroupName} </h3>
<span class="ace011 more text-muted"></span>
</div>
</div>
<div class="af83ff lvshicms-panel_bd clearfix">
<ul class="ec7fc4 lvshicms-content__list sort-list clearfix">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="fe7195 col-lg-6 col-md-5 col-sm-4 col-xs-3">
<a class="bd8e2d btn btn-default"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
</div>
</div>
{/foreach}
<div class="fbb509 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="de59fa lvshicms-panel-box clearfix">
<div class="c42a28 lvshicms-panel_hd">
<div class="bb7fba lvshicms-panel__head clearfix">
<h3 class="f3d3f6 title">剧情介绍</h3>
</div>
</div>
<div class="f42eb6 lvshicms-panel_bd">
<ul class="fee9ad lvshicms-vod-content col-pd clearfix">
<li class="ba9e50 col-pd">
<div class="d154e9 shrink-box shrinked">
<div class="acf872 shrink-text">
{$arrVideo.v_description|raw}</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="cf2f0c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c47e1e lvshicms-panel-box clearfix">
<div class="e83124 lvshicms-panel_hd">
<div class="afb3ca lvshicms-panel__head bottom-line active clearfix">
<h3 class="d3b7c4 title">同类型</h3>
</div>
</div>
<div class="d5b99f lvshicms-panel_bd">
<ul class="bc7e71 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="d6bc14 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="e81862 lvshicms-panel-box clearfix">
<div class="fcdb67 lvshicms-panel_hd">
<div class="b6114e lvshicms-panel__head bottom-line active clearfix">
<h3 class="ae5ab2 title">猜你喜欢</h3>
<span class="fdf3d7 text-muted more pull-right"><a rel="nofollow" href="/case/tv.html">更多 <i
class="f36af8 fa fa-angle-right"></i></a></span>
</div>
</div>
<div class="b29ef1 lvshicms-panel_bd">
<ul class="d95dd8 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="e1d6ee hidden-xs hidden-sm col-md-wide-25">
<div class="cad2e9 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c161d4 lvshicms-panel-box clearfix">
<div class="b068f7 lvshicms-panel_hd">
<div class="cb5cbd lvshicms-panel__head bottom-line active clearfix">
<h3 class="b12e07 title">热播{$arrVideo.v_parent_category}</h3>
</div>
</div>
<div class="cf4a36 lvshicms-panel_bd clearfix">
<ul class="f9a6ab lvshicms-vodlist__text col-pd clearfix">
{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="25"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<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']}`,
};
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 = ""
</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

@@ -0,0 +1,292 @@
以下是对提供的视频站点首页(`video2.com`SEO优化的分析和建议重点针对中国大陆的浏览搜索排名如百度结合同行影视站点的常见优化策略确保排名提升至首页。分析涵盖现有代码的优点、不足并提供具体改进建议。
---
### 现有SEO优点
1. **TKDTitle, Keywords, Description设置**
- 标题包含核心关键词如“大地资源网在线观看免费官网”“2024大地影院免费高清电视剧大全”长度适中约60字符符合百度要求。
- 关键词和描述包含热门搜索词(如“免费视频”“高清电视剧”),与影视站点用户搜索习惯高度相关。
- 使用`{{{video_type}}}`占位符,动态插入内容(如“动作片”),提升页面相关性。
2. **结构化数据**
- 包含`WebSite``VideoObject``CollectionPage`的JSON-LD结构化数据增强百度富媒体展示如视频缩略图、评分
- `ItemList`列出具体影片,包含名称、描述、演员、图片等,利于搜索引擎理解内容。
3. **站内链接**
- 导航链接(如`/vodtype/dian-ying`)和内容链接(如`/voddetail/wu-ren-guo-jing-140361`结构清晰URL规范化利于爬虫抓取。
- 提供“更多”链接(如`/vodtype-dian-ying/all-all-all-all/all-page1`),引导用户深入浏览,增加页面权重。
4. **Sitemap和Robots**
- 提供多种地图链接XML、RSS、百度Sitemap等便于搜索引擎快速收录。
- `robots.txt`支持,明确爬虫规则。
5. **响应式设计**
- 使用`meta viewport`和响应式网格(如`col-lg-4 col-md-4`适配PC和移动端提升用户体验和移动端排名。
6. **社交媒体标签**
- `og:title``og:description`等Open Graph标签支持社交媒体分享增加外部流量来源。
---
### SEO不足及优化建议
以下是首页SEO的不足之处及具体改进建议针对中国大陆影视站点特点如百度算法偏好优化。
#### 1. **标题Title优化**
**问题**
- 标题过长约70字符含“https://video1.com-大地”),可能被截断,影响展示效果。
- 包含重复关键词(如“大地”出现多次),降低关键词密度效率。
- 包含无关域名(`https://video1.com`),与实际域名(`video2.com`)不一致,易引起搜索引擎混淆。
**建议**
- 精简标题控制在60字符以内突出核心关键词避免重复。
- 移除无关域名,使用实际域名(`video2.com`)增强品牌一致性。
- 示例优化标题:
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
```
#### 2. **关键词Keywords优化**
**问题**
- 关键词列表较长,部分词(如“短视频”“预告片”)与主站内容(电影、电视剧)相关性较低。
- 关键词堆砌(如“大地影院大全在线观看”“大地”),可能被百度视为过度优化。
- 未包含长尾关键词如“免费电影在线观看”“2024最新电视剧”错失精准流量。
**建议**
- 精选5-8个高相关性关键词包含品牌词如“大地影视”和长尾词。
- 避免重复和无关词,突出用户搜索意图。
- 示例优化关键词:
```html
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
```
#### 3. **描述Description优化**
**问题**
- 描述过长约180字符可能被截断影响点击率。
- 包含无效URL`www.https://video1.com`),格式错误,降低可信度。
- 关键词堆砌(如“大地影视”重复出现),未突出独特卖点(如“无广告”)。
- `{{{video_type}}}`占位符在首页可能未正确替换,导致描述不完整。
**建议**
- 控制描述在120-160字符简洁突出免费、高清、无广告等卖点。
- 修正URL为`video2.com`,确保一致性。
- 确保`{{{video_type}}}`在首页有默认值(如“电影”)或移除。
- 示例优化描述:
```html
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
```
#### 4. **URL规范化**
**问题**
- 页面URL`https://video2.com`)与描述中的`https://video1.com`不一致,可能导致权重分散。
- 部分链接(如`/news/52050.html`)指向非视频内容,降低页面主题相关性。
- 热门搜索链接(如`/news/52050.html`)重复指向同一页面,浪费爬虫资源。
**建议**
- 统一使用`https://video2.com`作为规范URL添加`rel="canonical"`标签:
```html
<link rel="canonical" href="https://video2.com">
```
- 将热门搜索链接改为视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`),提高相关性。
- 检查站内链接确保无404或重定向错误。
#### 5. **结构化数据改进**
**问题**
- `VideoObject`的`thumbnailUrl`指向详情页URL而非图片URL格式错误。
- `uploadDate`格式为`25-05-08`不符ISO 8601标准如`2025-05-08`)。
- 部分影片描述为空如“铁鹰战士4”影响富媒体展示效果。
- `aggregateRating`的`ratingValue`多为`0.0`,缺乏真实评分数据。
**建议**
- 修正`thumbnailUrl`为实际图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)。
- 规范化`uploadDate`为`YYYY-MM-DD`格式。
- 为每部影片补充简短描述50-100字提高信息完整性。
- 若无真实评分,移除`aggregateRating`或用默认值(如`5.0`)。
- 示例优化片段:
```json
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "大地影视热门推荐预告片",
"description": "观看大地影视最新电影和电视剧的精彩预告片!",
"thumbnailUrl": "https://video2.com/img/video/2025/01/27/22/wu-ren-guo-jing.webp",
"uploadDate": "2025-05-08",
"publisher": {
"@type": "Organization",
"name": "大地影视"
}
}
```
#### 6. **内容优化**
**问题**
- 首页内容偏少,部分模块(如“最新电视剧”“最新综艺”)的`<ul>`为空,降低页面信息量。
- 影片简介过长如“无人过境”超300字可能影响加载速度和用户体验。
- 缺少关键词密度优化,核心词(如“免费观看”“高清影视”)出现频率低。
**建议**
- 填充空模块至少展示3-5条内容增加页面信息量。
- 简介控制在100-150字超出部分移至详情页首页仅展示摘要。
- 在`<h2>`、`<p>`中适度插入关键词(如“免费高清电影”),但避免堆砌。
- 示例优化影片项:
```html
<div class="dbbcf6 lvshicms-vodlist__detail">
<h2 class="c9c8c4 title text-overflow">
<a href="/voddetail/wu-ren-guo-jing-140361" title="无人过境免费观看">无人过境</a>
</h2>
<p class="ed925a text text-overflow text-muted hidden-xs">
简介: 西北小镇混混老姜欲雇凶杀人,高启义为筹医药费假冒杀手,引发连环追杀。免费高清在线观看,精彩公路冒险!
</p>
</div>
```
#### 7. **导航优化**
**问题**
- 导航下拉菜单(如“电影”“电视剧”)的子项链接(如`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`)层级过深,增加爬虫抓取难度。
- 热门搜索模块的链接指向`/news`而非视频详情页,降低转化率。
- 导航未使用面包屑导航影响用户体验和SEO权重传递。
**建议**
- 简化URL层级如将`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`改为`/movie/action/page1`。
- 将热门搜索链接指向视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`)。
- 添加面包屑导航:
```html
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">首页</a></li>
<li class="breadcrumb-item"><a href="/vodtype/dian-ying">电影</a></li>
<li class="breadcrumb-item active" aria-current="page">动作片</li>
</ol>
</nav>
```
#### 8. **图片优化**
**问题**
- 图片未使用`alt`属性(如`<img>`或背景图),错失关键词优化机会。
- 图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)未压缩,增加加载时间。
- 懒加载属性(`data-src`)未全面覆盖,可能影响首屏加载。
**建议**
- 为所有图片添加`alt`属性,包含关键词:
```html
<a class="d0ff14 lvshicms-vodlist__thumb lazyload" ...>
<img src="/img/video/2025/01/27/22/wu-ren-guo-jing.webp" alt="无人过境免费高清电影海报" style="display:none;">
</a>
```
- 使用工具如TinyPNG压缩图片减少文件大小。
- 确保所有图片使用`data-src`和`data-original`,并验证懒加载脚本有效。
#### 9. **加载速度优化**
**问题**
- 加载多个CSS文件`plugins.css`、`global.css`等增加HTTP请求。
- JS文件如`jquery-3.7.1.min.js`未使用defer或async阻塞渲染。
- 百度推送脚本重复加载(`<head>`和`<body>`各一次)。
**建议**
- 合并CSS文件为单一文件减少请求
```html
<link rel="stylesheet" href="/template/videodingzhu/css/combined.css" type="text/css">
```
- 为非关键JS添加`defer`或`async`
```html
<script src="/public/jquery/jquery-3.7.1.min.js" defer></script>
```
- 删除重复的百度推送脚本,仅保留`<head>`中的:
```html
<script src="http://push.zhanzhang.baidu.com/push.js"></script>
```
#### 10. **移动端体验**
**问题**
- 移动端搜索表单的占位符(“输入主演名或影片名”)未突出免费观看优势。
- 部分模块(如“好莱坞榜单”)在移动端隐藏(`hidden-xs`),减少信息量。
- 未启用AMP加速移动页面或PWA渐进式Web应用
**建议**
- 修改搜索占位符,突出卖点:
```html
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
```
- 在移动端显示简版榜单如前3项增加内容
```html
<div class="a51b92 col-md-wide-25 hidden-md hidden-lg">
<!-- 简版榜单 -->
</div>
```
- 考虑引入AMP版本如`/amp/index.html`或PWA提升移动端加载速度和用户留存。
#### 11. **外部链接与友链**
**问题**
- 友情链接模块(`<ul class="a085fb lvshicms-link__text">`)为空,错失权重传递机会。
- 未利用站外链接(如知乎、微博)引导流量。
**建议**
- 添加5-10个高质量友情链接优先选择影视相关站点
```html
<ul class="a085fb lvshicms-link__text clearfix">
<li><a href="https://example.com" target="_blank">影视资源站</a></li>
</ul>
```
- 在社交媒体(如微博)创建官方账号,发布视频预告,添加`video2.com`链接。
#### 12. **其他细节**
**问题**
- `<html lang="zh">`未指定具体语言(如`zh-CN`可能影响区域化SEO。
- 部分影片评分(`ratingValue: 0.0`)不可信,降低用户信任。
- 未设置HSTSHTTP严格传输安全影响安全性评分。
**建议**
- 修改语言为`zh-CN`
```html
<html lang="zh-CN">
```
- 为热门影片添加真实评分(如基于豆瓣或用户评分)。
- 启用HSTS
```html
<meta http-equiv="Strict-Transport-Security" content="max-age=31536000; includeSubDomains">
```
---
### 综合优化后的首页TKD示例
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
<link rel="canonical" href="https://video2.com">
```
---
### 实施优先级
1. **高优先级**(立即修复,影响排名):
- 修正标题、关键词、描述(精简、统一域名)。
- 规范化URL添加`rel="canonical"`。
- 填充空模块,优化简介长度。
2. **中优先级**1-2周内优化
- 改进结构化数据(修正`thumbnailUrl`、`uploadDate`)。
- 压缩图片合并CSS/JS。
- 添加面包屑导航和友情链接。
3. **低优先级**(长期优化):
- 引入AMP/PWA。
- 建立社交媒体账号。
- 启用HSTS。
---
### 同行对比分析
通过分析中国大陆影视站点如爱奇艺、腾讯视频、免费影视站常见SEO策略包括
- **关键词聚焦**突出“免费”“高清”“在线观看”长尾词覆盖广泛如“2024最新动作片免费观看”
- **内容丰富**:首页展示多类型内容(电影、电视剧、综艺等),每日更新。
- **技术优化**CDN加速、图片压缩、懒加载全面应用。
- **外部引流**:通过微博、抖音、贴吧发布短视频或预告,引导流量。
**建议**参考爱奇艺的动态TKD和内容密度结合免费站点的关键词策略如“无广告”在首页增加短视频预告模块吸引用户停留。
---
### 总结
当前首页SEO基础良好但存在标题冗长、URL不统一、内容空缺等问题。通过精简TKD、规范化URL、填充内容、优化图片和加载速度可显著提升百度排名。建议优先实施高优先级优化并结合社交媒体引流1-2个月内有望进入首页。
若需具体代码调整(如某个模块的实现)或进一步分析(如竞争对手关键词),请提供更多细节!

View File

@@ -0,0 +1,211 @@
<html lang="zh-CN">
<head>
{block name="get-data"}{/block}
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta name="robots" content="index, follow">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{block name="title"}{/block}</title>
<meta name="keywords" content='{block name="keywords"}{/block}'>
<meta name="description" content='{block name="description"}{/block}'>
<link rel="shortcut icon" href="/template/videodingzhu/images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="/template/videodingzhu/css/plugins.css" type="text/css">
<link rel="stylesheet" href="/template/videodingzhu/css/global.css" type="text/css">
<link rel="stylesheet" href="/template/videodingzhu/css/style.css" type="text/css">
{//
<!-- <link rel="stylesheet" href="/template/videodingzhu/css/color.css" type="text/css" name="default"> -->
<!-- <link rel="stylesheet" href="/public/layer/layer.css?v=3.5.1" id="layuicss-layer"> -->
}
{block name="head"}{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
<script>
const strPcPath = `{$strPcPath}`;
</script>
</head>
<body class="f9eb6d active {block name='body-class'}{/block}" id="{block name='body-id'}{/block}">
<header class="a23db0 lvshicms-header__top" id="header-top">
<div class="c6f1a2 container">
<div class="d3071b row">
<div class="b6bfb3 lvshicms-header__logo">
<a class="f1c0ad logo" href="/">
{$DomainModel->d_name}
</a>
</div>
<div
class="d55436 lvshicms-header__menu hidden-sm hidden-xs swiper-initialized swiper-horizontal swiper-pointer-events swiper-free-mode">
<ul class="c308d4 swiper-wrapper" id="swiper-wrapper-15acf77edda9621f" aria-live="polite"
style="transition-duration: 300ms;">
<li class="c1afb6 swiper-slide {if $Request.route.strParentCategory == ''}active{/if}"><a href="/">首页</a></li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class='ac50b3 swiper-slide dropdown-hover {if $val.v_category_en == $Request.route.strParentCategory}active{/if}'>
<a href='{site:vciurl parent_category="$val.v_category_en" /}'>{$val.v_category}</a>
<div class="bed39b dropdown-box bottom fadeInDown clearfix" style="padding-top: 0;">
<ul class="e7213a item nav-list clearfix" style="width: 190px;">
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li class="b6abc3 col-md-2 col-sm-2 col-xs-1" style="padding: 6px;"><a
class="c11c57 btn btn-sm btn-block btn-default"
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>
</li>
{/foreach}
</ul>
</div>
</li>
{/video:categorytype}
<li class="a2d382 swiper-slide "> <a href="{$strRankUrlTemp}">榜单</a> </li>
</ul>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
<ul class="e4dd97 lvshicms-header__user">
<li class="f7ad8a hist slide-search-toggle hidden-xs hidden-sm">
<form action="{$strSearchListUrlTemp}">
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
<button class="d3b134 mobile-search-button" type="submit"><i
class="b2a8c7 fa fa-search"></i></button>
</form>
</li>
<li class="f37351 hist dropdown-hover">
<a href="{$strHistoryUrlTemp}" title="播放记录">
<i class="afd2b2 fa fa-clock-o"></i>
</a>
</li>
</ul>
<div class="d9ad47 mobile-search hidden-md hidden-lg">
<form action="{$strSearchListUrlTemp}">
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
<button class="d3b134 mobile-search-button" type="submit"><i
class="b2a8c7 fa fa-search"></i></button>
</form>
</div>
<div
class="ab3059 nav-box hidden-md hidden-lg swiper-initialized swiper-horizontal swiper-pointer-events swiper-free-mode swiper-backface-hidden">
<ul class="f34760 swiper-wrapper" id="swiper-wrapper-cc8105579edaa1a3" aria-live="polite">
<li class="a4f250 nav-item swiper-slide {if $Request.route.strParentCategory == ''}active swiper-slide-active{/if}" role="group"
aria-label="1 / 8">
<a href="/">
<i class="bd0907 nav-item-icon home"></i>
<span class="b08159 nav-item-text">首页</span>
</a>
</li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li class='e544e2 nav-item swiper-slide swiper-slide-next {if $val.v_category_en == $Request.route.strParentCategory}active swiper-slide-active{/if}' role="group" aria-label="2 / 8">
<a href='{site:vciurl parent_category="$val.v_category_en" /}'>
<i class="afd4ea nav-item-icon dy"></i>
<span class="d8f67b nav-item-text">{$val.v_category}</span>
</a>
</li>
{/video:categorytype}
<li class="d0f97c nav-item swiper-slide" role="group" aria-label="7 / 8">
<a href="{$strRankUrlTemp}">
<i class="c739f9 nav-item-icon bd"></i>
<span class="e34e2d nav-item-text">热播</span>
</a>
</li>
</ul>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
</div>
</div>
<div class="f075db lvshicms-header__top_bg hidden-sm hidden-xs"></div>
</header>
<div class="d61dbe slide-search">
<header class="a8408b slide-search-header">
<a class="b4a13d slide-search-close" href="javascript:;">
<i class="f8d4d2 fa fa-chevron-left"></i>
</a>
搜索
</header>
<div class="da8a21 slide-search-body">
<form class="a40443 slide-search-form" method="get" action="{$strSearchListUrlTemp}">
<input type="text" name="keyword" class="d05fc1 slide-search-input" value="" placeholder="搜索免费高清电影或主演"
autocomplete="off">
<button type="submit" class="b6ce5d slide-search-submit"><i class="b004bd fa fa-search"></i></button>
</form>
<ul class="ab08b9 slide-search-list">
<li class="bfcc70 slide-search-title">热门搜索</li>
{video:list count="6"
sort_type="news"
d_key="key" d_val="Video"
cache_life="86400"}
<li class="cbc4a0 slide-search-item">
<a href='{site:vsurl key="$Video.v_name" p="1"/}'>
<em class="f1a98e slide-search-icon">NO</em>
<em class="bd65b9 slide-search-num slide-search-num1">{$key}</em>
<span class="ddcfc6 slide-search-name">{$Video.v_name}</span>
</a>
</li>
{/video:list}
</ul>
</div>
</div>
<div class="e2b25c slide-search-bg"></div>
{block name="main"}
{/block}
{include file="public/footer" /}
{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>
{// 全局统计 }
{site:cfg code="PUBLIC_TONGJI_CODE" encode="false"/}
{// 站点统计 }
{$DomainModel->d_statis|raw}
<script>
(function () {
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script>
</body>
</html>

View File

@@ -0,0 +1,58 @@
努力视频模板
http://test.maihoe.com/
1.视频分类 分页标签查询, 增加 4个查询字段
$v_class = $tag['v_class'] ?? '10'; // 自定义分类 电影 电视剧 ..
$v_lang = $tag['v_lang'] ?? "all"; // 语言
$v_area = $tag['v_area'] ?? "all"; // 地区
$v_year = $tag['v_year'] ?? "all"; // 年份
2. 排行榜标签 增加 分类查询
{video:ranklist v_class="dianying" v_category="$val.v_category_en"
需要 配置tkd 模板的页面
首页:
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
T
K
D
分类首页
h1 站点名字 - 站点text logo
丰富内容-》站点描述:
tkd
分类分页
视频详情页面
视频播放页面
视频搜索页面
视频排行榜首页
视频排行榜分页
目前在搭建一个视频站点:
页面 有
首页
分类首页:分类首页没有分页,一共有 电影,电视剧,综艺,动漫,短剧 。5大分类。
分类首页 展示内容:每一大分类下面的所有小分类 展示10个视频
这个就是上面发你的代码;
需要你帮忙设计 TKD 模板
和 h1标签内容 模板
因为我后面需要部署大量域名站点 都使用同一个模板
分类列表分页:

View File

@@ -0,0 +1,226 @@
{extend name="base" /}
{block name="get-data"}
{video:listexp count="8" sort_type="tuijian" d_key="key" d_val="Video" cache_life="86400" export_name="arrVideoTuijian"
/}
{video:listexp count="17" sort_type="piaofang" d_key="key" d_val="Video" cache_life="86400"
export_name="arrVideoPiaofang" /}
{site:grm page_code="h5_index" diff="0" num="100" g_key="arrGrm" /}
{/block}
{block name="title"}{site:replace code="VIDEO@INDEX@INDEX@TITLE"}{/block}
{block name="keywords"}{site:replace code="VIDEO@INDEX@INDEX@KEYWORDS"}{/block}
{block name="description"}{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}{/block}
{block name="head"}
<!-- 社交媒体标签 -->
<meta property="og:title" content='{site:replace code="VIDEO@INDEX@INDEX@TITLE"}' />
<meta property="og:description" content='{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION"}' />
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
<meta property="og:type" content="website" />
<!-- 结构化数据 -->
<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"
}
},
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{$DomainModel->d_name}热门推荐预告片",
"description": "观看{$DomainModel->d_name}最新电影和电视剧的精彩预告片!",
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key == 1 }
"thumbnailUrl": 'https://{$DomainModel->d_domain}{$Video.v_pic}',
{/if}
{/volist}
"uploadDate": "{:date('Y-m-d')}",
"publisher": {
"@type": "Organization",
"name": "{$DomainModel->d_name}"
}
},
{
"@type": "CollectionPage",
"name": "{$DomainModel->d_name} - {$DomainModel->d_logo_text}",
"url": "https://{$DomainModel->d_domain}",
"alternateName": "{$DomainModel->d_domain}",
"description": "{$DomainModel->d_name}首页提供好莱坞最新电影、电视剧、综艺、动漫和短剧的免费高清在线观看,热门推荐每日更新!",
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{volist name="arrVideoTuijian" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem",
"position": {$key},
"item": {
"@type": "TVSeries",
"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}
{volist name="arrVideoPiaofang" id="Video" key="key"}
{if $key < 5 }
{
"@type": "ListItem{$Video.v_id}",
"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-js"}{/block}
{block name="main"}
<div class="bc22cc container">
<div class="eb5be5 row ">
<h1 class="view-title">
<a href="/">{$DomainModel->d_name}</a>-{$DomainModel->d_text_logo}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORYINDEX@TEXT"}</h4>
</div>
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 热门推荐 </h2>
<a class="ec883e more text-muted right bg" href='{site:vclurl parent_category="all" category="all" area="all" lang="all" year="all" order="tuijian" page="1"/}'>更多推荐 <i
class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{foreach $arrVideoTuijian as $key=>$Video }
{include file="public/video-list-shu" start="0" col-lg="4"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> 好莱坞榜单 </h2>
<a class="c502a3 more text-muted right bg" href="javascript::">票房(亿) </a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{foreach $arrVideoPiaofang as $key=>$Video }
{include file="public/video-list-phb" start="27" /}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="bd998f row">
<div class="c9d5a5 col-xs-1">
<div class="d739ec lvshicms-panel lvshicms-panel-bg clearfix">
<div class="f2c9c4 lvshicms-panel-box clearfix">
<div class="aa80ce lvshicms-panel_hd">
<div class="c49f14 lvshicms-panel__head bottom-line active clearfix">
<h2 class="a9d97c title">最新上映</h2>
</div>
</div>
<div class="a27622 lvshicms-panel_bd clearfix">
<ul class="bbf222 lvshicms-vodlist clearfix">
{video:list count="6"
sort_type="news"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
</div>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
{include file="public/video-panel" /}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,49 @@
<div class="df0a63 lvshicms-foot clearfix" style="padding-top:0px;">
<div class="fa6207 container">
<div class="f8fa68 row">
<div class="d4ce18 col-xs-1">
<div class="be974b lvshicms-panel lvshicms-panel-bg clearfix">
<div class="cbdc99 lvshicms-panel-box clearfix">
<div class="f98dfa lvshicms-panel_hd">
<div class="bd50fd lvshicms-panel__head clearfix">
<h3 class="f7c1b4 title"> 友情链接 </h3>
</div>
</div>
<div class="f9bdb5 lvshicms-panel_bd clearfix">
<div class="f358be col-xs-1">
<ul class="a085fb lvshicms-link__text clearfix">
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="aa00ab col-xs-1">
<div class="cea0ad col-pd text-center">
<p>
<!-- <a href="/rss/index.xml" target="_blank">RSS地图</a>
<a href="/rss/baidu.xml" target="_blank">百度Sitemap</a>
<a href="/rss/so.xml" target="_blank">360Sitemap</a>
<a href="/rss/google.xml" target="_blank">谷歌Sitemap</a> -->
<a href="/sitemap_index.xml" target="_blank">XML地图</a>
<a href="/robots.txt" target="_blank">网站地图</a>
{ad:list code="YOUQING_LIANJIE_GUANG_GAO" order="desc" limit="2" id="ad"}
<a href="{$ad.gg_tiao_zhuan_di_zhi}" target="_blank">{$ad.gg_wen_zi}
</a>
{/ad:list}
</p>
<p>Copyright © 2025 {$DomainModel->d_name} <a href="/"> {$DomainModel->d_domain}</a>All Rights Reserved .</p>
<p>若本站收录内容侵犯了您的权益,请给我们留言,本站将第一时间处理。</p>
<p>反馈邮箱:{site:cfg code="YOU_XIANG" encode="false"/}</p>
</div>
</div>
</div>
</div>
</div>
<ul class="b3f1cb lvshicms-extra clearfix">
<li> <a class="fb9d99 backtop" href="javascript:scroll(0,0)" title="返回顶部" style="display: none;"><i
class="f6e490 fa fa-angle-up"></i></a> </li>
</ul>

View File

@@ -0,0 +1,21 @@
<li>
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<?php $key ++ ?>
<a class="ae5cfc text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<span class='c4df4f pull-right text-muted visible-lg '>
{$Video.v_box_office ?? 0}
</span>
<span class='dd3e38 badge
{eq name="$key" value="1"}badge-first {/eq}
{eq name="$key" value="2"}badge-second {/eq}
{eq name="$key" value="3"}badge-third {/eq}'>
{$key}
</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,25 @@
<li class="fc7a7d col-lg-[col-lg] col-md-4 col-sm-3 col-xs-2">
<div class="a9a18d lvshicms-vodlist__box">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="d0ff14 lvshicms-vodlist__thumb"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">
<img class="lazyload-img" src="/static/img/load.png"
data-src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看">
<span class="c3b20e play hidden-xs"></span>
<span class="bf637e pic-text text-right">{$Video.v_remarks}</span>
</a>
<div class="dbbcf6 lvshicms-vodlist__detail">
<h3 class="c9c8c4 title text-overflow">
<a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}">{$Video.v_name}</a></h3>
<p class="ed925a text text-overflow text-muted hidden-xs">简介:{$Video.v_description|raw}</p>
</div>
</div>
</li>

View File

@@ -0,0 +1,9 @@
<li class="col-md-4 col-sm-3 col-xs-1 padding-0">
{if !empty($arrGrm[$key + [start]])}
{$arrGrm[$key+[start]]|raw}
{/if}
<a class="top-line-dot text-overflow" href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}' title="{$Video.v_name}">
<span class="text-muted pull-right">{$Video.v_remarks}</span>
{$Video.v_name}
</a>
</li>

View File

@@ -0,0 +1,48 @@
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 最新{$val.v_category} </h2>
<a class="ec883e more text-muted right bg" href='{site:vclurl parent_category="$val.v_category_en" category="all" area="all" lang="all" year="all" order="all" page="1"/}'>更多 <i
class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{video:list count="8" v_parent_category_en="$val.v_category_en" sort_type="news" d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-shu" start="27" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> {$val.v_category}周榜单 </h2>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="17"
v_parent_category_en="$val.v_category_en"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,294 @@
对于一个小说站点(如你提到的包含首页、分类列表、排行榜、男生/女生频道、详情页面、章节页面、目录页面等),配置 Sitemap 时需要根据页面类型的重要性和 SEO 目标选择性地包含 URL并合理组织以优化搜索引擎抓取和索引。以下是针对小说站点特点的 Sitemap 配置建议,包括哪些页面应该包含、如何处理大量 URL以及相关的最佳实践。
---
### 一、小说站点页面类型分析
根据你提供的信息,小说站点的页面类型可以分为以下几类,每类页面的 SEO 价值和是否需要包含在 Sitemap 中有所不同:
| 页面类型 | 描述 | SEO 价值 | 是否包含在 Sitemap |
|------------------|----------------------------------------------------------------------|---------------------------------------|--------------------|
| **首页** | 网站主入口,通常包含推荐小说、导航等。 | 高(核心流量入口) | 是 |
| **分类列表** | 按题材、类型(如玄幻、言情)展示小说列表,可能有多页(如 `page=2`)。| 高(引导用户到具体小说) | 是(仅包含主页面) |
| **排行榜** | 热门小说排行,可能按日、周、月或类型(如男生/女生)排序。 | 中到高(吸引点击,动态更新) | 是(视情况精选) |
| **男生/女生频道**| 针对不同用户群的分类页面(如男生玄幻、女生穿越)。 | 高(细分用户需求) | 是 |
| **详情页面** | 小说详情页,包含简介、封面、目录链接等。 | 高(核心转化页面) | 是 |
| **章节页面** | 小说具体章节内容,通常数量庞大。 | 中到低内容分散SEO 价值有限) | 视情况(可选) |
| **目录页面** | 小说章节列表,汇总所有章节链接。 | 中便于用户导航SEO 价值中等) | 是 |
---
### 二、Sitemap 配置策略
#### 1. 哪些 URL 应该包含?
基于小说站点的特点,建议优先包含以下页面:
- **首页**
- 包含站点的唯一首页 URL`https://www.example.com/`)。
- 设置高优先级(如 `<priority>1.0</priority>`)和频繁更新(如 `<changefreq>daily</changefreq>`)。
- **分类列表(主页面)**
- 包含每个分类的主页面(如 `https://www.example.com/category/xuanhuan`)。
- 排除分页 URL`https://www.example.com/category/xuanhuan?page=2`),因为分页内容重复且 SEO 价值低。
- 示例:玄幻、言情、历史等分类页面。
- **男生/女生频道**
- 包含频道主页(如 `https://www.example.com/male``https://www.example.com/female`)。
- 如果频道下有子分类(如男生玄幻、女生穿越),也应包含。
- **排行榜(精选)**
- 包含主要排行榜页面(如 `https://www.example.com/rank/hot``https://www.example.com/rank/male`)。
- 如果排行榜页面频繁更新(如每日排行),可设置 `<changefreq>daily</changefreq>`
- 排除次要或动态参数页面(如 `?sort=week`),避免重复内容。
- **详情页面**
- 包含所有小说详情页面(如 `https://www.example.com/book/123`)。
- 这些页面是 SEO 的核心,吸引搜索流量(如用户搜索小说名)。
- 使用 `<lastmod>` 反映小说更新时间,提示搜索引擎重新抓取。
- **目录页面**
- 包含每个小说的目录页面(如 `https://www.example.com/book/123/chapters`)。
- 目录页面便于用户导航,且可能被搜索引擎索引为长尾关键词(如“小说名 章节列表”)。
- **章节页面(可选)**
- **不建议全部包含**小说章节页面数量庞大可能数十万到数百万SEO 价值较低(用户很少通过搜索直接进入具体章节)。
- **可选策略**
- 只包含最新章节(如最近 30 天的章节),吸引搜索引擎抓取更新内容。
- 只包含热门小说的前几章(如前 10 章),作为引流入口。
- 如果包含,设置较低优先级(如 `<priority>0.3</priority>`)。
#### 2. 哪些 URL 应该排除?
- **分页 URL**:如分类列表的 `?page=2`,重复内容无 SEO 价值。
- **动态参数 URL**:如 `?sort=latest``?utm_source=...`,应规范化到标准 URL。
- **不可索引页面**
- 已设置 `<meta name="robots" content="noindex">` 的页面。
-`robots.txt` 屏蔽的页面(如 `Disallow: /user/`)。
- **用户生成内容**
- 如评论页、用户个人中心、搜索结果页(`?q=keyword`)。
- **临时页面**
- 如促销活动页、测试页面。
- **错误页面**:如 404、500 页面。
---
### 三、处理大量 URL 的策略
小说站点通常有大量 URL尤其是章节页面可能超过 Sitemap 的限制50,000 条 URL 或 50MB。以下是应对方法
#### 1. 使用 Sitemap 索引文件
- 将 URL 分组到多个子 Sitemap 文件(如 `sitemap-books.xml``sitemap-chapters.xml`),每文件不超过 50,000 条 URL。
- 创建一个 Sitemap 索引文件(如 `sitemap_index.xml`)引用所有子 Sitemap。
- 示例:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-chapters.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 2. 分组策略
- **按页面类型分组**
- `sitemap-main.xml`:首页、分类列表、排行榜、男生/女生频道。
- `sitemap-books.xml`:小说详情页面和目录页面。
- `sitemap-chapters.xml`:章节页面(如果包含)。
- **按更新频率分组**
- 频繁更新的页面(如排行榜、最新章节)单独分组,设置 `<changefreq>daily</changefreq>`。
- **按小说分组**
- 为每部小说生成单独的 Sitemap如 `sitemap-book123.xml`),包含其详情页、目录页和部分章节页。
#### 3. 动态生成 Sitemap
- **脚本生成**
- 使用 Python、PHP 等脚本从数据库查询 URL生成 Sitemap 文件。
- 示例Python参考前文
```python
from lxml import etree
import datetime
# 模拟数据库查询
urls = [
{'loc': 'https://www.example.com/', 'lastmod': '2025-04-21', 'changefreq': 'daily', 'priority': '1.0'},
{'loc': 'https://www.example.com/book/123', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.8'},
{'loc': 'https://www.example.com/book/123/chapters', 'lastmod': '2025-04-21', 'changefreq': 'weekly', 'priority': '0.6'},
]
urlset = etree.Element("urlset", xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
for url in urls:
url_element = etree.SubElement(urlset, "url")
loc = etree.SubElement(url_element, "loc")
loc.text = url['loc']
lastmod = etree.SubElement(url_element, "lastmod")
lastmod.text = url['lastmod']
changefreq = etree.SubElement(url_element, "changefreq")
changefreq.text = url['changefreq']
priority = etree.SubElement(url_element, "priority")
priority.text = url['priority']
tree = etree.ElementTree(urlset)
tree.write("sitemap-main.xml", pretty_print=True, xml_declaration=True, encoding="UTF-8")
```
- **定时任务**
- 使用 cron 任务每天或每周生成 Sitemap上传到根目录。
- 示例Linux cron
```bash
0 2 * * * python3 /path/to/generate_sitemap.py
```
- **触发式更新**
- 在小说更新(如新章节发布)时,触发脚本更新相关 Sitemap。
#### 4. 伪静态 Sitemap
- 配置服务器将 `sitemap_index.xml` 等请求重定向到动态脚本,实时生成 XML 内容。
- 示例Apache + PHP参考前文
```apache
RewriteEngine On
RewriteRule ^sitemap_index\.xml$ sitemap_index.php [L]
```
---
### 四、robots.txt 配置
在 `robots.txt` 中声明 Sitemap 索引文件,使用绝对路径:
```txt
User-agent: *
Disallow: /user/
Disallow: /search/
Sitemap: https://www.example.com/sitemap_index.xml
```
- 确保不通过 `Disallow` 屏蔽 Sitemap 文件。
- 如果 Sitemap 托管在 CDN如 `https://cdn.example.com/sitemap_index.xml`),在 `robots.txt` 中使用 CDN 地址,并验证所有权。
---
### 五、SEO 优化建议
1. **优先级设置**
- 首页:`<priority>1.0</priority>`
- 分类/频道/详情页:`<priority>0.8</priority>`
- 目录页:`<priority>0.6</priority>`
- 章节页(若包含):`<priority>0.3</priority>`
2. **更新频率**
- 首页、排行榜:`<changefreq>daily</changefreq>`
- 分类/频道/详情/目录页:`<changefreq>weekly</changefreq>`
- 章节页:`<changefreq>monthly</changefreq>`(或 `never` 如果不频繁更新)
3. **规范化 URL**
- 确保只包含规范 URL如 `https://www.example.com/book/123` 而非 `http://example.com/book/123`)。
- 使用 `<link rel="canonical">` 或 Sitemap 统一规范版本。
4. **避免重复内容**
- 排除带参数的 URL如 `?sort=latest`)。
- 如果男生/女生频道与分类列表有重复内容,选择主要入口包含在 Sitemap 中。
5. **图片 Sitemap可选**
- 为小说封面图片创建图片 Sitemap优化图片搜索排名。
- 示例:
```xml
<url>
<loc>https://www.example.com/book/123</loc>
<image:image>
<image:loc>https://www.example.com/images/book123.jpg</image:loc>
<image:title>小说封面</image:title>
</image:image>
</url>
```
---
### 六、注意事项
1. **章节页面数量庞大**
- 如果每部小说有数百章节,章节页面可能占主导。建议只包含最新或热门章节,或完全排除章节页面,依靠目录页面引导爬虫。
2. **抓取预算**
- 小说站点 URL 数量多,需优化 Sitemap 避免浪费搜索引擎的抓取预算。
3. **动态更新**
- 小说站点内容更新频繁(如新章节发布),建议动态生成 Sitemap 或频繁更新。
4. **验证 Sitemap**
- 提交 `sitemap_index.xml` 到 Google Search Console、Bing Webmaster Tools检查是否被正确解析。
- 使用 GSC 的“索引覆盖率”报告,确认重要页面(如详情页)是否被索引。
---
### 七、示例 Sitemap 配置
#### 索引文件(`sitemap_index.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemap-main.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemap-books.xml</loc>
<lastmod>2025-04-21</lastmod>
</sitemap>
</sitemapindex>
```
#### 主 Sitemap`sitemap-main.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.example.com/category/xuanhuan</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/male</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/rank/hot</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
</urlset>
```
#### 小说 Sitemap`sitemap-books.xml`
```xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.example.com/book/123</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.example.com/book/123/chapters</loc>
<lastmod>2025-04-21</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
```
---
### 八、结论
- **不需包含所有 URL**:小说站点应优先包含首页、分类列表、男生/女生频道、排行榜、详情页面和目录页面。章节页面可根据需要部分包含或完全排除。
- **精选策略**:重点包含 SEO 价值高的页面(如详情页),排除分页、动态参数、低价值页面。
- **大型站点处理**:使用 Sitemap 索引文件和子 Sitemap按页面类型分组动态生成以应对大量 URL。
- **SEO 优化**:设置合理的 `<priority>` 和 `<changefreq>`,定期更新 Sitemap验证索引效果。
如果你需要针对小说站点的具体脚本(生成 Sitemap 或伪静态配置、CMS 插件推荐,或其他细节(如图片 Sitemap、robots.txt 优化),请告诉我!

View File

@@ -0,0 +1,3 @@
User-agent: *
Disallow:
Sitemap: https://{$DomainModel->d_domain}/sitemap_index.xml

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nclurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" order="zheng" page="1"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
<!-- 最多 50,000 个 <url> 条目 -->
</urlset>

View File

@@ -0,0 +1,20 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- // 根据分页查询,按顺序 每页 50000个小说 -->
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nurl n_id="$Novel->n_id" n_py="$Novel->n_name_pinyin"/}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,18 @@
{novel:pagerexp page="$Request.get.page" limit="40000"
sort_type="news"
d_key="key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{foreach $resData.data as $key=>$Novel}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:lcpurl n_id="$Novel.n_id" n_py="$Novel.n_name_pinyin" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
{/foreach}
</urlset>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.{$DomainModel->d_domain}/</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://www.{$DomainModel->d_domain}{$strRankUrlTemp}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<!-- 分类 -->
{novel:category d_key="strCategoryPinyin" d_val="strCategoryName"}
<!-- 排序 -->
{novel:sort d_key="sort_key" d_val="strSortName"}
<!-- 状态 -->
{novel:status d_key="status_key" d_val="strStatusName"}
<url>
<loc>https://www.{$DomainModel->d_domain}{site:nflurl category="$strCategoryPinyin" order="$sort_key" status="$status_key" /}</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
{/novel:status}
{/novel:sort}
{/novel:category}
<!-- 注意 所有链接不要分页,有分页的取第一页即可 -->
</urlset>

View File

@@ -0,0 +1,39 @@
{novel:pagerexp page="1" limit="40000"
sort_type="news"
d_key="d_key"
d_val="Novel"
cache_life="86400" func="generateCategoryPager" export_name="resData" /}
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-main.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
<!--小说总数量/50000 得出 sitemap-books 一共有多少个 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说总数量/50000 得出 sitemap-books-catalog一共有多少个,每个小说只取一个目录链接,分页不需要加入去 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-books-catalog-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
<!-- 小说章节取最新章节 -->
{for start="0" end="$resData.p_data.pages"}
<sitemap>
<loc>https://www.{$DomainModel->d_domain}/sitemap-chapters-{$i+1}.xml</loc>
<lastmod>{:date('Y-m-d')}</lastmod>
</sitemap>
{/for}
</sitemapindex>

View File

@@ -0,0 +1,109 @@
{extend name="base" /}
{block name="get-data"}
{site:grm page_code="h5_video_search" diff="$Request.url" num="30" g_key="arrGrm" /}
{/block}
{block name="title"}我的观看记录{/block}
{block name="keywords"}我的观看记录{/block}
{block name="description"}我的观看记录{/block}
{block name="head"}
{/block}
{block name="head-css"}
{/block}
{block name="head-js"}
{/block}
{block name="main"}
<div class="container">
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h3 class="a1100b title"> 观看记录 </h3>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix" id="historyContainer">
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h3 class="f48698 title">周榜单 </h3>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="20"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
<script>
const strVideoUrlTemp = `{site:replace code="VIDEO_INFO_URL"}`;
const strVideoPlayUrlTemp = `{site:replace code="VIDEO_PLAY_URL"}`;
const strSearchUrlTemp = `{site:replace code="VIDEO_SEARCH_LIST_URL"}`;
// 调用展示书架功能
document.addEventListener("DOMContentLoaded", function () {
const secondTemplate = `
<li class="fc7a7d col-lg-[col-lg] col-md-4 col-sm-3 col-xs-2">
<div class="a9a18d lvshicms-vodlist__box">
<a class="d0ff14 lvshicms-vodlist__thumb lazyload lazyload-bg"
href="{{videoUrl}}"
title="{{videoName}}"
data-src="{{videoPic}}"
data-original="{{videoPic}}"
style="background-image: url('{{videoPic}}');">
<span class="c3b20e play hidden-xs"></span>
<span class="bf637e pic-text text-right">{{videoRemarks}}</span>
</a>
<div class="dbbcf6 lvshicms-vodlist__detail">
<h4 class="c9c8c4 title text-overflow">
<a href="{{videoUrl}}" title="{{videoName}}">{{videoName}}</a>
</h4>
<p class="ed925a text text-overflow text-muted hidden-xs">描述:{{videoDescription}}</p>
</div>
</div>
</li>
`;
// 调用展示书架功能
displayHistory(secondTemplate);
})
</script>
{/block}

View File

@@ -0,0 +1,270 @@
{extend name="base" /}
{block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="30" button_num="10" cache_life="86400"
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="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}" />
{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"}
<div class="bac3b3 container" style="margin-top:10px;">
<h1 class="view-title">
{site:replace code="VIDEO@GETCATEGORY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETCATEGORY@TEXT"}</h4>
<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='{site:vciurl parent_category="$Request.route.strParentCategory" /}' itemprop="item">
<span itemprop="name">{site:getval code="strVideoParentCategoryName" /}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="all" lang="all" year="all" order="all" page="1"/}' itemprop="item">
<span itemprop="name">{site:getval code="strVideoCategoryName" /}</span>
</a>
<meta itemprop="position" content="3" />
</li>
</ol>
</nav>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> {site:getval code="strVideoParentCategoryName" /} 筛选</h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_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="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="d353e6 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="af2d48 btn 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>
<a class=" a618ce btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'>{$arrChildrenCategory.v_category}</a>
</li>
{/foreach}
{/if}
{/video:categorytype}
</ul>
<ul class="b03fb8 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="aca9e5 btn text-muted">地区</a> </li>
{video:area d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$key" lang="$Request.route.strLang" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" ae52d4 btn {if $Request.route.strArea == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:area}
</ul>
<ul class="a383e9 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="e49c5f btn text-muted">年份</a> </li>
{video:year d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$key" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class=" e230a5 btn {if $Request.route.strYear == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:year}
</ul>
<ul class="a383e9 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="e49c5f btn text-muted">语言</a> </li>
{video:lang d_key="key" d_val="val"}
<li >
<a href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$key" year="$Request.route.strYear" order="$Request.route.strOrder" page="$Request.route.intPage"}'
class="c32026 btn {if $Request.route.strLang == $key}btn-warm{/if}">{$val}</a>
</li>
{/video:lang}
</ul>
</div>
<ul class="d95c02 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="d40281 btn text-muted">排序</a> </li>
{video:sort d_key="key" d_val="val"}
<li>
<a class="c32026 btn {if $Request.route.strOrder == $key}btn-warm{/if}"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" area="$Request.route.strArea" lang="$Request.route.strLang" year="$Request.route.strYear" order="$key" page="$Request.route.intPage"}'>
{$val}
</a>
</li>
{/video:sort}
</ul>
</div>
</div>
</div>
<div class="aed4a1 lvshicms-panel active lvshicms-panel-bg clearfix">
<div class="dbaf2a lvshicms-panel-box clearfix">
<div class="e028a7 lvshicms-panel_bd">
<ul class="c75497 lvshicms-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/foreach}
</ul>
</div>
</div>
</div>
<ul class="ae5171 lvshicms-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li >
<a href="{$vo.url}" class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,194 @@
{extend name="base" /}
{block name="get-data"}
{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}
{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_parent_category_en="$Request.route.strParentCategory"
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}{site:vciurl parent_category="$Request.route.strParentCategory" /}"
}
]
},
]
</script>
{/block}
{block name="head-css"}{/block}
{block name="head-js"}{/block}
{block name="main"}
<div class="bc22cc 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 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>
{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="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 最新{$arrChildrenCategory.v_category} </h2>
<a class="ec883e more text-muted right bg"
href='{site:vclurl parent_category="$val.v_category_en" category="all" area="all" lang="all" year="all" order="all" page="1"/}'>更多
<i class="fbbd96 fa fa-angle-right"></i></a>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{video:list count="8"
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="27" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h2 class="f48698 title"> {$arrChildrenCategory.v_category}周榜单 </h2>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="17"
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="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
{/foreach}
{/if}
{/video:categorytype}
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,230 @@
{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="86400"}
{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">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKINDEX@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKINDEX@TEXT"}</h4>
<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>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> 排行榜 筛选</h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li>
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="daily" page="1"/}'
class="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="e489dd container">
<div class="a1ce09 row">
{video:ranksort d_key="key" d_val="val"}
<div class="fe3214 col-lg-3 col-md-4 col-sm-2 col-xs-1">
<div class="ccba9b lvshicms-panel-bg2 col-pd radius-4 clearfix">
<div class="fd0689 lvshicms-panel_hd">
<div class="e58f0e lvshicms-panel__head bottom-line active clearfix text-overflow">
<h2 class="d653d5 title"> {$val}排行榜 </h2>
</div>
</div>
<div class="ce0ed8 lvshicms-panel_bd clearfix">
<ul class="da258b lvshicms-vodlist__media col-pd clearfix">
{video:ranklist count="10"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
<?php $key ++ ;?>
{if $key < 4} <li>
<div class="a45a81 thumb">
<a class="b7fde8 lvshicms-vodlist__thumb img-xs-70"
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name} ">
<img class="lazyload-img" src="/static/img/load.png"
data-src="{$Video.v_pic ?? ''}"
alt="{$Video.v_name ?? ''} - {$Video.v_parent_category ?? ''}{$Video.v_category ?? ''}免费高清电影在线观看">
<span class='fa73de badge
{eq name="$key" value="1"}badge-first {/eq}
{eq name="$key" value="2"}badge-second {/eq}
{eq name="$key" value="3"}badge-third {/eq}'>
{$key}
</span>
</a>
</div>
<div class="b6dc66 detail detail-side">
<h3 class="c58a4d title"><a
href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'><i
class="bc63b3 fa fa-angle-right text-muted pull-right"></i> {$Video.v_name}
</a>
</h3>
<p class="e3349d font-12"><span class="e2d8fb text-muted">类型:</span>{$Video.v_category}<span
class="cd23c6 text-muted">地区:</span>{volist name='$Video.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}</p>
<p class="a70415 font-12 margin-0"><span
class="cf514a text-muted">主演:</span>{volist name='$Video.v_actor' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist},</p>
</div>
</li>
{/if}
{/video:ranklist}
</ul>
<ul class="a33a7f lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="10"
sort_type="$key"
d_key="key" d_val="Video" cache_life="86400"}
<?php $key ++ ;?>
{if $key > 3}
<li class="c11eab top-line"> <a href='{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}'
title="{$Video.v_name}"> <span class="d507d5 badge">{$key}</span>{$Video.v_name}
</a> </li>
{/if}
{/video:ranklist}
</ul>
</div>
</div>
</div>
{/video:ranksort}
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,200 @@
{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="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@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="bac3b3 container" style="margin-top:10px;">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEORANKLIST@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEORANKLIST@TEXT"}</h4>
<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>
<div class="e0f35c row">
<div class="c2b983 lvshicms-panel active lvshicms-panel-bg2 clearfix">
<div class="d92ea8 lvshicms-panel-box clearfix">
<div class="a06062 lvshicms-panel_hd">
<div class="c9323c lvshicms-panel__head active bottom-line clearfix">
<h2 class="eefa6f title"> {site:getval code="strVideoParentCategoryName" /}排行榜 </h2>
</div>
</div>
<div class="dd7517 lvshicms-panel_bd">
<div class="f9514c slideDown-box">
<ul class="c5e5dd lvshicms-screen__list clearfix" data-align="left">
<li> <a class="adc828 text-muted btn">分类</a> </li>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<li >
<a href='{site:vrlurl parent_category="$val.v_category_en" category="all" sort_type="$Request.route.strSortType" page="1"/}'
class="c65506 btn {if $Request.route.strParentCategory == $val.v_category_en}btn-warm{/if}">
{$val.v_category}
</a>
</li>
{/video:categorytype}
</ul>
<ul class="d353e6 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="af2d48 btn 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>
<a class=" a618ce btn {if $Request.route.strCategory == $arrChildrenCategory.v_category_en}btn-warm{/if}"
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>
<ul class="d95c02 lvshicms-screen__list clearfix" data-align="left">
<li> <a class="d40281 btn text-muted">排序</a> </li>
{video:ranksort d_key="key" d_val="val"}
<li class="{if $Request.route.strSortType == $key}btn-warm{/if}">
<a href='{site:vrlurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" sort_type="$key" page="1"/}'>
{$val}排行榜
</a>
</li>
{/video:ranksort}
</ul>
</div>
</div>
</div>
<div class="aed4a1 lvshicms-panel active lvshicms-panel-bg clearfix">
<div class="dbaf2a lvshicms-panel-box clearfix">
<div class="e028a7 lvshicms-panel_bd">
<ul class="c75497 lvshicms-vodlist clearfix">
{foreach $arrVideoRankList as $key=>$Video}
{include file="public/video-list-shu" start="0" col-lg="6"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,199 @@
{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="86400" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="$Request.url" 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">
<h1 class="view-title">
{site:replace code="VIDEO@GETSEARCHVIDEO@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETSEARCHVIDEO@TEXT"}</h4>
<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='{site:vsurl key="$Request.get.keyword" p="1"/}' itemprop="item">
<span itemprop="name">搜索:{$Request.get.keyword}</span>
</a>
<meta itemprop="position" content="2" />
</li>
</ol>
</nav>
<div class="eb5be5 row">
<div class="fb7647 col-xs-1 col-md-wide-75">
<div class="eceb3c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b173ae lvshicms-panel-box clearfix">
<div class="f66d8c lvshicms-panel_bd clearfix">
<div class="bf9492 lvshicms-panel_hd">
<div class="be8a1c lvshicms-panel__head bottom-line active clearfix">
<h2 class="a1100b title"> 搜索<span style="color:red">“{$Request.get.keyword}”</span>相关结果共有 <span style="color:red">{$resData.p_data.total}</span> 部视频 </h2>
</div>
</div>
<ul class="d9e43b lvshicms-vodlist clearfix">
{foreach $resData.data as $key=>$Video}
{include file="public/video-list-shu" start="27" col-lg="4"/}
{/foreach}
</ul>
</div>
</div>
</div>
</div>
<div class="a51b92 hidden-xs hidden-sm col-md-wide-25">
<div class="cc593d lvshicms-panel lvshicms-panel-bg clearfix">
<div class="dcb74d lvshicms-panel-box clearfix">
<div class="dae8b0 lvshicms-panel_hd">
<div class="d7bedc lvshicms-panel__head active bottom-line clearfix">
<h3 class="f48698 title">周榜单 </h3>
<a class="c502a3 more text-muted right bg" href="{$strRankUrlTemp}">更多 <i
class="ed6c4f fa fa-angle-right"></i></a>
</div>
</div>
<div class="a0c205 lvshicms-panel_bd">
<ul class="f39a35 lvshicms-vodlist__text col-pd clearfix">
{video:ranklist count="20"
sort_type="weekly"
d_key="key" d_val="Video" cache_life="86400"}
{include file="public/video-list-phb" start="80"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
<ul class="ae5171 lvshicms-page text-center clearfix">
{volist name="resData.p_data.pager" id="vo" key="k"}
{switch $vo.label}
{case value="上一页"}
{if $resData.p_data.page == 1}
<li class="disabled"><span>上一页</span></li>
{else}
<li><a href="{$vo.url}">1</a></li>
{/if}
{/case}
{case value="下一页"}
{if $resData.p_data.page >= $resData.p_data.total}
<li class="disabled"><span>下一页</span></li>
{else}
<li><a href="{$vo.url}">下一页</a></li>
{/if}
{/case}
{default /}
{if preg_match('/^\d+$/', $vo.label)}
<li >
<a href="{$vo.url}" class='cc4f99 btn {eq name="vo.label" value="$Request.route.intPage"}btn-warm {/eq} btn-default '>{$vo.label}</a>
</li>
{/if}
{/switch}
{/volist}
</ul>
</div>
{/block}
{block name="customize"}
{/block}

View File

@@ -0,0 +1,384 @@
{extend name="base" /}
{block name="get-data"}
{if $Request.route.intVId}
{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" /}
{/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="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="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="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}">
{// 结构化数据}
<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="main"}
<div class="a971eb lvshicms-container-bg detail-info-box" style="margin-top:-20px;">
<div class="f969ad container">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOINFO@H1" diff="$arrVideo.v_id"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOINFO@TEXT" diff="$arrVideo.v_id"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="fc40de row">
<div class="f147ce lvshicms-panel margin-0 clearfix">
<div class="a193f5 lvshicms-panel-box clearfix">
<div class="dea615 col-xs-1 detail-box">
<div class="b97972 lvshicms-content__thumb">
<a class="f2880b lvshicms-vodlist__thumb video-info-lvshicms-vodlist__thumb picture" href="/product/90860-1-1.html"
title="{$arrVideo.v_name}">
<img class="f20604 lazyload" src="{$arrVideo.v_pic}">
<span class="c5512d detail-icon play"></span>
<span class="a555ce pic-text text-right">已完结</span>
</a>
</div>
<div class="eecb94 lvshicms-content__detail">
<h1 class="edfc9f title">{$arrVideo.v_name}</h1>
<p class="fe7a76 data"><span class="dcb052 text-muted">主演:</span>
{volist name='$arrVideo.v_actor' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="d53452 data"><span class="a0dae5 text-muted">导演:</span>
{volist name='$arrVideo.v_director' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="bb52e4 data">
<span class="ed25a2 text-muted">分类:</span>
<a
href='{site:vsurl key="$arrVideo.v_parent_category" p="1"/}'>{$arrVideo.v_parent_category}</a>
</p>
<p class="bb52e4 data">
<span class="ed25a2 text-muted">类型:</span>
<a href='{site:vsurl key="$arrVideo.v_category" p="1"/}'>{$arrVideo.v_category}</a>
</p>
<p class="d994f6 data">
<span class="d8c8c2 text-muted">地区:</span>
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
</p>
<p class="e027e7 data"><span class="ca5df1 text-muted">更新:</span>{$arrVideo.v_publish_date}
</p>
<div class="ca86f6 detail-info-btn">
<li>
<a class="c82c25 btn btn-warm"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
<i class="b6a199 fa fa-play"></i>
立即播放
</a>
</li>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="b949ce container">
<div class="d4cf89 row">
<div class="f608c5 col-xs-1 col-md-wide-75">
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<div class="cfd65a lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b3a7e3 lvshicms-panel-box clearfix">
<div class="e8c33d lvshicms-panel_hd">
<div class="f238a4 lvshicms-panel__head bottom-line active clearfix">
<h3 class="d82c55 title"> {$strPlayGroupName} </h3>
<span class="ace011 more text-muted"></span>
</div>
</div>
<div class="af83ff lvshicms-panel_bd clearfix">
<ul class="ec7fc4 lvshicms-content__list sort-list clearfix">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="fe7195 col-lg-6 col-md-5 col-sm-4 col-xs-3">
<a class="bd8e2d btn btn-default"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
</div>
</div>
{/foreach}
<div class="fbb509 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="de59fa lvshicms-panel-box clearfix">
<div class="c42a28 lvshicms-panel_hd">
<div class="bb7fba lvshicms-panel__head clearfix">
<h3 class="f3d3f6 title">剧情介绍</h3>
</div>
</div>
<div class="f42eb6 lvshicms-panel_bd">
<ul class="fee9ad lvshicms-vod-content col-pd clearfix">
<li class="ba9e50 col-pd">
<div class="d154e9 shrink-box shrinked">
<div class="acf872 shrink-text">
{$arrVideo.v_description|raw}</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="cf2f0c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c47e1e lvshicms-panel-box clearfix">
<div class="e83124 lvshicms-panel_hd">
<div class="afb3ca lvshicms-panel__head bottom-line active clearfix">
<h3 class="d3b7c4 title">同类型</h3>
</div>
</div>
<div class="d5b99f lvshicms-panel_bd">
<ul class="bc7e71 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="d6bc14 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="e81862 lvshicms-panel-box clearfix">
<div class="fcdb67 lvshicms-panel_hd">
<div class="b6114e lvshicms-panel__head bottom-line active clearfix">
<h3 class="ae5ab2 title">猜你喜欢</h3>
<span class="fdf3d7 text-muted more pull-right"><a rel="nofollow" href="/case/tv.html">更多 <i
class="f36af8 fa fa-angle-right"></i></a></span>
</div>
</div>
<div class="b29ef1 lvshicms-panel_bd">
<ul class="d95dd8 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="e1d6ee hidden-xs hidden-sm col-md-wide-25">
<div class="cad2e9 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c161d4 lvshicms-panel-box clearfix">
<div class="b068f7 lvshicms-panel_hd">
<div class="cb5cbd lvshicms-panel__head bottom-line active clearfix">
<h3 class="b12e07 title">热播{$arrVideo.v_parent_category}</h3>
</div>
</div>
<div class="cf4a36 lvshicms-panel_bd clearfix">
<ul class="f9a6ab lvshicms-vodlist__text col-pd clearfix">
{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="25"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<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']}`,
};
</script>
{/block}
{block name="customize"} {/block}

View File

@@ -0,0 +1,411 @@
{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}">
{// 结构化数据}
<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="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/dplayer/1.24.0/DPlayer.min.css">
<style type="text/css">
</style>
{/block}
{block name='body-class'}video-play-page{/block}
{block name="main"}
<div class="aaf99d lvshicms-container-bg padding-0" style="margin-top:-20px;">
<div class="bab1b0 container" style="z-index: 0;">
<h1 class="view-title">
{site:replace code="VIDEO@GETVIDEOPLAY@H1"}
</h1>
<h4 class="view-description">{site:replace code="VIDEO@GETVIDEOPLAY@TEXT"}</h4>
<nav class="breadcrumb" aria-label="breadcrumb">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li style="margin-right:10px"><label><i class="baf725 fa fa-map-marker"></i></label></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="$arrVideo.v_parent_category_en" /}' itemprop="item">
<span itemprop="name">{$arrVideo.v_parent_category}</span>
</a>
<meta itemprop="position" content="2" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vclurl parent_category="$arrVideo.v_parent_category_en" category="$arrVideo.v_parent_category_en" area="all" lang="all" year="all" order="all" page="1"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_category}</span>
</a>
<meta itemprop="position" content="3" />
</li>
<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href='{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'
itemprop="item">
<span itemprop="name">{$arrVideo.v_name}</span>
</a>
<meta itemprop="position" content="4" />
</li>
</ol>
</nav>
<div class="e35b87 player-wrapper clearfix" style="z-index: 999;">
<div class="e1110d lvshicms-player__item clearfix" style="background-color: #27272f;">
<div class="a7ffc5 relative clearfix" id="player-left">
<div class="ef235b lvshicms-player__box player-fixed">
<div class="a705ec tips close-box" style="background-color: #181515;">
<a
class="e221a5 tips-close-btn pull-right" href="javascript:;">
<i class="ae97e1 fa fa-close"></i>
</a>
<ul>
<li>正在播放:{$arrVideo.v_name}-第{$Request.route.intPlayIndex}集</li>
</ul>
</div>
<div class="dplayer-prent">
<div id="dplayer" class="dplayer" muted=“muted” style="margin-top: 5px;"></div>
</div>
</div>
<ul class="e46e57 lvshicms-player__operate" style="background-color: #1b1a25;">
<li> <a href="javascript:;" onclick="window.location.reload()"><i
class="a330ca fa fa-spinner"></i> 刷新</a>
</li>
<li>
<a class="f4aa4c digg_link" data-id="90860" data-mid="1" data-type="up"
href="javascript:;">
<i class="ce7b63 fa fa-thumbs-up"></i>
<span nclass="d712b9 digg_num">{$arrVideo.v_score}</spanclass=>
</a>
</li>
<li>
<a class="c8cbc0 digg_link" data-id="90860" data-mid="1" data-type="down"
href="javascript:;">
<i class="d7a73d fa fa-thumbs-down"></i>
<span class="f60cfa digg_num">{$arrVideo.vc_clicks ?? 0}</span>
</a>
</li>
<!-- <li class="b269de playshare dropdown-hover"> <a href="javascript:;"><i
class="a5a6c4 fa fa-share font14"></i> 分享</a>
<div class="be59cf dropdown-box bottom fadeInDown clearfix">
<div class="ed9be4 item text-center" style="width: 260px;">
<div class="ad10df col-pd">
<p>复制下方内容粘贴给好友</p>
<p><textarea class="fe45d5 form-control content"
rows="4">我正在观看毕打职场笑传第01集地址https://www.dingzhu.net/product/90860-1-1.html</textarea>
</p>
<a class="ec0315 btn btn-xs btn-primary lvshicms-copy-html"
href="javascript:;">复制到剪贴板</a>
</div>
</div>
</div>
</li> -->
<!-- <li><a class="bbdb18 disabled" href=""><i class="b1d47a fa fa-caret-up"></i> 上集</a></li>
<li><a href="/product/90860-1-2.html"><i class="f38fad fa fa-caret-down"></i> 下集</a></li> -->
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="f49486 container">
<div class="f41398 row">
<div class="f30a1c col-xs-1">
<div class="ae33f8 lvshicms-player__data hidden-sm hidden-xs clearfix">
<div class="d368e1 col-pd">
<h3> {$arrVideo.v_name} <small class="e85030 text-muted">第{$Request.route.intPlayIndex}集</small> </h3>
<p class="e82edf text-muted margin-0"> {$arrVideo.v_publish_date}更新 / <span class="c8b71b text-red">{$arrVideo.v_score}分</span> /
{$arrVideo.v_parent_category} /
{volist name='$arrVideo.v_area' id='vo' key='index'}
<a href='{site:vsurl key="$vo" p="1"/}'>{$vo}</a>
&nbsp;
{/volist}
/
{$arrVideo.v_year} </p>
</div>
</div>
</div>
</div>
</div>
<div class="b949ce container">
<div class="d4cf89 row">
<div class="f608c5 col-xs-1 col-md-wide-75">
{foreach $arrVideo.v_play_url as $strPlayGroupName=>$arrPlayUrlType }
<div class="cfd65a lvshicms-panel lvshicms-panel-bg clearfix">
<div class="b3a7e3 lvshicms-panel-box clearfix">
<div class="e8c33d lvshicms-panel_hd">
<div class="f238a4 lvshicms-panel__head bottom-line active clearfix">
<h3 class="d82c55 title"> {$strPlayGroupName} </h3>
<span class="ace011 more text-muted"></span>
</div>
</div>
<div class="af83ff lvshicms-panel_bd clearfix">
<ul class="ec7fc4 lvshicms-content__list sort-list clearfix">
{volist name='$arrPlayUrlType' id='arrPlayUrl'}
<li class="fe7195 col-lg-6 col-md-5 col-sm-4 col-xs-3">
<a class="bd8e2d btn btn-default"
href='{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="$strPlayGroupName" play_index="$i" /}'>{$arrPlayUrl.name}
</a>
</li>
{/volist}
</ul>
</div>
</div>
</div>
{/foreach}
<div class="fbb509 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="de59fa lvshicms-panel-box clearfix">
<div class="c42a28 lvshicms-panel_hd">
<div class="bb7fba lvshicms-panel__head clearfix">
<h3 class="f3d3f6 title">剧情介绍</h3>
</div>
</div>
<div class="f42eb6 lvshicms-panel_bd">
<ul class="fee9ad lvshicms-vod-content col-pd clearfix">
<li class="ba9e50 col-pd">
<div class="d154e9 shrink-box shrinked">
<div class="acf872 shrink-text">
{$arrVideo.v_description|raw}</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="cf2f0c lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c47e1e lvshicms-panel-box clearfix">
<div class="e83124 lvshicms-panel_hd">
<div class="afb3ca lvshicms-panel__head bottom-line active clearfix">
<h3 class="d3b7c4 title">同类型</h3>
</div>
</div>
<div class="d5b99f lvshicms-panel_bd">
<ul class="bc7e71 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
<div class="d6bc14 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="e81862 lvshicms-panel-box clearfix">
<div class="fcdb67 lvshicms-panel_hd">
<div class="b6114e lvshicms-panel__head bottom-line active clearfix">
<h3 class="ae5ab2 title">猜你喜欢</h3>
<span class="fdf3d7 text-muted more pull-right"><a rel="nofollow" href="/case/tv.html">更多 <i
class="f36af8 fa fa-angle-right"></i></a></span>
</div>
</div>
<div class="b29ef1 lvshicms-panel_bd">
<ul class="d95dd8 lvshicms-vodlist__bd clearfix">
{video:list count="12"
v_category_en="$arrVideo.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" col-lg="4"/}
{/video:list}
</ul>
</div>
</div>
</div>
</div>
<div class="e1d6ee hidden-xs hidden-sm col-md-wide-25">
<div class="cad2e9 lvshicms-panel lvshicms-panel-bg clearfix">
<div class="c161d4 lvshicms-panel-box clearfix">
<div class="b068f7 lvshicms-panel_hd">
<div class="cb5cbd lvshicms-panel__head bottom-line active clearfix">
<h3 class="b12e07 title">热播{$arrVideo.v_parent_category}</h3>
</div>
</div>
<div class="cf4a36 lvshicms-panel_bd clearfix">
<ul class="f9a6ab lvshicms-vodlist__text col-pd clearfix">
{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="25"/}
{/video:ranklist}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<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']}`,
};
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 = ""
</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

@@ -0,0 +1,292 @@
以下是对提供的视频站点首页(`video2.com`SEO优化的分析和建议重点针对中国大陆的浏览搜索排名如百度结合同行影视站点的常见优化策略确保排名提升至首页。分析涵盖现有代码的优点、不足并提供具体改进建议。
---
### 现有SEO优点
1. **TKDTitle, Keywords, Description设置**
- 标题包含核心关键词如“大地资源网在线观看免费官网”“2024大地影院免费高清电视剧大全”长度适中约60字符符合百度要求。
- 关键词和描述包含热门搜索词(如“免费视频”“高清电视剧”),与影视站点用户搜索习惯高度相关。
- 使用`{{{video_type}}}`占位符,动态插入内容(如“动作片”),提升页面相关性。
2. **结构化数据**
- 包含`WebSite``VideoObject``CollectionPage`的JSON-LD结构化数据增强百度富媒体展示如视频缩略图、评分
- `ItemList`列出具体影片,包含名称、描述、演员、图片等,利于搜索引擎理解内容。
3. **站内链接**
- 导航链接(如`/vodtype/dian-ying`)和内容链接(如`/voddetail/wu-ren-guo-jing-140361`结构清晰URL规范化利于爬虫抓取。
- 提供“更多”链接(如`/vodtype-dian-ying/all-all-all-all/all-page1`),引导用户深入浏览,增加页面权重。
4. **Sitemap和Robots**
- 提供多种地图链接XML、RSS、百度Sitemap等便于搜索引擎快速收录。
- `robots.txt`支持,明确爬虫规则。
5. **响应式设计**
- 使用`meta viewport`和响应式网格(如`col-lg-4 col-md-4`适配PC和移动端提升用户体验和移动端排名。
6. **社交媒体标签**
- `og:title``og:description`等Open Graph标签支持社交媒体分享增加外部流量来源。
---
### SEO不足及优化建议
以下是首页SEO的不足之处及具体改进建议针对中国大陆影视站点特点如百度算法偏好优化。
#### 1. **标题Title优化**
**问题**
- 标题过长约70字符含“https://video1.com-大地”),可能被截断,影响展示效果。
- 包含重复关键词(如“大地”出现多次),降低关键词密度效率。
- 包含无关域名(`https://video1.com`),与实际域名(`video2.com`)不一致,易引起搜索引擎混淆。
**建议**
- 精简标题控制在60字符以内突出核心关键词避免重复。
- 移除无关域名,使用实际域名(`video2.com`)增强品牌一致性。
- 示例优化标题:
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
```
#### 2. **关键词Keywords优化**
**问题**
- 关键词列表较长,部分词(如“短视频”“预告片”)与主站内容(电影、电视剧)相关性较低。
- 关键词堆砌(如“大地影院大全在线观看”“大地”),可能被百度视为过度优化。
- 未包含长尾关键词如“免费电影在线观看”“2024最新电视剧”错失精准流量。
**建议**
- 精选5-8个高相关性关键词包含品牌词如“大地影视”和长尾词。
- 避免重复和无关词,突出用户搜索意图。
- 示例优化关键词:
```html
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
```
#### 3. **描述Description优化**
**问题**
- 描述过长约180字符可能被截断影响点击率。
- 包含无效URL`www.https://video1.com`),格式错误,降低可信度。
- 关键词堆砌(如“大地影视”重复出现),未突出独特卖点(如“无广告”)。
- `{{{video_type}}}`占位符在首页可能未正确替换,导致描述不完整。
**建议**
- 控制描述在120-160字符简洁突出免费、高清、无广告等卖点。
- 修正URL为`video2.com`,确保一致性。
- 确保`{{{video_type}}}`在首页有默认值(如“电影”)或移除。
- 示例优化描述:
```html
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
```
#### 4. **URL规范化**
**问题**
- 页面URL`https://video2.com`)与描述中的`https://video1.com`不一致,可能导致权重分散。
- 部分链接(如`/news/52050.html`)指向非视频内容,降低页面主题相关性。
- 热门搜索链接(如`/news/52050.html`)重复指向同一页面,浪费爬虫资源。
**建议**
- 统一使用`https://video2.com`作为规范URL添加`rel="canonical"`标签:
```html
<link rel="canonical" href="https://video2.com">
```
- 将热门搜索链接改为视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`),提高相关性。
- 检查站内链接确保无404或重定向错误。
#### 5. **结构化数据改进**
**问题**
- `VideoObject`的`thumbnailUrl`指向详情页URL而非图片URL格式错误。
- `uploadDate`格式为`25-05-08`不符ISO 8601标准如`2025-05-08`)。
- 部分影片描述为空如“铁鹰战士4”影响富媒体展示效果。
- `aggregateRating`的`ratingValue`多为`0.0`,缺乏真实评分数据。
**建议**
- 修正`thumbnailUrl`为实际图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)。
- 规范化`uploadDate`为`YYYY-MM-DD`格式。
- 为每部影片补充简短描述50-100字提高信息完整性。
- 若无真实评分,移除`aggregateRating`或用默认值(如`5.0`)。
- 示例优化片段:
```json
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "大地影视热门推荐预告片",
"description": "观看大地影视最新电影和电视剧的精彩预告片!",
"thumbnailUrl": "https://video2.com/img/video/2025/01/27/22/wu-ren-guo-jing.webp",
"uploadDate": "2025-05-08",
"publisher": {
"@type": "Organization",
"name": "大地影视"
}
}
```
#### 6. **内容优化**
**问题**
- 首页内容偏少,部分模块(如“最新电视剧”“最新综艺”)的`<ul>`为空,降低页面信息量。
- 影片简介过长如“无人过境”超300字可能影响加载速度和用户体验。
- 缺少关键词密度优化,核心词(如“免费观看”“高清影视”)出现频率低。
**建议**
- 填充空模块至少展示3-5条内容增加页面信息量。
- 简介控制在100-150字超出部分移至详情页首页仅展示摘要。
- 在`<h2>`、`<p>`中适度插入关键词(如“免费高清电影”),但避免堆砌。
- 示例优化影片项:
```html
<div class="dbbcf6 lvshicms-vodlist__detail">
<h2 class="c9c8c4 title text-overflow">
<a href="/voddetail/wu-ren-guo-jing-140361" title="无人过境免费观看">无人过境</a>
</h2>
<p class="ed925a text text-overflow text-muted hidden-xs">
简介: 西北小镇混混老姜欲雇凶杀人,高启义为筹医药费假冒杀手,引发连环追杀。免费高清在线观看,精彩公路冒险!
</p>
</div>
```
#### 7. **导航优化**
**问题**
- 导航下拉菜单(如“电影”“电视剧”)的子项链接(如`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`)层级过深,增加爬虫抓取难度。
- 热门搜索模块的链接指向`/news`而非视频详情页,降低转化率。
- 导航未使用面包屑导航影响用户体验和SEO权重传递。
**建议**
- 简化URL层级如将`/vodtype-all/dong-zuo-pian-all-all-all/all-page1`改为`/movie/action/page1`。
- 将热门搜索链接指向视频详情页(如`/voddetail/gu-mu-li-ying-guo-yu-140357`)。
- 添加面包屑导航:
```html
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">首页</a></li>
<li class="breadcrumb-item"><a href="/vodtype/dian-ying">电影</a></li>
<li class="breadcrumb-item active" aria-current="page">动作片</li>
</ol>
</nav>
```
#### 8. **图片优化**
**问题**
- 图片未使用`alt`属性(如`<img>`或背景图),错失关键词优化机会。
- 图片URL如`/img/video/2025/01/27/22/wu-ren-guo-jing.webp`)未压缩,增加加载时间。
- 懒加载属性(`data-src`)未全面覆盖,可能影响首屏加载。
**建议**
- 为所有图片添加`alt`属性,包含关键词:
```html
<a class="d0ff14 lvshicms-vodlist__thumb lazyload" ...>
<img src="/img/video/2025/01/27/22/wu-ren-guo-jing.webp" alt="无人过境免费高清电影海报" style="display:none;">
</a>
```
- 使用工具如TinyPNG压缩图片减少文件大小。
- 确保所有图片使用`data-src`和`data-original`,并验证懒加载脚本有效。
#### 9. **加载速度优化**
**问题**
- 加载多个CSS文件`plugins.css`、`global.css`等增加HTTP请求。
- JS文件如`jquery-3.7.1.min.js`未使用defer或async阻塞渲染。
- 百度推送脚本重复加载(`<head>`和`<body>`各一次)。
**建议**
- 合并CSS文件为单一文件减少请求
```html
<link rel="stylesheet" href="/template/videodingzhu/css/combined.css" type="text/css">
```
- 为非关键JS添加`defer`或`async`
```html
<script src="/public/jquery/jquery-3.7.1.min.js" defer></script>
```
- 删除重复的百度推送脚本,仅保留`<head>`中的:
```html
<script src="http://push.zhanzhang.baidu.com/push.js"></script>
```
#### 10. **移动端体验**
**问题**
- 移动端搜索表单的占位符(“输入主演名或影片名”)未突出免费观看优势。
- 部分模块(如“好莱坞榜单”)在移动端隐藏(`hidden-xs`),减少信息量。
- 未启用AMP加速移动页面或PWA渐进式Web应用
**建议**
- 修改搜索占位符,突出卖点:
```html
<input class="d1f534 mobile-search-input" name="keyword" placeholder="搜索免费高清电影或主演">
```
- 在移动端显示简版榜单如前3项增加内容
```html
<div class="a51b92 col-md-wide-25 hidden-md hidden-lg">
<!-- 简版榜单 -->
</div>
```
- 考虑引入AMP版本如`/amp/index.html`或PWA提升移动端加载速度和用户留存。
#### 11. **外部链接与友链**
**问题**
- 友情链接模块(`<ul class="a085fb lvshicms-link__text">`)为空,错失权重传递机会。
- 未利用站外链接(如知乎、微博)引导流量。
**建议**
- 添加5-10个高质量友情链接优先选择影视相关站点
```html
<ul class="a085fb lvshicms-link__text clearfix">
<li><a href="https://example.com" target="_blank">影视资源站</a></li>
</ul>
```
- 在社交媒体(如微博)创建官方账号,发布视频预告,添加`video2.com`链接。
#### 12. **其他细节**
**问题**
- `<html lang="zh">`未指定具体语言(如`zh-CN`可能影响区域化SEO。
- 部分影片评分(`ratingValue: 0.0`)不可信,降低用户信任。
- 未设置HSTSHTTP严格传输安全影响安全性评分。
**建议**
- 修改语言为`zh-CN`
```html
<html lang="zh-CN">
```
- 为热门影片添加真实评分(如基于豆瓣或用户评分)。
- 启用HSTS
```html
<meta http-equiv="Strict-Transport-Security" content="max-age=31536000; includeSubDomains">
```
---
### 综合优化后的首页TKD示例
```html
<title>大地影视-2024免费高清电影电视剧在线观看-video2.com</title>
<meta name="keywords" content="大地影视,免费电影,2024最新电视剧,高清综艺,动漫在线观看,短剧大全,video2.com">
<meta name="description" content="大地影视(video2.com)提供2024最新免费高清电影、电视剧、综艺、动漫和短剧无广告在线观看每日更新畅享极致影视体验">
<link rel="canonical" href="https://video2.com">
```
---
### 实施优先级
1. **高优先级**(立即修复,影响排名):
- 修正标题、关键词、描述(精简、统一域名)。
- 规范化URL添加`rel="canonical"`。
- 填充空模块,优化简介长度。
2. **中优先级**1-2周内优化
- 改进结构化数据(修正`thumbnailUrl`、`uploadDate`)。
- 压缩图片合并CSS/JS。
- 添加面包屑导航和友情链接。
3. **低优先级**(长期优化):
- 引入AMP/PWA。
- 建立社交媒体账号。
- 启用HSTS。
---
### 同行对比分析
通过分析中国大陆影视站点如爱奇艺、腾讯视频、免费影视站常见SEO策略包括
- **关键词聚焦**突出“免费”“高清”“在线观看”长尾词覆盖广泛如“2024最新动作片免费观看”
- **内容丰富**:首页展示多类型内容(电影、电视剧、综艺等),每日更新。
- **技术优化**CDN加速、图片压缩、懒加载全面应用。
- **外部引流**:通过微博、抖音、贴吧发布短视频或预告,引导流量。
**建议**参考爱奇艺的动态TKD和内容密度结合免费站点的关键词策略如“无广告”在首页增加短视频预告模块吸引用户停留。
---
### 总结
当前首页SEO基础良好但存在标题冗长、URL不统一、内容空缺等问题。通过精简TKD、规范化URL、填充内容、优化图片和加载速度可显著提升百度排名。建议优先实施高优先级优化并结合社交媒体引流1-2个月内有望进入首页。
若需具体代码调整(如某个模块的实现)或进一步分析(如竞争对手关键词),请提供更多细节!

View File

@@ -45,7 +45,7 @@ class ConverterMovel
'{strVideoDirector}' => '', '{strVideoDirector}' => '',
'{strVideoActor}' => '', '{strVideoActor}' => '',
'{strVideoDescription}' => '', '{strVideoDescription}' => '',
'{intPlayIndex}' => '', '{intVideoPlaySort}' => '',
]; ];
@@ -83,7 +83,7 @@ class ConverterMovel
'{strVideoDirector}' => '这个是当前视频导演', '{strVideoDirector}' => '这个是当前视频导演',
'{strVideoActor}' => '这个是当前视频演员', '{strVideoActor}' => '这个是当前视频演员',
'{strVideoDescription}' => '这个是当前视频简介', '{strVideoDescription}' => '这个是当前视频简介',
'{intPlayIndex}' => '这个是当前视频播放集数', '{intVideoPlaySort}' => '这个是当前视频播放集数',
]; ];

Some files were not shown because too many files have changed in this diff Show More