{extend name="base" /}
{block name="get-data"}
{if $Request.route.intVId && $Request.route.intVForgeId}
{video:info v_id="$Request.route.intVId" v_pinyin="$Request.route.strPinyin" v_key="arrVideo" v_fid="$Request.route.intVForgeId" export_name="arrVideo"/}
{elseif $Request.route.intVId || $Request.route.strPinyin}
{video:info v_id="$Request.route.intVId" v_pinyin="$Request.route.strPinyin" v_key="arrVideo" export_name="arrVideo"/}
{else}
{video:info v_id="$DomainModel->info_id" n_key="arrVideo" export_name="arrVideo" /}
{/if}
{site:vciurl parent_category="$arrVideo.v_parent_category_en" export_name="strVciurl" /}
{site:vclurl parent_category="$arrVideo.v_parent_category_en"
category="$arrVideo.v_category_en"
area="all" lang="all" year="all" order="all" page="1"
export_name="strVclurl" /}
{video:seocopy scene="play"
video="$arrVideo"
play_type="$Request.route.strPlayType"
play_index="$Request.route.intPlayIndex"
export_name="seoCopy" /}
{php}
$arrBreadcrumb = [
['title'=>'首页','url'=>'/'],
['title'=>$arrVideo['v_parent_category'],'url'=>$strVciurl],
['title'=>$arrVideo['v_category'],'url'=>$strVclurl],
];
$strPlaySlug = trim((string)($arrVideo['v_name_en'] ?? request()->route('strPinyin') ?? ''));
if ($strPlaySlug === '') {
$strPlaySlug = (string)($arrVideo['v_id'] ?? '');
}
$strCurrentPlayType = trim((string)(request()->route('strPlayType') ?? ''));
$intCurrentPlayIndex = max(1, (int)(request()->route('intPlayIndex') ?? 1));
$arrPlayGroups = is_array($arrVideo['v_play_url'] ?? null) ? $arrVideo['v_play_url'] : [];
if ($strCurrentPlayType === '' && !empty($arrPlayGroups)) {
$strCurrentPlayType = (string)array_key_first($arrPlayGroups);
}
$strCurrentPlayLine = trim((string)app(\app\services\VideoService::class)->getConverterPlayLineVal($strCurrentPlayType));
if ($strCurrentPlayLine === '') {
$strCurrentPlayLine = strtoupper($strCurrentPlayType !== '' ? $strCurrentPlayType : 'default');
}
$strCurrentEpisodeName = '第' . $intCurrentPlayIndex . '集';
if (!empty($arrPlayGroups[$strCurrentPlayType][$intCurrentPlayIndex - 1]['name'])) {
$strCurrentEpisodeName = trim((string)$arrPlayGroups[$strCurrentPlayType][$intCurrentPlayIndex - 1]['name']);
}
$strPlayDetailUrl = '';
if ((int)($arrVideo['v_id'] ?? 0) > 0) {
$strPlayDetailUrl = app(\app\services\VideoService::class)->getVideoInfoUrl(
(int)$arrVideo['v_id'],
$strPlaySlug
);
}
$strPlayVisibleIntro = trim((string)($seoCopy['play_intro'] ?? ''));
if ($strPlayVisibleIntro === '') {
$strPlayVisibleIntro = '当前页围绕《' . (string)($arrVideo['v_name'] ?? '当前内容') . '》' . $strCurrentEpisodeName . '整理在线播放入口,并补充剧情与观看线索,方便直接续看。';
}
$strPlayMetaNote = trim((string)($seoCopy['play_meta_note'] ?? ''));
if ($strPlayMetaNote === '') {
$strPlayMetaNote = '当前线路为' . $strCurrentPlayLine . ',如果加载较慢可以切换线路,或先回详情页补看剧情资料。';
}
$strPlayBodyGuideLead = trim((string)($seoCopy['play_body_lead'] ?? ''));
if ($strPlayBodyGuideLead === '') {
$strPlayBodyGuideLead = '播放页更适合先确认当前线路、集数和回详情路径,再决定是否继续完整观看。';
}
$strPlayBodyGuideNext = trim((string)($seoCopy['play_body_next'] ?? ''));
if ($strPlayBodyGuideNext === '') {
$strPlayBodyGuideNext = '如果想先了解完整剧情和人物资料,可以回到详情页继续浏览。';
}
$arrPlayGuideCards = array_values(array_filter((array)($seoCopy['guide_cards'] ?? []), static function ($arrCard): bool {
return is_array($arrCard)
&& (
trim((string)($arrCard['title'] ?? '')) !== ''
|| trim((string)($arrCard['text'] ?? '')) !== ''
);
}));
if (empty($arrPlayGuideCards)) {
$arrPlayGuideCards = [
['title' => '当前剧集', 'text' => $strCurrentEpisodeName],
['title' => '当前线路', 'text' => $strCurrentPlayLine],
['title' => '观看建议', 'text' => '如果当前线路不够稳定,可先切换线路,或返回详情页继续浏览剧情资料。'],
];
}
{/php}
{/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"}
{if $Request.route.intVId }
{/if}
{// Open Graph 协议(用于Facebook、LinkedIn等)}
{switch $arrVideo.v_parent_category_en }
{case 'dian-ying' }
{/case}
{case 'dian-shi-ju' }
{/case}
{case 'zong-yi' }
{/case}
{case 'dong-man' }
{/case}
{case 'duan-ju-da-quan' }
{/case}
{default /}
{/switch}
{// Twitter Card(用于Twitter/X)}
{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}
{/block}
{block name="strPageCode"}{/block}
{block name="head-css"}
{// /}
{/block}
{block name="main"}
{assign name="pageCfg" value="$TpStyle.template_cfg.pages.play"}
{include file="module/page/page_router" /}
{include file="module/seo_copy/play" /}
{/block}
{block name="footer-js"}
{// /}
{// /}
{// /}
{/block}