• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/lib/integration/search.php
  • Класс: BitrixLearningIntegrationSearch
  • Вызов: Search::getCoursePaths
static function getCoursePaths($entityId, $entityType, $courseId)
{
	static $courseToSiteCache = [];

	$courseId = intval($courseId);
	$paths = [];

	if (!isset($courseToSiteCache[$courseId]))
	{
		$rc = $GLOBALS["DB"]->query("SELECT SITE_ID FROM b_learn_course_site WHERE COURSE_ID=".$courseId, true);
		if ($rc === false)
		{
			return $paths;
		}

		$courseToSiteCache[$courseId] = [];
		while ($courseSite = $rc->fetch())
		{
			$courseToSiteCache[$courseId][] = $courseSite["SITE_ID"];
		}
	}

	if (!isset($courseToSiteCache[$courseId]))
	{
		return $paths;
	}

	$sitePaths = static::getSitePaths();
	foreach ($courseToSiteCache[$courseId] as $siteId)
	{
		if (!isset($sitePaths[$siteId]) || !isset($sitePaths[$siteId][$entityType]))
		{
			continue;
		}

		$url = str_replace("#COURSE_ID#", $courseId, $sitePaths[$siteId][$entityType]);
		$url = str_replace("#CHAPTER_ID#", "0".$entityId, $url);
		$url = str_replace("#LESSON_ID#", $entityId, $url);

		$paths[$siteId] = $url;
	}

	return $paths;
}