diff --git a/code/app/common/helper/SiteStyle.php b/code/app/common/helper/SiteStyle.php
index 55eafcf..debc305 100644
--- a/code/app/common/helper/SiteStyle.php
+++ b/code/app/common/helper/SiteStyle.php
@@ -215,6 +215,14 @@ class SiteStyle
// 页面规则
$homePage = self::buildHomePageCfg($seed);
$categoryIndexPage = self::buildCategoryIndexPageCfg($seed);
+ $categoryHomePage = [
+ // 3 套母型:A / B / C
+ 'family' => ['A', 'B', 'C'][$seed % 3],
+
+ // 每套母型 10 个子变体(0–9)
+ 'variant' => ($seed >> 4) % 10,
+ ];
+
$categoryPage = self::buildCategoryPageCfg($seed);
$categoryListPage = self::buildCategoryListPageCfg($seed);
$searchPage = self::buildSearchPageCfg($seed);
@@ -297,6 +305,7 @@ class SiteStyle
'pages' => [
'home' => $homePage,
+ 'category_home' => $categoryHomePage,
'category_index' => $categoryIndexPage,
'category' => $categoryPage,
'category_list' => $categoryListPage,
@@ -484,6 +493,8 @@ class SiteStyle
"seowords/layout/layout_" . $cfg['pages']['detail']['seowords']['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",
"list/list_" . sprintf('%02d', $tpl['list_tpl']) . ".css",
"detail/detail_" . sprintf('%02d', $tpl['detail_tpl']) . ".css",
diff --git a/code/app/common/seo/SeoRenderer.php b/code/app/common/seo/SeoRenderer.php
index 07720a2..c337f8e 100644
--- a/code/app/common/seo/SeoRenderer.php
+++ b/code/app/common/seo/SeoRenderer.php
@@ -20,83 +20,6 @@ class SeoRenderer
// $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
{
diff --git a/code/app/home/view/videoGpt1/index/index.html b/code/app/home/view/videoGpt1/index/index.html
index d5cbd83..331f381 100644
--- a/code/app/home/view/videoGpt1/index/index.html
+++ b/code/app/home/view/videoGpt1/index/index.html
@@ -48,7 +48,7 @@
{include file="module/list/title/_title_router" /}
{assign name="listCfg" value="$TpStyle.template_cfg.list_layout.lunli"}
{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"
export_name="__LIST__" /}
{include file="module/list/shell/_shell_router" /}
diff --git a/code/app/home/view/videoGpt1/module/category/category_home/family_A.html b/code/app/home/view/videoGpt1/module/category/category_home/family_A.html
new file mode 100644
index 0000000..1c4f309
--- /dev/null
+++ b/code/app/home/view/videoGpt1/module/category/category_home/family_A.html
@@ -0,0 +1,58 @@
+
+
+
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+
+
+
+ {if $TpStyle.template_cfg.pages.category_home.variant < 5}
+ {$val.v_category}
+ {elseif $TpStyle.template_cfg.pages.category_home.variant < 10 /}
+ {$val.v_category}分类
+ {elseif $TpStyle.template_cfg.pages.category_home.variant < 15 /}
+ {$val.v_category}频道
+ {else /}
+ {$val.v_category}类型导航
+ {/if}
+
+ {if $TpStyle.template_cfg.pages.category_home.variant < 10}
+
+ 更多
+
+ {/if}
+
+
+ {if in_array($TpStyle.template_cfg.pages.category_home.variant,[2,5,9,13,17])}
+
+ 提供{$val.v_category}相关热门分类,持续更新。
+
+ {/if}
+
+
+ {if $TpStyle.template_cfg.pages.category_home.variant % 2 == 0}
+ {foreach $val.children as $child}
+ -
+
+ {$child.v_category}
+
+
+ {/foreach}
+ {else /}
+ {foreach array_reverse($val.children) as $child}
+ -
+
+ {$child.v_category}
+
+
+ {/foreach}
+ {/if}
+
+
+
+ {/video:categorytype}
+
+
diff --git a/code/app/home/view/videoGpt1/module/category/category_home/family_B.html b/code/app/home/view/videoGpt1/module/category/category_home/family_B.html
new file mode 100644
index 0000000..8dba85b
--- /dev/null
+++ b/code/app/home/view/videoGpt1/module/category/category_home/family_B.html
@@ -0,0 +1,40 @@
+
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+
+
+
+
+
+
+ {if $TpStyle.template_cfg.pages.category_home.variant >= 10}
+
+ {/if}
+
+
+ {/video:categorytype}
+
+
diff --git a/code/app/home/view/videoGpt1/module/category/category_home/family_c.html b/code/app/home/view/videoGpt1/module/category/category_home/family_c.html
new file mode 100644
index 0000000..727111c
--- /dev/null
+++ b/code/app/home/view/videoGpt1/module/category/category_home/family_c.html
@@ -0,0 +1,31 @@
+
+
+ {video:categorytype category_type="ONE" d_key="key" d_val="val"}
+
+
+ {if $TpStyle.template_cfg.pages.category_home.variant < 7}
+ {$val.v_category}分类导航
+ {elseif $TpStyle.template_cfg.pages.category_home.variant < 14 /}
+ {$val.v_category}内容索引
+ {else /}
+ {$val.v_category}类型入口
+ {/if}
+
+ {if !in_array($TpStyle.template_cfg.pages.category_home.variant,[4,9,16])}
+
+ 本页整理{$val.v_category}相关的多个细分类型,方便浏览与筛选。
+
+ {/if}
+
+
+
+
+ {/video:categorytype}
+
+
diff --git a/code/app/home/view/videoGpt1/rss/baidu.xml b/code/app/home/view/videoGpt1/rss/baidu.xml
index ac39614..8fd01ee 100644
--- a/code/app/home/view/videoGpt1/rss/baidu.xml
+++ b/code/app/home/view/videoGpt1/rss/baidu.xml
@@ -19,7 +19,7 @@
{$Video.v_remarks}
- https://{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}
+ https://{$DomainModel->d_domain}{site:vurl v_id='$Video.v_id' v_py='$Video.v_name_en'/}
{volist name='$Video.v_actor' id='vo' key='index'}
{$vo} ,
diff --git a/code/app/home/view/videoGpt1/rss/so.xml b/code/app/home/view/videoGpt1/rss/so.xml
index 70d5cbb..36669fd 100644
--- a/code/app/home/view/videoGpt1/rss/so.xml
+++ b/code/app/home/view/videoGpt1/rss/so.xml
@@ -9,7 +9,7 @@ sort_type="news"
d_key="d_key" d_val="Video" cache_life="86400"}
-https://www.{$DomainModel->d_domain}{site:vurl v_id='$vo.v_id' v_py='$vo.v_name_en'/}
+https://www.{$DomainModel->d_domain}{site:vurl v_id='$Video.v_id' v_py='$Video.v_name_en'/}
{$Video.v_publish_date}
diff --git a/code/app/home/view/videoGpt1/video/getMap.html b/code/app/home/view/videoGpt1/video/getMap.html
index b7299a0..da9bd45 100644
--- a/code/app/home/view/videoGpt1/video/getMap.html
+++ b/code/app/home/view/videoGpt1/video/getMap.html
@@ -1,88 +1,17 @@
{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="3600" func="generateSearchPager" export_name="resData" /}
-{site:grm page_code="h5_video_search" diff="0" 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="title"}{site:seotkd code="title" page="category_home" /}{/block}
+{block name="keywords"}{site:seotkd code="keywords" page="category_home" /}{/block}
+{block name="description"}{site:seotkd code="description" page="category_home" /}{/block}
{block name="head"}
-
-
-
-
-
-
-
-
-
-{// 结构化数据}
-
{/block}
@@ -96,49 +25,21 @@ p_val="page_data" button_num="5" cache_life="3600" func="generateSearchPager" ex
{block name="main"}
-
-
+{switch name="TpStyle.template_cfg.pages.category_home.family"}
- {video:categorytype category_type="ONE" d_key="key" d_val="val"}
-
-
+{case value="A"}
+ {include file="module/category/category_home/family_A" /}
+{/case}
-
-
-
- {/video:categorytype}
+{case value="B"}
+ {include file="module/category/category_home/family_B" /}
+{/case}
-
-
+{case value="C"}
+ {include file="module/category/category_home/family_C" /}
+{/case}
+
+{/switch}
{/block}
{block name="customize"}
diff --git a/code/app/services/VideoService.php b/code/app/services/VideoService.php
index 4a4909c..f83595e 100644
--- a/code/app/services/VideoService.php
+++ b/code/app/services/VideoService.php
@@ -653,11 +653,22 @@ class VideoService
// 更新值
$arrAllVideoClass = StaticConfig::getVideoCategoryFilter();
- $strNCategory = $arrAllVideoClass[$strVCategoryEn];
+ //$strNCategory = $arrAllVideoClass[$strVCategoryEn];
+ $strNCategory = ($strVCategoryEn === 'all' || !isset($arrAllVideoClass[$strVCategoryEn]))
+ ? ''
+ : $arrAllVideoClass[$strVCategoryEn];
+
ConverterMovel::setVal([
'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),
'strVideoStatus' => empty($strVStatus) ? '' : StaticConfig::$arrVideoStatus[$strVStatus],
'strVideoOrder' => empty($strSortType) ? '' : StaticConfig::$arrVideoSortType[$strSortType],
@@ -808,9 +819,9 @@ class VideoService
// 线路映射(可持续扩展)
$arrMap = [
- 'maotai' => '茅台',
- 'douban' => '豆瓣',
- 'youzhi' => '优质',
+ 'maotai' => '茅台资源',
+ 'douban' => '豆瓣资源',
+ 'youzhi' => '优质资源',
'default' => '默认',
'vip' => 'VIP线路',
diff --git a/code/public/initdata/video/pools/pool_v1/category_home/description.php b/code/public/initdata/video/pools/pool_v1/category_home/description.php
new file mode 100644
index 0000000..3a6de9a
--- /dev/null
+++ b/code/public/initdata/video/pools/pool_v1/category_home/description.php
@@ -0,0 +1,64 @@
+