- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/Sitemap/Generator.php
- Класс: BitrixSeoSitemapGenerator
- Вызов: Generator::runForumIndex
protected function runForumIndex(): bool
{
$result = true;
$forumList = [];
if (!empty($this->sitemapData['SETTINGS']['FORUM_ACTIVE']))
{
foreach ($this->sitemapData['SETTINGS']['FORUM_ACTIVE'] as $forumId => $active)
{
if ($active == "Y")
{
$forumList[$forumId] = "Y";
}
}
}
if (count($forumList) > 0 && Loader::includeModule('forum'))
{
$arForums = [];
$db_res = CForumNew::GetListEx(
[],
[
'@ID' => array_keys($forumList),
"ACTIVE" => "Y",
"SITE_ID" => $this->sitemapData['SITE_ID'],
"!TOPICS" => 0,
]
);
while ($res = $db_res->Fetch())
{
$arForums[$res['ID']] = $res;
}
$forumList = array_intersect_key($arForums, $forumList);
foreach ($forumList as $id => $forum)
{
RuntimeTable::add([
'PID' => $this->sitemapId,
'PROCESSED' => RuntimeTable::UNPROCESSED,
'ITEM_ID' => $id,
'ITEM_TYPE' => RuntimeTable::ITEM_TYPE_FORUM,
]
);
// $fileName = str_replace('#FORUM_ID#', $forumId, $this->sitemapData['SETTINGS']['FILENAME_FORUM']);
// $sitemapFile = new FileRuntime($this->sitemapId, $fileName, $this->sitemapDataSettings);
}
}
$this->state['FORUM_CURRENT_TOPIC'] = 0;
if (count($forumList) <= 0)
{
$this->step = Step::STEPS[Step::STEP_FORUM];
$this->statusMessage = Loc::getMessage('SITEMAP_RUN_FORUM_EMPTY');
}
else
{
$this->step = Step::STEPS[Step::STEP_FORUM_INDEX];
$this->statusMessage = Loc::getMessage('SITEMAP_RUN_FORUM');
}
return $result;
}