gpt
This commit is contained in:
@@ -2,61 +2,144 @@
|
||||
|
||||
{block name="get-data"}
|
||||
|
||||
{video:pagerexp page="$Request.route.intPage" limit="30" button_num="10" cache_life="3600"
|
||||
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" /}
|
||||
{assign name="strCategory" value="$Request.route.strCategory"}
|
||||
|
||||
{assign name="ModuleCfg" value="$TpStyle.template_cfg.pages.category_list.cat2_map[$strCategory]"}
|
||||
|
||||
{assign name="Slot" value="$ModuleCfg"}
|
||||
|
||||
{assign name="title" value="$ModuleCfg.title_text"}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.category_list"}
|
||||
|
||||
{assign name="limit" value="$listCfg.layout.max_items"}
|
||||
|
||||
{video:pagerexp page="$Request.route.intPage" limit="$limit" button_num="10" cache_life="3600"
|
||||
v_parent_category_en="$Request.route.strParentCategory"
|
||||
v_category_en="$Request.route.strCategory"
|
||||
d_key="d_key" d_val="Video" p_val="page_data" func="generateVideoPager" export_name="resData" /}
|
||||
|
||||
{assign name="__LIST__" value="$resData.data"}
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="title"}
|
||||
在线观看
|
||||
{block name="title"}{site:seotkd code="title" page="category_list" /}{/block}
|
||||
{block name="keywords"}{site:seotkd code="keywords" page="category_list" /}{/block}
|
||||
{block name="description"}{site:seotkd code="description" page="category_list" /}{/block}
|
||||
|
||||
|
||||
{block name="head"}
|
||||
<meta name="robots" content="index,follow">
|
||||
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vclurl parent_category="$Request.route.strParentCategory" category="$Request.route.strCategory" /}'>
|
||||
|
||||
{// 社交媒体标签}
|
||||
<meta property="og:title" content='{site:seotkd code="title" page="category_list" /}' />
|
||||
<meta property="og:description" content='{site:seotkd code="description" page="category_list" /}' />
|
||||
<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:seotkd code="description" page="category_list" /}",
|
||||
"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" page="$Request.route.intPage"}"
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="strPageCode"}<?php $strPageCode = 'category'; ?>{/block}
|
||||
|
||||
|
||||
{block name="main"}
|
||||
|
||||
|
||||
|
||||
<main class="page-category-sub" style="max-width:{$TpStyle.page_max_width_pc}px;margin:0 auto;">
|
||||
<main class="page-category-sub" style="max-width:{$TpStyle.template_cfg.global.page_max_width_pc}px;margin:0 auto;">
|
||||
|
||||
{php}
|
||||
// 1. 读取冻结 cfg
|
||||
$cfg = $TpStyle['list_layout']['category_list'];
|
||||
{include file="module/list/title/_title_router" /}
|
||||
|
||||
// 2. 构建标题(不随机)
|
||||
$title = [
|
||||
'primary' => '',
|
||||
'secondary' => '共 ' . $resData['p_data']['total'] . ' 部影片',
|
||||
];
|
||||
{/php}
|
||||
|
||||
{// ===== Title ===== }
|
||||
{include file="module/list/title/title_F" /}
|
||||
|
||||
{// ===== Shell + Item ===== }
|
||||
{assign name="__LIST__" value="$resData.data"}
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.category_list"}
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
|
||||
{// ===== Pagination ===== }
|
||||
{php}
|
||||
$pagerArr = $resData['p_data']['pager'] ?? [];
|
||||
$page = $resData['p_data']['page'] ?? 1;
|
||||
$pages = $resData['p_data']['pages'] ?? 1;
|
||||
$pagerArr = $resData['p_data']['pager'] ?? [];
|
||||
$page = $resData['p_data']['page'] ?? 1;
|
||||
$pages = $resData['p_data']['pages'] ?? 1;
|
||||
|
||||
// 从 cfg 取分页配置(你会在 SiteStyle 冻结下发)
|
||||
$pagerCfg = $TpStyle['template_cfg']['components']['pager'] ?? [];
|
||||
// 从 cfg 取分页配置(你会在 SiteStyle 冻结下发)
|
||||
$pagerCfg = $TpStyle['template_cfg']['components']['pager'] ?? [];
|
||||
{/php}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.category_list"}
|
||||
{include file="module/pager/_pager_router" /}
|
||||
|
||||
</main>
|
||||
|
||||
@@ -6,27 +6,115 @@
|
||||
|
||||
{/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="title"}{site:seotkd code="title" page="category_index" /}{/block}
|
||||
{block name="keywords"}{site:seotkd code="keywords" page="category_index" /}{/block}
|
||||
{block name="description"}{site:seotkd code="description" page="category_index" /}{/block}
|
||||
|
||||
{block name="head"}
|
||||
<meta name="robots" content="index,follow">
|
||||
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}'>
|
||||
|
||||
<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="3600"}
|
||||
|
||||
{if $key < 5 }
|
||||
{
|
||||
"@type": "VideoObject",
|
||||
"name": "{$Video.v_name}",
|
||||
"description": "{$Video.v_description}",
|
||||
"thumbnailUrl": '{$Video.v_pic}',
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
},
|
||||
{/if}
|
||||
{/video:ranklist}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "首页",
|
||||
"item": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "分类首页",
|
||||
"item": "https://{$DomainModel->d_domain}{site:vciurl parent_category="$Request.route.strParentCategory" /}"
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
</script>
|
||||
{/block}
|
||||
{block name="head-css"}{/block}
|
||||
|
||||
{block name="head-js"}{/block}
|
||||
|
||||
{block name="strPageCode"}<?php $strPageCode = 'category_type'; ?>{/block}
|
||||
|
||||
{block name="main"}
|
||||
|
||||
<main class="page-category" style="max-width:{$TpStyle.page_max_width_pc}px;margin:0 auto;">
|
||||
<main class="page-category" style="max-width:{$TpStyle.template_cfg.global.page_max_width_pc}px;margin:0 auto;">
|
||||
|
||||
<!-- ================= 聚合推荐区 ================= -->
|
||||
{assign name="topModule" value="$TpStyle.template_cfg.pages.category_index.top_block.module"}
|
||||
{// ================= 聚合推荐区 =================}
|
||||
{assign name="strParentCategory" value="$Request.route.strParentCategory"}
|
||||
|
||||
{assign name="cfg" value="$TpStyle.template_cfg.list_layout[$topModule]"}
|
||||
{assign name="TopModuleCfg" value="$TpStyle.template_cfg.pages.category.cat1_map[$strParentCategory]"}
|
||||
|
||||
{assign name="limit" value="$cfg['layout']['max_items']"}
|
||||
{assign name="topModule" value="$TopModuleCfg.top_module"}
|
||||
|
||||
{assign name="Slot" value="$TopModuleCfg.top_slot"}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout[$topModule]"}
|
||||
|
||||
{assign name="limit" value="$listCfg.layout.max_items"}
|
||||
|
||||
{if $topModule == 'rank'}
|
||||
{video:ranklistexp count="$limit" sort_type="weekly" d_key="key" d_val="Video" cache_life="3600" v_parent_category_en="$Request.route.strParentCategory"
|
||||
export_name="__LIST__" /}
|
||||
@@ -37,24 +125,29 @@
|
||||
|
||||
{/if}
|
||||
|
||||
{assign name="title" value="$cfg.title_text"}
|
||||
{assign name="title" value="$TopModuleCfg.top_slot.title_text"}
|
||||
|
||||
{include file="module/list/title/title_A" /}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.category_list_index"}
|
||||
{include file="module/list/title/_title_router" /}
|
||||
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
<!-- ================= 二级分类区块 ================= -->
|
||||
{//- ================= 二级分类区块 ================= }
|
||||
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
|
||||
|
||||
{if $val.v_category_en == $Request.route.strParentCategory}
|
||||
|
||||
{foreach $val.children as $i => $sub}
|
||||
{assign name="ParentCategory" value="$TpStyle.template_cfg.pages.category.cat1_map[$val.v_category_en]"}
|
||||
|
||||
{video:listexp count="12"
|
||||
{foreach $ParentCategory.subcat_slots as $i => $sub}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout[$sub.layout_key]"}
|
||||
{assign name="limit" value="$listCfg.layout.max_items"}
|
||||
{assign name="title" value="$sub.title_text"}
|
||||
{assign name="Slot" value="$sub"}
|
||||
|
||||
{video:listexp count="$limit"
|
||||
v_parent_category_en="$Request.route.strParentCategory"
|
||||
v_category_en="$sub.v_category_en"
|
||||
v_category_en="$sub.key"
|
||||
v_lang_en="all"
|
||||
v_area_en="all"
|
||||
v_year="all"
|
||||
@@ -62,38 +155,11 @@
|
||||
d_key="d_key" d_val="Video" cache_life="3600"
|
||||
export_name="__LIST__" /}
|
||||
|
||||
{php}
|
||||
// 1️⃣ 生成该二级分类的 section cfg(冻结)
|
||||
$sectionCfg = \app\common\helper\SiteStyle::buildCategorySectionCfg(
|
||||
$TpStyle['template_cfg'],
|
||||
$sub['v_category_en'],
|
||||
$i
|
||||
);
|
||||
|
||||
// 2️⃣ 数据源(按二级分类变量名取)
|
||||
$listVar = 'arrSubPreview_' . $sub['v_category_en'];
|
||||
// $__LIST__ = $listVar ?? [];
|
||||
//$__LIST__ = $arrVideoNewest ?? [];
|
||||
|
||||
// 3️⃣ Title(二级分类固定 F)
|
||||
$title = [
|
||||
'primary' => $sub['v_category'],
|
||||
'secondary' => '精选推荐',
|
||||
];
|
||||
|
||||
// 4️⃣ 更多链接
|
||||
$moreUrl = '/videotype-dian-ying/xi-ju-pian-all-all-all/all-page1';
|
||||
{/php}
|
||||
{site:vclurl parent_category="$Request.route.strParentCategory" category="$sub.key" page="1" export_name="strMoreUrl"/}
|
||||
|
||||
<section class="category-sub-block">
|
||||
|
||||
<!-- ===== Title(F)===== -->
|
||||
{include file="module/list/title/title_F" /}
|
||||
|
||||
<!-- ===== Shell + Item ===== -->
|
||||
{assign name="cfg" value="$sectionCfg"}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.category_list_index"}
|
||||
{include file="module/list/title/_title_router" /}
|
||||
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
|
||||
@@ -1,21 +1,82 @@
|
||||
{extend name="base" /}
|
||||
|
||||
{block name="get-data"}
|
||||
|
||||
{assign name="arrSlots" value="$TpStyle.template_cfg.pages.rank_home.slots"}
|
||||
{/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="title"}{site:seotkd code="title" page="rank_index" /}{/block}
|
||||
{block name="keywords"}{site:seotkd code="keywords" page="rank_index" /}{/block}
|
||||
{block name="description"}{site:seotkd code="description" page="rank_index" /}{/block}
|
||||
|
||||
|
||||
{block name="head"}
|
||||
|
||||
<meta name="robots" content="index,follow">
|
||||
<link rel="canonical" href='https://{$DomainModel->d_domain}{$strRankUrlTemp}'>
|
||||
|
||||
{// 社交媒体标签}
|
||||
<meta property="og:title" content='{site:seotkd code="title" page="rank_index" /}' />
|
||||
<meta property="og:description" content='{site:seotkd code="description" page="rank_index" /}' />
|
||||
<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:seotkd code="title" page="rank_index" /}',
|
||||
"description": '{site:seotkd code="description" page="rank_index" /}',
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}",
|
||||
"query-input": "required name=search_term_string"
|
||||
}
|
||||
"hasPart": [
|
||||
{video:ranklist count="5"
|
||||
sort_type="weekly"
|
||||
d_key="key" d_val="Video" cache_life="3600"}
|
||||
|
||||
{if $key < 10 }
|
||||
{
|
||||
"@type": "VideoObject",
|
||||
"name": "{$Video.v_name}",
|
||||
"description": "{$Video.v_description}",
|
||||
"thumbnailUrl": '{$Video.v_pic}',
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id="$Video.v_id" v_py="$Video.v_name_en"/}',
|
||||
},
|
||||
{/if}
|
||||
{/video:ranklist}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "首页",
|
||||
"item": "https://{$DomainModel->d_domain}"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "排行榜首页",
|
||||
"item": "https://{$DomainModel->d_domain}{$strRankUrlTemp}"
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="head-css"}
|
||||
|
||||
{/block}
|
||||
@@ -28,35 +89,22 @@
|
||||
|
||||
{block name="main"}
|
||||
|
||||
{assign name="cfg" value="$TpStyle.template_cfg.list_layout.rank_list_index"}
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.rank_list_index"}
|
||||
{assign name="rankModules" value="$TpStyle.template_cfg.pages.rank_home.modules"}
|
||||
{assign name="limit" value="$cfg['layout']['max_items']"}
|
||||
|
||||
<section class="{$TpStyle.dom_prefix}-rank-home">
|
||||
{foreach $arrSlots as $i => $Slot}
|
||||
|
||||
{video:ranksort d_key="key" d_val="val"}
|
||||
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout[$Slot.layout_key]"}
|
||||
{assign name="title" value="$Slot.title_text"}
|
||||
{assign name="limit" value="$listCfg['layout']['max_items']"}
|
||||
|
||||
{video:ranklistexp count="$limit"
|
||||
sort_type="$key"
|
||||
sort_type="$Slot.sort_type"
|
||||
d_key="key" d_val="Video" cache_life="3600" export_name="__LIST__" /}
|
||||
|
||||
{php}
|
||||
|
||||
$title = [
|
||||
'primary' => $val.'排行榜',
|
||||
'secondary' => '',
|
||||
];
|
||||
|
||||
{/php}
|
||||
|
||||
{include file="module/list/title/_title_router" /}
|
||||
|
||||
{include file="module/list/shell/_shell_router" /}
|
||||
|
||||
{/video:ranksort}
|
||||
|
||||
{/foreach}
|
||||
</section>
|
||||
|
||||
{/block}
|
||||
|
||||
@@ -15,15 +15,15 @@ p_val="page_data" button_num="10" cache_life="3600" export_name="arrVideoRankLis
|
||||
|
||||
{/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="title"}{site:seotkd code="title" page="rank_list" /}{/block}
|
||||
{block name="keywords"}{site:seotkd code="title" page="rank_list" /}{/block}
|
||||
{block name="description"}{site:seotkd code="title" page="rank_list" /}{/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:title" content='{site:seotkd code="title" page="rank_list" /}' />
|
||||
<meta property="og:description" content='{site:seotkd code="title" page="rank_list" /}' />
|
||||
<meta property="og:url" content="https://{$DomainModel->d_domain}" />
|
||||
<meta property="og:type" content="video.movie" />
|
||||
|
||||
@@ -36,8 +36,8 @@ p_val="page_data" button_num="10" cache_life="3600" export_name="arrVideoRankLis
|
||||
"@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"}',
|
||||
"headline": '{site:seotkd code="title" page="rank_list" /}',
|
||||
"description": '{site:seotkd code="title" page="rank_list" /}',
|
||||
"potentialAction": {
|
||||
"@type": "SearchAction",
|
||||
"target": 'https://{$DomainModel->d_domain}{site:vsurl key="search_term_string" p="1"/}",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{extend name="base" /}
|
||||
|
||||
{block name="get-data"}
|
||||
{assign name="limit" value="$TpStyle.list_layout.search_list.layout.max_items"}
|
||||
{assign name="listCfg" value="$TpStyle.list_layout.search_list"}
|
||||
{assign name="limit" value="$TpStyle.template_cfg.list_layout.search_list.layout.max_items"}
|
||||
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.search_list"}
|
||||
|
||||
{video:pagerexp page="$Request.get.page" limit="$limit"
|
||||
key="$Request.get.keyword"
|
||||
@@ -13,20 +13,24 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
{/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="title"}{site:seotkd code="title" page="search" /}{/block}
|
||||
{block name="keywords"}{site:seotkd code="keywords" page="search" /}{/block}
|
||||
{block name="description"}{site:seotkd code="description" page="search" /}{/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 name="robots" content="index,follow">
|
||||
|
||||
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vsurl key="$Request.get.keyword" p="1"/}'>
|
||||
|
||||
<meta property="og:title" content='{site:seotkd code="title" page="search" /}'>
|
||||
<meta property="og:description" content='{site:seotkd code="description" page="search" /}'>
|
||||
<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:title" content='{site:seotkd code="title" page="search" /}'>
|
||||
<meta name="twitter:description" content='{site:seotkd code="description" page="search" /}'>
|
||||
<meta name="twitter:image:alt" content="动作电影 搜索结果第1页">
|
||||
|
||||
{// 结构化数据}
|
||||
@@ -50,7 +54,7 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
"name": "{$DomainModel->d_name} - {$DomainModel->d_logo_text}",
|
||||
"url": "https://{$DomainModel->d_domain}",
|
||||
"alternateName": "{$DomainModel->d_domain}",
|
||||
"description": '{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}',
|
||||
"description": '{site:seotkd code="description" page="search" /}',
|
||||
"mainEntity": {
|
||||
"@type": "ItemList",
|
||||
"itemListElement": [
|
||||
@@ -62,7 +66,7 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
"item": {
|
||||
"@type": "Movies",
|
||||
"name": "{$Video.v_name}",
|
||||
"url": 'https://{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}',
|
||||
"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 }
|
||||
@@ -88,7 +92,6 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="head-css"}
|
||||
|
||||
{/block}
|
||||
@@ -99,19 +102,9 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
|
||||
|
||||
{block name="main"}
|
||||
|
||||
{php}
|
||||
// 1. 读取冻结 cfg
|
||||
$cfg = $TpStyle['list_layout']['search_list'];
|
||||
$searchCfg = $TpStyle['template_cfg']['pages']['search']['top_block'];
|
||||
|
||||
// 2. 构建标题(不随机)
|
||||
$title = [
|
||||
'primary' => '',
|
||||
'secondary' => '共 ' . $resData['p_data']['total'] . ' 部影片',
|
||||
];
|
||||
{/php}
|
||||
|
||||
|
||||
{assign name="searchCfg" value="$TpStyle['template_cfg']['pages']['search']['top_block']"}
|
||||
{assign name="Slot" value="$TpStyle['template_cfg']['pages']['search']['list_slot']"}
|
||||
{assign name="title" value="$Slot.title_text"}
|
||||
|
||||
{include file="module/search/_search_header_router" /}
|
||||
|
||||
|
||||
@@ -1,26 +1,21 @@
|
||||
{extend name="base" /}
|
||||
|
||||
{block name="get-data"}
|
||||
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" v_fid="$Request.route.intVForgeId" export_name="arrVideo"/}
|
||||
{elseif $Request.route.intVId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" export_name="arrVideo"/}
|
||||
{else}
|
||||
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" export_name="arrVideo" /}
|
||||
{/if}
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" v_fid="$Request.route.intVForgeId" export_name="arrVideo"/}
|
||||
{elseif $Request.route.intVId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" export_name="arrVideo"/}
|
||||
{else}
|
||||
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" export_name="arrVideo" /}
|
||||
{/if}
|
||||
|
||||
{site:vciurl parent_category="$arrVideo.v_parent_category_en" export_name="strVciurl" /}
|
||||
{site:vclurl parent_category="$arrVideo.v_parent_category_en"
|
||||
{site:vciurl parent_category="$arrVideo.v_parent_category_en" export_name="strVciurl" /}
|
||||
{site:vclurl parent_category="$arrVideo.v_parent_category_en"
|
||||
category="$arrVideo.v_category_en"
|
||||
area="all" lang="all" year="all" order="all" page="1"
|
||||
export_name="strVclurl" /}
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="main"}
|
||||
|
||||
{assign name="pageCfg" value="$TpStyle.template_cfg.pages.detail"}
|
||||
|
||||
{php}
|
||||
$arrBreadcrumb = [
|
||||
['title'=>'首页','url'=>'/'],
|
||||
@@ -28,9 +23,165 @@
|
||||
['title'=>$arrVideo['v_category'],'url'=>$strVclurl],
|
||||
];
|
||||
{/php}
|
||||
<!-- 播放页:$pageCfg = $TpStyle['template_cfg']['pages']['play']; -->
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="title"}{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}{site:replace code="VIDEO@INDEX@INDEX@TITLE" /}{else/}{site:seotkd code="title" page="detail" /}{/if}{/block}
|
||||
|
||||
{block name="keywords"}{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}{site:replace code="VIDEO@INDEX@INDEX@KEYWORDS" /}{else/}{site:seotkd code="keywords" page="detail" /}{/if}{/block}
|
||||
|
||||
{block name="description"}{if $DomainModel->info_id == $Request.route.intVId || empty($Request.route.intVId)}{site:replace code="VIDEO@INDEX@INDEX@DESCRIPTION" /}{else/}{site:seotkd code="description" page="detail" /}{/if}{/block}
|
||||
|
||||
|
||||
{block name="head"}
|
||||
<meta name="robots" content="index,follow">
|
||||
{if $arrVideo.v_id}
|
||||
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}'>
|
||||
{/if}
|
||||
|
||||
{// Open Graph 协议(用于Facebook、LinkedIn等)}
|
||||
<meta property="og:title" content='{site:seotkd code="title" page="detail" /}'>
|
||||
<meta property="og:description" content='{site:seotkd code="description" page="detail" /}'>
|
||||
{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="https://{$DomainModel->d_domain}{$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="summary_large_image">
|
||||
<meta name="twitter:title" content="{$arrVideo.v_name|raw} - {$arrVideo.v_category|default=''|raw}完整版在线观看 - {$DomainModel->d_name|raw}">
|
||||
<meta name="twitter:description" content="{if !empty($arrVideo.v_description)}{$arrVideo.v_description|raw}{else/}{$DomainModel->d_name|raw}为你提供{$arrVideo.v_name|raw}在线播放与相关内容推荐。{/if}">
|
||||
<meta name="twitter:image" content="{if stripos($arrVideo.v_pic,'http')===0}{$arrVideo.v_pic|raw}{else/}https://{$DomainModel->d_domain}{$arrVideo.v_pic|raw}{/if}">
|
||||
|
||||
|
||||
|
||||
|
||||
{php}
|
||||
// 你已有:$arrBreadcrumb(title/url)
|
||||
// 这里补成绝对 URL,避免 JSON-LD 用相对路径
|
||||
$strBase = 'https://' . $DomainModel->d_domain;
|
||||
|
||||
$arrBreadcrumbLd = [];
|
||||
foreach ($arrBreadcrumb as $intIdx => $arrIt) {
|
||||
$strTitle = (string)($arrIt['title'] ?? '');
|
||||
$strUrl = (string)($arrIt['url'] ?? '');
|
||||
|
||||
if ($strTitle === '' || $strUrl === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
// url 绝对化
|
||||
if (stripos($strUrl, 'http') !== 0) {
|
||||
if ($strUrl[0] !== '/') {
|
||||
$strUrl = '/' . $strUrl;
|
||||
}
|
||||
$strUrl = $strBase . $strUrl;
|
||||
}
|
||||
|
||||
$arrBreadcrumbLd[] = [
|
||||
'@type' => 'ListItem',
|
||||
'position' => (int)($intIdx + 1),
|
||||
'name' => $strTitle,
|
||||
'item' => $strUrl,
|
||||
];
|
||||
}
|
||||
{/php}
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": {php}echo json_encode($arrBreadcrumbLd, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);{/php}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "VideoObject",
|
||||
"name": "{$arrVideo.v_name|raw}",
|
||||
"description": "{if !empty($arrVideo.v_description)}{$arrVideo.v_description|raw}{else/}暂无简介{/if}",
|
||||
"thumbnailUrl": "{$arrVideo.v_pic|raw}",
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": "https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}"
|
||||
{if !empty($arrVideo.v_lang)},{/if}
|
||||
{if !empty($arrVideo.v_lang)}
|
||||
"inLanguage": [
|
||||
{volist name="$arrVideo.v_lang" id="strVideoLang" key="index"}{if $index>1},{/if}"{$strVideoLang|raw}"{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_area)},{/if}
|
||||
{if !empty($arrVideo.v_area)}
|
||||
"contentLocation": [
|
||||
{volist name="$arrVideo.v_area" id="strVideoArea" key="index"}{if $index>1},{/if}{
|
||||
"@type": "Place",
|
||||
"name": "{$strVideoArea|raw}"
|
||||
}{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_director)},{/if}
|
||||
{if !empty($arrVideo.v_director)}
|
||||
"director": [
|
||||
{volist name="$arrVideo.v_director" id="strVideoDirector" key="index"}{if $index>1},{/if}{
|
||||
"@type": "Person",
|
||||
"name": "{$strVideoDirector|raw}"
|
||||
}{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_actor)},{/if}
|
||||
{if !empty($arrVideo.v_actor)}
|
||||
"actor": [
|
||||
{volist name="$arrVideo.v_actor" id="strVideoActor" key="index"}{if $index>1},{/if}{
|
||||
"@type": "Person",
|
||||
"name": "{$strVideoActor|raw}"
|
||||
}{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_score) && floatval($arrVideo.v_score)>0},{/if}
|
||||
{if !empty($arrVideo.v_score) && floatval($arrVideo.v_score)>0}
|
||||
"aggregateRating": {
|
||||
"@type": "AggregateRating",
|
||||
"ratingValue": "{$arrVideo.v_score|raw}",
|
||||
"ratingCount": 1
|
||||
}
|
||||
{/if},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "{$DomainModel->d_name|raw}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="strPageCode"}
|
||||
<?php $strPageCode = 'info'; ?>
|
||||
{/block}
|
||||
|
||||
{block name="main"}
|
||||
|
||||
{assign name="pageCfg" value="$TpStyle.template_cfg.pages.detail"}
|
||||
|
||||
{include file="module/page/page_router" /}
|
||||
|
||||
|
||||
{/block}
|
||||
|
||||
@@ -1,30 +1,20 @@
|
||||
{extend name="base" /}
|
||||
{block name="get-data"}
|
||||
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" v_fid="$Request.route.intVForgeId" export_name="arrVideo"/}
|
||||
{elseif $Request.route.intVId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" export_name="arrVideo"/}
|
||||
{else}
|
||||
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" export_name="arrVideo" /}
|
||||
{/if}
|
||||
{if $Request.route.intVId && $Request.route.intVForgeId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" v_fid="$Request.route.intVForgeId" export_name="arrVideo"/}
|
||||
{elseif $Request.route.intVId}
|
||||
{video:info v_id="$Request.route.intVId" v_key="arrVideo" export_name="arrVideo"/}
|
||||
{else}
|
||||
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" export_name="arrVideo" /}
|
||||
{/if}
|
||||
|
||||
{site:vciurl parent_category="$arrVideo.v_parent_category_en" export_name="strVciurl" /}
|
||||
{site:vclurl parent_category="$arrVideo.v_parent_category_en"
|
||||
{site:vciurl parent_category="$arrVideo.v_parent_category_en" export_name="strVciurl" /}
|
||||
{site:vclurl parent_category="$arrVideo.v_parent_category_en"
|
||||
category="$arrVideo.v_category_en"
|
||||
area="all" lang="all" year="all" order="all" page="1"
|
||||
export_name="strVclurl" /}
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="head-css"}
|
||||
<link rel="stylesheet" href="/public/video/DPlayer.min.css">
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="main"}
|
||||
{assign name="pageCfg" value="$TpStyle.template_cfg.pages.play"}
|
||||
|
||||
{php}
|
||||
$arrBreadcrumb = [
|
||||
['title'=>'首页','url'=>'/'],
|
||||
@@ -32,11 +22,165 @@
|
||||
['title'=>$arrVideo['v_category'],'url'=>$strVclurl],
|
||||
];
|
||||
{/php}
|
||||
<!-- 播放页:$pageCfg = $TpStyle['template_cfg']['pages']['play']; -->
|
||||
{/block}
|
||||
|
||||
|
||||
{block name="title"}{site:seotkd code="title" page="play" /}{/block}
|
||||
{block name="keywords"}{site:seotkd code="keywords" page="play" /}{/block}
|
||||
{block name="description"}{site:seotkd code="description" page="play" /}{/block}
|
||||
|
||||
{block name="head"}
|
||||
<meta name="robots" content="index,follow">
|
||||
|
||||
{if $Request.route.intVId }
|
||||
<link rel="canonical" href='https://{$DomainModel->d_domain}{site:vpurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en" play_type="default" play_index="1" /}'>
|
||||
{/if}
|
||||
|
||||
|
||||
{// Open Graph 协议(用于Facebook、LinkedIn等)}
|
||||
<meta property="og:title" content='{site:seotkd code="title" page="play" /}'>
|
||||
<meta property="og:description" content='{site:seotkd code="description" page="play" /}'>
|
||||
{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="https://{$DomainModel->d_domain}{$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="summary_large_image">
|
||||
<meta name="twitter:title" content="{$arrVideo.v_name|raw} - {$arrVideo.v_category|default=''|raw}完整版在线观看 - {$DomainModel->d_name|raw}">
|
||||
<meta name="twitter:description" content="{if !empty($arrVideo.v_description)}{$arrVideo.v_description|raw}{else/}{$DomainModel->d_name|raw}为你提供{$arrVideo.v_name|raw}在线播放与相关内容推荐。{/if}">
|
||||
<meta name="twitter:image" content="{if stripos($arrVideo.v_pic,'http')===0}{$arrVideo.v_pic|raw}{else/}https://{$DomainModel->d_domain}{$arrVideo.v_pic|raw}{/if}">
|
||||
|
||||
{php}
|
||||
// 你已有:$arrBreadcrumb(title/url)
|
||||
// 这里补成绝对 URL,避免 JSON-LD 用相对路径
|
||||
$strBase = 'https://' . $DomainModel->d_domain;
|
||||
|
||||
$arrBreadcrumbLd = [];
|
||||
foreach ($arrBreadcrumb as $intIdx => $arrIt) {
|
||||
$strTitle = (string)($arrIt['title'] ?? '');
|
||||
$strUrl = (string)($arrIt['url'] ?? '');
|
||||
|
||||
if ($strTitle === '' || $strUrl === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
// url 绝对化
|
||||
if (stripos($strUrl, 'http') !== 0) {
|
||||
if ($strUrl[0] !== '/') {
|
||||
$strUrl = '/' . $strUrl;
|
||||
}
|
||||
$strUrl = $strBase . $strUrl;
|
||||
}
|
||||
|
||||
$arrBreadcrumbLd[] = [
|
||||
'@type' => 'ListItem',
|
||||
'position' => (int)($intIdx + 1),
|
||||
'name' => $strTitle,
|
||||
'item' => $strUrl,
|
||||
];
|
||||
}
|
||||
{/php}
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": {php}echo json_encode($arrBreadcrumbLd, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);{/php}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "VideoObject",
|
||||
"name": "{$arrVideo.v_name|raw}",
|
||||
"description": "{if !empty($arrVideo.v_description)}{$arrVideo.v_description|raw}{else/}暂无简介{/if}",
|
||||
"thumbnailUrl": "{$arrVideo.v_pic|raw}",
|
||||
"uploadDate": "{:date('Y-m-d')}",
|
||||
"url": "https://{$DomainModel->d_domain}{site:vurl v_id="$arrVideo.v_id" v_py="$arrVideo.v_name_en"/}"
|
||||
{if !empty($arrVideo.v_lang)},{/if}
|
||||
{if !empty($arrVideo.v_lang)}
|
||||
"inLanguage": [
|
||||
{volist name="$arrVideo.v_lang" id="strVideoLang" key="index"}{if $index>1},{/if}"{$strVideoLang|raw}"{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_area)},{/if}
|
||||
{if !empty($arrVideo.v_area)}
|
||||
"contentLocation": [
|
||||
{volist name="$arrVideo.v_area" id="strVideoArea" key="index"}{if $index>1},{/if}{
|
||||
"@type": "Place",
|
||||
"name": "{$strVideoArea|raw}"
|
||||
}{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_director)},{/if}
|
||||
{if !empty($arrVideo.v_director)}
|
||||
"director": [
|
||||
{volist name="$arrVideo.v_director" id="strVideoDirector" key="index"}{if $index>1},{/if}{
|
||||
"@type": "Person",
|
||||
"name": "{$strVideoDirector|raw}"
|
||||
}{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_actor)},{/if}
|
||||
{if !empty($arrVideo.v_actor)}
|
||||
"actor": [
|
||||
{volist name="$arrVideo.v_actor" id="strVideoActor" key="index"}{if $index>1},{/if}{
|
||||
"@type": "Person",
|
||||
"name": "{$strVideoActor|raw}"
|
||||
}{/volist}
|
||||
]
|
||||
{/if}
|
||||
{if !empty($arrVideo.v_score) && floatval($arrVideo.v_score)>0},{/if}
|
||||
{if !empty($arrVideo.v_score) && floatval($arrVideo.v_score)>0}
|
||||
"aggregateRating": {
|
||||
"@type": "AggregateRating",
|
||||
"ratingValue": "{$arrVideo.v_score|raw}",
|
||||
"ratingCount": 1
|
||||
}
|
||||
{/if},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "{$DomainModel->d_name|raw}"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="strPageCode"}<?php $strPageCode = 'player'; ?>{/block}
|
||||
|
||||
{block name="head-css"}
|
||||
<link rel="stylesheet" href="/public/video/DPlayer.min.css">
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="main"}
|
||||
{assign name="pageCfg" value="$TpStyle.template_cfg.pages.play"}
|
||||
|
||||
{include file="module/page/page_router" /}
|
||||
|
||||
|
||||
<script>
|
||||
const strMaxPlayHeight = '480px'
|
||||
const strVideoId = `{$arrVideo.v_id}`;
|
||||
@@ -59,16 +203,12 @@
|
||||
var arrPlayUrl = {$arrVideo.v_play_url|json_encode|raw} ;
|
||||
var strPlayUrl = ""
|
||||
var boolIsPlayPage = true
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
{/block}
|
||||
{block name="footer-js"}
|
||||
<!-- <script src="https://cdn.staticfile.org/jquery/3.7.1/jquery.min.js"></script> -->
|
||||
<script src="/public/jquery/jquery-3.7.1.min.js" type="module" charset="utf-8"></script>
|
||||
<script src="https://cdn.staticfile.org/jquery/3.7.1/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="/public/video/hls.min.js" ></script>
|
||||
<script type="text/javascript" src="/public/video/DPlayer.min.js" ></script>
|
||||
<script type="text/javascript" src="/static/js/player/dplayer.init.js" ></script>
|
||||
|
||||
{/block}
|
||||
Reference in New Issue
Block a user