• Модуль: 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;
}