feat: sync latest GPT SEO routing and docs
This commit is contained in:
@@ -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';
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user