This commit is contained in:
make
2026-01-11 23:20:30 +08:00
parent 222454acef
commit 7823de7ddd
16 changed files with 565 additions and 200 deletions

View File

@@ -215,6 +215,14 @@ class SiteStyle
// 页面规则 // 页面规则
$homePage = self::buildHomePageCfg($seed); $homePage = self::buildHomePageCfg($seed);
$categoryIndexPage = self::buildCategoryIndexPageCfg($seed); $categoryIndexPage = self::buildCategoryIndexPageCfg($seed);
$categoryHomePage = [
// 3 套母型A / B / C
'family' => ['A', 'B', 'C'][$seed % 3],
// 每套母型 10 个子变体09
'variant' => ($seed >> 4) % 10,
];
$categoryPage = self::buildCategoryPageCfg($seed); $categoryPage = self::buildCategoryPageCfg($seed);
$categoryListPage = self::buildCategoryListPageCfg($seed); $categoryListPage = self::buildCategoryListPageCfg($seed);
$searchPage = self::buildSearchPageCfg($seed); $searchPage = self::buildSearchPageCfg($seed);
@@ -297,6 +305,7 @@ class SiteStyle
'pages' => [ 'pages' => [
'home' => $homePage, 'home' => $homePage,
'category_home' => $categoryHomePage,
'category_index' => $categoryIndexPage, 'category_index' => $categoryIndexPage,
'category' => $categoryPage, 'category' => $categoryPage,
'category_list' => $categoryListPage, 'category_list' => $categoryListPage,
@@ -484,6 +493,8 @@ class SiteStyle
"seowords/layout/layout_" . $cfg['pages']['detail']['seowords']['layout'] . ".css", "seowords/layout/layout_" . $cfg['pages']['detail']['seowords']['layout'] . ".css",
"pinlun/_pinlun_layout_" . $cfg['pages']['detail']['pinlun']['layout'] . ".css", "pinlun/_pinlun_layout_" . $cfg['pages']['detail']['pinlun']['layout'] . ".css",
"category/category_home/family_" . $cfg['pages']['category_home']['family'] . ".css",
"banner/banner_" . sprintf('%02d', $tpl['banner_tpl']) . ".css", "banner/banner_" . sprintf('%02d', $tpl['banner_tpl']) . ".css",
"list/list_" . sprintf('%02d', $tpl['list_tpl']) . ".css", "list/list_" . sprintf('%02d', $tpl['list_tpl']) . ".css",
"detail/detail_" . sprintf('%02d', $tpl['detail_tpl']) . ".css", "detail/detail_" . sprintf('%02d', $tpl['detail_tpl']) . ".css",

View File

@@ -20,83 +20,6 @@ class SeoRenderer
// $this->pool = SiteStyle::SEO_POOL[$poolId]['seo_phrase'] ?? []; // $this->pool = SiteStyle::SEO_POOL[$poolId]['seo_phrase'] ?? [];
} }
/**
* 只负责:选一条模板
*/
// public function getTemplate(string $field, string $strPage): string
// {
// // 1⃣ 取当前字段 + 页面类型的文案池
// $phrases = loadSeoFile(
// $this->cfg['pool_id'],
// $strPage,
// $field
// );
// if (!$phrases) {
// return '';
// }
// // 2⃣ 冻结的 slot
// $slot = $this->cfg['phrase_pick'][$strPage][$field] ?? 0;
// // slot 是二维
// if (isset($phrases[$slot]) && is_array($phrases[$slot])) {
// $list = $phrases[$slot];
// } else {
// $list = $phrases;
// }
// // 3⃣ 稳定消费 index不受扩容影响
// $len = $this->cfg['slot_len'][$strPage][$field] ?? count($list);
// $len = max(1, min($len, count($list)));
// // $idx = abs(crc32(
// // Request::pathinfo() ?: Request::host()
// // )) % $len;
// $idx = $this->cfg['phrase_idx'][$strPage][$field] ?? 0;
// return $list[$idx] ?? '';
// return $list[$idx] ?? '';
// }
// public function getTemplate(string $field, string $strPage): string
// {
// if (empty($this->cfg['pool_id'])) {
// return '';
// }
// // 1⃣ 加载运行期文案池(不冻结)
// $phrases = loadSeoFile(
// $this->cfg['pool_id'],
// $strPage,
// $field
// );
// if (!$phrases || !is_array($phrases)) {
// return '';
// }
// // 2⃣ 冻结 slot
// $slot = $this->cfg['phrase_pick'][$strPage][$field] ?? 0;
// if (isset($phrases[$slot]) && is_array($phrases[$slot])) {
// $list = $phrases[$slot];
// } else {
// // 兜底:当成单 slot
// $list = $phrases;
// }
// if (!$list) {
// return '';
// }
// // 3⃣ 冻结 idx核心
// $idx = $this->cfg['phrase_idx'][$strPage][$field] ?? 0;
// return $list[$idx] ?? '';
// }
public function getTemplate(string $field, string $strPage): string public function getTemplate(string $field, string $strPage): string
{ {

View File

@@ -48,7 +48,7 @@
{include file="module/list/title/_title_router" /} {include file="module/list/title/_title_router" /}
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.lunli"} {assign name="listCfg" value="$TpStyle.template_cfg.list_layout.lunli"}
{assign name="limit" value="$listCfg.layout['max_items']"} {assign name="limit" value="$listCfg.layout['max_items']"}
{video:listexp count="$limit" v_parent_category_en="dian-ying" {video:listexp count="$limit"
v_category_en="lun-li-pian" d_key="key" d_val="Video" cache_life="3600" v_category_en="lun-li-pian" d_key="key" d_val="Video" cache_life="3600"
export_name="__LIST__" /} export_name="__LIST__" /}
{include file="module/list/shell/_shell_router" /} {include file="module/list/shell/_shell_router" /}

View File

@@ -0,0 +1,58 @@
<div class="ch-a v{$TpStyle.template_cfg.pages.category_home.variant}">
<div class="breadcrumb">
<a href="/">{$DomainModel->d_name}</a> &gt; 分类导航
</div>
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<section class="cat-box">
<header class="cat-hd">
{if $TpStyle.template_cfg.pages.category_home.variant < 5}
<h2>{$val.v_category}</h2>
{elseif $TpStyle.template_cfg.pages.category_home.variant < 10 /}
<h2>{$val.v_category}分类</h2>
{elseif $TpStyle.template_cfg.pages.category_home.variant < 15 /}
<h3>{$val.v_category}频道</h3>
{else /}
<h3>{$val.v_category}类型导航</h3>
{/if}
{if $TpStyle.template_cfg.pages.category_home.variant < 10}
<a class="more"
href="{site:vciurl parent_category="$val.v_category_en" /}">
更多
</a>
{/if}
</header>
{if in_array($TpStyle.template_cfg.pages.category_home.variant,[2,5,9,13,17])}
<p class="intro">
提供{$val.v_category}相关热门分类,持续更新。
</p>
{/if}
<ul class="cat-list">
{if $TpStyle.template_cfg.pages.category_home.variant % 2 == 0}
{foreach $val.children as $child}
<li>
<a href="{site:vclurl parent_category="$val.v_category_en" category="$child.v_category_en" page="1"}">
{$child.v_category}
</a>
</li>
{/foreach}
{else /}
{foreach array_reverse($val.children) as $child}
<li>
<a href="{site:vclurl parent_category="$val.v_category_en" category="$child.v_category_en" page="1"}">
{$child.v_category}
</a>
</li>
{/foreach}
{/if}
</ul>
</section>
{/video:categorytype}
</div>

View File

@@ -0,0 +1,40 @@
<div class="ch-b v{$TpStyle.template_cfg.pages.category_home.variant}">
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<section class="cat-channel">
<header class="channel-hd">
{if $TpStyle.template_cfg.pages.category_home.variant < 10}
<h2>{$val.v_category}频道</h2>
{else /}
<h3>{$val.v_category}内容分类</h3>
{/if}
{if in_array($TpStyle.template_cfg.pages.category_home.variant,[1,6,11,16])}
<p class="desc">
汇集{$val.v_category}下的热门类型,便于快速查找。
</p>
{/if}
</header>
<div class="channel-grid">
{foreach $val.children as $child}
<a class="channel-card"
href="{site:vclurl parent_category="$val.v_category_en" category="$child.v_category_en" page="1"}">
<span>{$child.v_category}</span>
</a>
{/foreach}
</div>
{if $TpStyle.template_cfg.pages.category_home.variant >= 10}
<div class="channel-more">
<a href="{site:vciurl parent_category="$val.v_category_en" /}">
查看{$val.v_category}全部分类
</a>
</div>
{/if}
</section>
{/video:categorytype}
</div>

View File

@@ -0,0 +1,31 @@
<div class="ch-c v{$TpStyle.template_cfg.pages.category_home.variant}">
{video:categorytype category_type="ONE" d_key="key" d_val="val"}
<article class="cat-article">
{if $TpStyle.template_cfg.pages.category_home.variant < 7}
<h2>{$val.v_category}分类导航</h2>
{elseif $TpStyle.template_cfg.pages.category_home.variant < 14 /}
<h3>{$val.v_category}内容索引</h3>
{else /}
<h3>{$val.v_category}类型入口</h3>
{/if}
{if !in_array($TpStyle.template_cfg.pages.category_home.variant,[4,9,16])}
<p class="intro">
本页整理{$val.v_category}相关的多个细分类型,方便浏览与筛选。
</p>
{/if}
<nav class="cat-nav">
{foreach $val.children as $child}
<a href="{site:vclurl parent_category="$val.v_category_en" category="$child.v_category_en" page="1"}">
{$child.v_category}
</a>
{/foreach}
</nav>
</article>
{/video:categorytype}
</div>

View File

@@ -19,7 +19,7 @@
<title> <title>
<?php echo html_entity_decode($Video['v_name'], ENT_QUOTES | ENT_XML1, 'UTF-8'); ?> {$Video.v_remarks} <?php echo html_entity_decode($Video['v_name'], ENT_QUOTES | ENT_XML1, 'UTF-8'); ?> {$Video.v_remarks}
</title> </title>
<link>https://{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}</link> <link>https://{$DomainModel->d_domain}{site:vurl v_id='$Video.v_id' v_py='$Video.v_name_en'/}</link>
<author> <author>
{volist name='$Video.v_actor' id='vo' key='index'} {volist name='$Video.v_actor' id='vo' key='index'}
{$vo} , {$vo} ,

View File

@@ -9,7 +9,7 @@ sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"} d_key="d_key" d_val="Video" cache_life="86400"}
<sitemap> <sitemap>
<loc>https://www.{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}</loc> <loc>https://www.{$DomainModel->d_domain}{site:vurl v_id='$Video.v_id' v_py='$Video.v_name_en'/}</loc>
<lastmod>{$Video.v_publish_date}</lastmod> <lastmod>{$Video.v_publish_date}</lastmod>
</sitemap> </sitemap>

View File

@@ -1,88 +1,17 @@
{extend name="base" /} {extend name="base" /}
{block name="get-data"} {block name="get-data"}
{video:pagerexp page="$Request.get.page" limit="12"
key="$Request.get.keyword"
d_key="d_key"
d_val="Video"
p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" export_name="resData" /}
{site:grm page_code="h5_video_search" diff="0" num="30" g_key="arrGrm" /}
{/block} {/block}
{block name="title"}{site:replace code="VIDEO@GETSEARCHVIDEO@TITLE"}{/block} {block name="title"}{site:seotkd code="title" page="category_home" /}{/block}
{block name="keywords"}{site:replace code="VIDEO@GETSEARCHVIDEO@KEYWORDS"}{/block} {block name="keywords"}{site:seotkd code="keywords" page="category_home" /}{/block}
{block name="description"}{site:replace code="VIDEO@GETSEARCHVIDEO@DESCRIPTION"}{/block} {block name="description"}{site:seotkd code="description" page="category_home" /}{/block}
{block name="head"} {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='$vo.v_id' v_py='$vo.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}
@@ -96,49 +25,21 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
{block name="main"} {block name="main"}
<div class="container"> {switch name="TpStyle.template_cfg.pages.category_home.family"}
<div class=" layout-box top-weizhi hidden-xs">
<label>当前位置:</label>
<a href="/">{$DomainModel->d_name}</a><i>&gt;</i><a href="/sitemap.html">网站地图</a>
</div>
{video:categorytype category_type="ONE" d_key="key" d_val="val"} {case value="A"}
<div class=" layout-box"> {include file="module/category/category_home/family_A" /}
<div class="box-title"> {/case}
<!-- <span class="title-lb"></span> -->
<h2>
<a class=" font16" href='{site:vciurl parent_category="$val.v_category_en" /}'>{$val.v_category}</a>
</h2>
<a class=" box-more pull-right" href='{site:vciurl parent_category="$val.v_category_en" /}' title="{$val.v_category}">
<span class=" iconfont icon-weizhi"></span>
更多
<i>&gt;
</i>
</a>
</div>
<div class=" sitemap"> {case value="B"}
<ul class=" clearfix"> {include file="module/category/category_home/family_B" /}
<li class=" title"><span class=" text-color">类型</span></li> {/case}
{foreach $val.children as $intChildrenKey=>$arrChildrenCategory }
<li>
<a target="_blank"
href='{site:vclurl parent_category="$Request.route.strParentCategory" category="$arrChildrenCategory.v_category_en" area="all" lang="all" year="all" order="all" page="1"}'
title="{$arrChildrenCategory.v_category}">
{$arrChildrenCategory.v_category}
</a>
</li>
{/foreach}
</ul> {case value="C"}
{include file="module/category/category_home/family_C" /}
{/case}
</div> {/switch}
</div>
{/video:categorytype}
</div>
{/block} {/block}
{block name="customize"} {block name="customize"}

View File

@@ -653,11 +653,22 @@ class VideoService
// 更新值 // 更新值
$arrAllVideoClass = StaticConfig::getVideoCategoryFilter(); $arrAllVideoClass = StaticConfig::getVideoCategoryFilter();
$strNCategory = $arrAllVideoClass[$strVCategoryEn]; //$strNCategory = $arrAllVideoClass[$strVCategoryEn];
$strNCategory = ($strVCategoryEn === 'all' || !isset($arrAllVideoClass[$strVCategoryEn]))
? ''
: $arrAllVideoClass[$strVCategoryEn];
ConverterMovel::setVal([ ConverterMovel::setVal([
'intPage' => $intPage, 'intPage' => $intPage,
'strVideoParentCategoryName' => empty($strVParentCategory) || $strVParentCategory == 'all' ? '' : StaticConfig::$arrVideoClass[$strVParentCategory], 'strVideoParentCategoryName' =>
empty($strVParentCategory)
|| $strVParentCategory === 'all'
|| !isset(StaticConfig::$arrVideoClass[$strVParentCategory])
? ''
: StaticConfig::$arrVideoClass[$strVParentCategory],
//'strVideoParentCategoryName' => empty($strVParentCategory) || $strVParentCategory == 'all' ? '' : StaticConfig::$arrVideoClass[$strVParentCategory],
'strVideoCategoryName' => empty($strNCategory) ? '' : str_replace("视频", "", $strNCategory), 'strVideoCategoryName' => empty($strNCategory) ? '' : str_replace("视频", "", $strNCategory),
'strVideoStatus' => empty($strVStatus) ? '' : StaticConfig::$arrVideoStatus[$strVStatus], 'strVideoStatus' => empty($strVStatus) ? '' : StaticConfig::$arrVideoStatus[$strVStatus],
'strVideoOrder' => empty($strSortType) ? '' : StaticConfig::$arrVideoSortType[$strSortType], 'strVideoOrder' => empty($strSortType) ? '' : StaticConfig::$arrVideoSortType[$strSortType],
@@ -808,9 +819,9 @@ class VideoService
// 线路映射(可持续扩展) // 线路映射(可持续扩展)
$arrMap = [ $arrMap = [
'maotai' => '茅台', 'maotai' => '茅台资源',
'douban' => '豆瓣', 'douban' => '豆瓣资源',
'youzhi' => '优质', 'youzhi' => '优质资源',
'default' => '默认', 'default' => '默认',
'vip' => 'VIP线路', 'vip' => 'VIP线路',

View File

@@ -0,0 +1,64 @@
<?php
return [
[
'{strSiteName}影视分类导航页,集中展示电影、电视剧、动漫、综艺等全部一级与二级分类栏目,方便用户快速查找影视类型。',
'{strSiteName}分类导航中心,汇总全站影视栏目与频道结构,支持按不同影视分类浏览内容入口。',
'本页面为{strSiteName}影视分类索引,系统整理电影、电视剧、动漫、综艺等分类结构,帮助用户快速定位频道。',
'{strSiteName}影视分类大全页,展示完整的影视栏目与类型分类,提供清晰的频道导航入口。',
'通过{strSiteName}影视分类导航页面,用户可以快速浏览全站影视分类与栏目入口。',
'{strSiteName}影视分类索引页面,汇集全部影视栏目分类结构,适合按类型查找影视频道。',
'这里是{strSiteName}影视分类导航中心,集中展示电影、电视剧、动漫、综艺等分类入口。',
'{strSiteName}影视栏目分类页面,系统呈现全站影视分类结构,方便用户按栏目浏览。',
'本页为{strSiteName}影视分类导航总览,涵盖全部一级与二级影视分类栏目。',
'{strSiteName}影视分类入口页面,帮助用户快速了解网站影视栏目与频道分布。',
'{strSiteName}分类导航页,整理影视内容的分类结构,支持多种影视类型入口访问。',
'{strSiteName}影视分类大全,集中展示网站内所有影视栏目与频道分类。',
'通过影视分类导航页,用户可快速进入{strSiteName}不同影视分类频道。',
'{strSiteName}影视栏目索引页,系统展示影视内容分类结构与栏目入口。',
'本页面用于说明{strSiteName}影视分类体系与栏目导航结构。',
'{strSiteName}影视分类中心页,展示完整的影视栏目分类与频道入口。',
'影视分类导航页面为用户提供清晰的影视栏目结构与访问路径。',
'{strSiteName}影视分类索引中心,覆盖电影、电视剧、动漫、综艺等内容分类。',
'在{strSiteName}影视分类导航页中,可按不同类型快速进入对应栏目。',
'{strSiteName}影视栏目分类汇总页,集中展示全部影视分类入口。',
'{strSiteName}影视分类结构说明页面,帮助用户了解网站影视内容分类布局。',
'本页汇集{strSiteName}影视分类导航入口,方便用户查找不同影视栏目。',
'{strSiteName}影视分类大全导航,系统展示影视栏目与频道分类结构。',
'影视分类导航页为{strSiteName}用户提供清晰的栏目入口与分类索引。',
'{strSiteName}影视分类与频道导航页面,适合按类型查找影视内容。',
'{strSiteName}影视栏目分类索引页,整理网站影视内容的分类结构。',
'影视分类导航中心页面,集中展示{strSiteName}全部影视栏目入口。',
'{strSiteName}影视分类入口索引,支持按电影、电视剧、动漫等分类浏览。',
'本页面为{strSiteName}影视分类导航总入口,覆盖全站影视栏目。',
'{strSiteName}影视分类结构导航页,展示完整影视栏目分类体系。',
'{strSiteName}影视分类汇总页面,帮助用户快速进入不同影视栏目。',
'影视分类导航页系统整理{strSiteName}影视内容分类结构。',
'{strSiteName}影视栏目与频道分类页面,提供清晰的导航入口。',
'通过影视分类索引页,可快速了解{strSiteName}影视栏目分布。',
'{strSiteName}影视分类大全索引页,集中呈现影视内容分类结构。',
'{strSiteName}影视分类导航中心页,覆盖网站全部影视栏目与频道。',
'影视分类导航为用户提供快速访问{strSiteName}影视栏目的入口。',
'{strSiteName}影视栏目分类结构页,系统展示影视内容分类信息。',
'本页为{strSiteName}影视分类索引总览,支持多类型影视入口。',
'{strSiteName}影视分类入口汇总,方便用户按栏目浏览影视内容。',
'{strSiteName}影视分类导航页面,清晰展示影视栏目与频道结构。',
'影视分类索引页用于展示{strSiteName}影视内容分类体系。',
'{strSiteName}影视栏目分类总览,集中整理影视分类与入口信息。',
'通过分类导航页面,可快速定位{strSiteName}不同影视栏目。',
'{strSiteName}影视分类结构大全页,帮助用户了解影视栏目布局。',
'{strSiteName}影视分类导航索引,系统展示影视分类与频道入口。',
'影视分类页面集中呈现{strSiteName}影视栏目与类型分类。',
'{strSiteName}影视栏目分类入口页,适合快速查找影视类型。',
'影视分类导航为{strSiteName}用户提供高效的栏目访问路径。',
'{strSiteName}影视分类与频道结构页面,展示完整影视分类体系。',
],
];

View File

@@ -0,0 +1,100 @@
<?php
return [
[
'影视分类,分类导航,影视栏目',
'影视分类大全,影视频道,分类入口',
'电影分类,电视剧分类,动漫分类',
'影视分类导航,栏目导航',
'影视频道分类,影视类型',
'影视分类大全,分类索引',
'影视栏目分类,频道导航',
'电影电视剧分类,影视导航',
'影视分类入口,栏目索引',
'影视分类,频道大全',
'影视分类导航,影视分类大全',
'影视栏目,影视频道',
'影视分类目录,栏目分类',
'电影电视剧动漫分类',
'影视类型分类,导航入口',
'影视分类中心,频道分类',
'影视栏目大全,分类导航',
'影视分类索引,影视栏目',
'影视分类与频道',
'影视分类结构',
'影视栏目分类导航',
'影视频道入口,分类大全',
'影视分类总览,栏目索引',
'影视分类入口大全',
'影视分类与类型',
'影视栏目导航,频道分类',
'影视分类说明,分类结构',
'影视分类系统,栏目导航',
'影视分类与栏目',
'影视频道与分类',
'影视分类大全页,分类导航',
'影视分类导航页',
'影视栏目分类入口',
'影视频道分类索引',
'影视分类目录',
'影视分类与频道导航',
'影视分类体系',
'影视栏目与分类',
'影视频道分类大全',
'影视分类导航合集',
'影视分类入口页',
'影视栏目分类索引',
'影视频道分类结构',
'影视分类总入口',
'影视分类与栏目大全',
'影视栏目导航系统',
'影视分类导航系统',
'影视频道入口大全',
'影视分类索引页',
'影视栏目与频道',
'影视分类结构导航',
'影视栏目分类大全',
'影视频道分类入口',
'影视分类体系导航',
'影视分类合集',
'影视栏目与分类导航',
'影视频道与栏目',
'影视分类入口中心',
'影视分类与频道结构',
'影视栏目分类导航页',
'影视分类大全导航',
'影视分类入口导航',
'影视频道分类导航页',
'影视分类中心页',
'影视栏目与频道导航',
'影视分类结构说明',
'影视栏目分类系统',
'影视频道分类系统',
'影视分类与栏目索引',
'影视分类目录大全',
'影视分类与类型导航',
'影视栏目与分类索引',
'影视频道与分类入口',
'影视分类入口合集',
'影视栏目分类索引页',
'影视分类导航中心',
'影视栏目分类导航大全',
'影视频道分类大全页',
'影视分类结构大全',
'影视栏目与分类大全',
],
];

View File

@@ -0,0 +1,81 @@
<?php
return [
[
'{strSiteName}影视分类导航大全',
'{strSiteName}全部影视分类与频道入口',
'{strSiteName}电影电视剧动漫综艺分类导航',
'影视分类大全 - {strSiteName}',
'影视栏目分类导航中心 - {strSiteName}',
'{strSiteName}影视内容分类索引页',
'电影电视剧分类导航 - {strSiteName}',
'影视频道与栏目分类总览 - {strSiteName}',
'{strSiteName}全站影视分类入口',
'{strSiteName}影视分类结构一览',
'{strSiteName}电影电视剧动漫综艺分类大全',
'影视分类导航中心 - {strSiteName}',
'{strSiteName}影视分类与栏目导航',
'全站影视分类索引 - {strSiteName}',
'{strSiteName}影视类型与频道分类页',
'影视分类导航页面 - {strSiteName}',
'{strSiteName}影视栏目分类汇总',
'{strSiteName}影视分类导航首页',
'影视内容分类总览 - {strSiteName}',
'{strSiteName}影视频道分类大全',
'{strSiteName}电影分类电视剧分类导航',
'{strSiteName}影视分类入口页面',
'影视分类与频道大全 - {strSiteName}',
'{strSiteName}影视栏目导航中心',
'影视分类索引中心 - {strSiteName}',
'{strSiteName}影视分类结构说明页',
'影视分类与类型导航 - {strSiteName}',
'{strSiteName}影视频道分类入口',
'全站影视分类导航页 - {strSiteName}',
'{strSiteName}影视内容分类导航',
'{strSiteName}影视分类目录大全',
'影视栏目与频道导航 - {strSiteName}',
'{strSiteName}影视分类总入口',
'影视分类大全页 - {strSiteName}',
'{strSiteName}影视栏目分类入口',
'电影电视剧动漫分类导航 - {strSiteName}',
'{strSiteName}影视分类导航系统',
'影视频道分类索引 - {strSiteName}',
'{strSiteName}影视分类中心页',
'影视分类与栏目入口 - {strSiteName}',
'{strSiteName}影视分类结构导航',
'影视分类导航总览 - {strSiteName}',
'{strSiteName}影视频道分类系统',
'{strSiteName}影视分类入口中心',
'影视分类大全导航页 - {strSiteName}',
'{strSiteName}影视栏目索引导航',
'影视分类结构说明 - {strSiteName}',
'{strSiteName}影视频道入口大全',
'影视分类与类型总览 - {strSiteName}',
'{strSiteName}影视栏目分类索引',
'{strSiteName}影视分类全导航',
'影视分类导航与频道入口 - {strSiteName}',
'{strSiteName}影视内容分类中心',
'影视栏目分类大全 - {strSiteName}',
'{strSiteName}影视频道与分类入口',
'影视分类导航说明页 - {strSiteName}',
'{strSiteName}影视分类导航合集',
'影视分类与栏目大全 - {strSiteName}',
'{strSiteName}影视频道分类导航页',
'影视分类索引大全 - {strSiteName}',
'{strSiteName}影视分类入口导航',
'影视分类与频道结构 - {strSiteName}',
'{strSiteName}影视栏目分类导航大全',
'影视分类导航总入口 - {strSiteName}',
'{strSiteName}影视分类体系导航',
'影视栏目与分类索引 - {strSiteName}',
'{strSiteName}影视分类与频道总览',
'影视分类导航集合页 - {strSiteName}',
'{strSiteName}影视分类结构大全',
'影视栏目分类导航页 - {strSiteName}',
],
];

View File

@@ -0,0 +1,53 @@
/* ===== 基础 ===== */
.ch-a .cat-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.ch-a .cat-list li {
background: var(--bg-soft);
padding: 6px 10px;
}
/* ===== Variant 044 列 ===== */
.ch-a.v0 .cat-list li,
.ch-a.v1 .cat-list li,
.ch-a.v2 .cat-list li,
.ch-a.v3 .cat-list li,
.ch-a.v4 .cat-list li {
width: 25%;
}
/* ===== Variant 595 列 ===== */
.ch-a.v5 .cat-list li,
.ch-a.v6 .cat-list li,
.ch-a.v7 .cat-list li,
.ch-a.v8 .cat-list li,
.ch-a.v9 .cat-list li {
width: 20%;
}
/* ===== Variant 10143 列 ===== */
.ch-a.v10 .cat-list li,
.ch-a.v11 .cat-list li,
.ch-a.v12 .cat-list li,
.ch-a.v13 .cat-list li,
.ch-a.v14 .cat-list li {
width: 33.33%;
}
/* ===== Variant 15192 列 ===== */
.ch-a.v15 .cat-list li,
.ch-a.v16 .cat-list li,
.ch-a.v17 .cat-list li,
.ch-a.v18 .cat-list li,
.ch-a.v19 .cat-list li {
width: 50%;
}
/* 文案差异 */
.ch-a.v3 .intro,
.ch-a.v8 .intro,
.ch-a.v14 .intro {
display: none;
}

View File

@@ -0,0 +1,45 @@
.ch-b .channel-grid {
display: grid;
gap: 12px;
}
/* 044列 */
.ch-b.v0 .channel-grid,
.ch-b.v1 .channel-grid,
.ch-b.v2 .channel-grid,
.ch-b.v3 .channel-grid,
.ch-b.v4 .channel-grid {
grid-template-columns: repeat(4, 1fr);
}
/* 595列 */
.ch-b.v5 .channel-grid,
.ch-b.v6 .channel-grid,
.ch-b.v7 .channel-grid,
.ch-b.v8 .channel-grid,
.ch-b.v9 .channel-grid {
grid-template-columns: repeat(5, 1fr);
}
/* 10143列 */
.ch-b.v10 .channel-grid,
.ch-b.v11 .channel-grid,
.ch-b.v12 .channel-grid,
.ch-b.v13 .channel-grid,
.ch-b.v14 .channel-grid {
grid-template-columns: repeat(3, 1fr);
}
/* 15192列 */
.ch-b.v15 .channel-grid,
.ch-b.v16 .channel-grid,
.ch-b.v17 .channel-grid,
.ch-b.v18 .channel-grid,
.ch-b.v19 .channel-grid {
grid-template-columns: repeat(2, 1fr);
}
/* 卡片风格差异 */
.ch-b.v6 .channel-card { border-radius: 12px; }
.ch-b.v11 .channel-card { background: var(--bg); }
.ch-b.v17 .channel-card { border: 1px dashed var(--border); }

View File

@@ -0,0 +1,47 @@
.ch-c .cat-nav a {
display: inline-block;
margin: 6px 12px 6px 0;
}
/* 04紧凑 */
.ch-c.v0 .cat-nav a,
.ch-c.v1 .cat-nav a,
.ch-c.v2 .cat-nav a,
.ch-c.v3 .cat-nav a,
.ch-c.v4 .cat-nav a {
font-size: 14px;
}
/* 59正常 */
.ch-c.v5 .cat-nav a,
.ch-c.v6 .cat-nav a,
.ch-c.v7 .cat-nav a,
.ch-c.v8 .cat-nav a,
.ch-c.v9 .cat-nav a {
font-size: 15px;
}
/* 1014宽松 */
.ch-c.v10 .cat-nav a,
.ch-c.v11 .cat-nav a,
.ch-c.v12 .cat-nav a,
.ch-c.v13 .cat-nav a,
.ch-c.v14 .cat-nav a {
font-size: 16px;
}
/* 1519强调 */
.ch-c.v15 .cat-nav a,
.ch-c.v16 .cat-nav a,
.ch-c.v17 .cat-nav a,
.ch-c.v18 .cat-nav a,
.ch-c.v19 .cat-nav a {
font-weight: 600;
}
/* intro 显隐差异 */
.ch-c.v4 .intro,
.ch-c.v9 .intro,
.ch-c.v16 .intro {
display: none;
}