feat: sync latest GPT SEO routing and docs

This commit is contained in:
root
2026-04-18 01:31:44 +08:00
parent c8fb6956ef
commit 5cb11b4476
48 changed files with 6000 additions and 172 deletions

View File

@@ -111,7 +111,7 @@ class SiteMapLogic
$strDomainDir = $this->strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
mkdir($strDomainDir);
mkdir($strDomainDir, 0777, true);
}
$strHead = <<<EOF
@@ -262,7 +262,7 @@ EOF;
$strDomainDir = $this->strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
mkdir($strDomainDir);
mkdir($strDomainDir, 0777, true);
}
$strMapIndexFile = $strDomainDir . '/sitemap-main.xml';

View File

@@ -127,6 +127,25 @@ class VideoSiteMapLogic
echo date('Y-m-d H:i:s') . PHP_EOL;
}
protected function normalizeVideoSlug($Video): string
{
$strSlug = trim((string)($Video->v_name_en ?? ''));
if ($strSlug !== '') {
return $strSlug;
}
$strName = trim((string)($Video->v_name ?? ''));
if ($strName === '') {
return 'video';
}
$strSlug = mb_strtolower($strName, 'UTF-8');
$strSlug = preg_replace('/[^\\p{L}\\p{N}]+/u', '-', $strSlug);
$strSlug = trim((string)$strSlug, '-');
return $strSlug !== '' ? $strSlug : 'video';
}
/**
* Generate Site Map
*
@@ -140,7 +159,7 @@ class VideoSiteMapLogic
$strDomainDir = $this->strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
mkdir($strDomainDir);
mkdir($strDomainDir, 0777, true);
}
// 通过域名获取对应的模板
@@ -181,6 +200,7 @@ EOF;
# 取 intpage * limit ~ intpage * (limit+1) 写入以上文件
foreach ($this->fetchVideosByBatch($intStart, $this->intPageSize) as $Video) {
$strSlug = $this->normalizeVideoSlug($Video);
# 1 '/voddetail/{strPinYin}-{intVId}',
$strKey = "VIDEO_INFO_URL";
@@ -189,8 +209,8 @@ EOF;
$strAction = "";
$arrArgs = [
'intVId' => $Video->v_id,
'strPinYin' => '',
'strPinyin' => '',
'strPinYin' => $strSlug,
'strPinyin' => $strSlug,
];
if ($arrUrlFamily && !empty($arrUrlFamily)) {
@@ -272,7 +292,7 @@ $arrUrlPool = [];
$strDomainDir = $this->strSiteMapPath . $DomainModel->d_domain;
if (is_dir($strDomainDir) == false) {
mkdir($strDomainDir);
mkdir($strDomainDir, 0777, true);
}
$strMapIndexFile = $strDomainDir . '/sitemap-main.xml';
@@ -600,10 +620,11 @@ EOF;
$isFirst = true;
foreach ($this->fetchVideosByBatch($intStart, $this->intPageSize) as $Video) {
$strSlug = $this->normalizeVideoSlug($Video);
$arrArgs = [
'intVId' => $Video->v_id,
'strPinyin' => $Video->v_name_en,
'strPinYin' => $Video->v_name_en,
'strPinyin' => $strSlug,
'strPinYin' => $strSlug,
];
if ($arrUrlFamily && !empty($arrUrlFamily)) {