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