} if (!CModule::IncludeModule('learning')) { return false; } //Params $arParams["COURSE_ID"] = isset($arParams["COURSE_ID"]) && intval($arParams["COURSE_ID"]) > 0 ? intval($arParams["COURSE_ID"]) : intval($_REQUEST["COURSE_ID"]); $arParams["SELF_TEST_TEMPLATE"] = strlen($arParams["SELF_TEST_TEMPLATE"]) > 0 ? htmlspecialcharsbx($arParams["SELF_TEST_TEMPLATE"]) : "self.php?SELF_TEST_ID=#SELF_TEST_ID#"; $CHAPTER_ID = isset($arParams["CHAPTER_ID"]) && intval($arParams["CHAPTER_ID"]) > 0 ? $arParams["CHAPTER_ID"] : $_REQUEST["CHAPTER_ID"]; if (CLearnPath::IsUrlencodedPath($CHAPTER_ID)) { $path = new CLearnPath(); $path->ImportUrlencoded($CHAPTER_ID); $arParams['CHAPTER_ID'] = (int) $path->GetBottom(); } elseif (substr($CHAPTER_ID, 0, 1) === '0') { $arParams['CHAPTER_ID'] = (int) substr($CHAPTER_ID, 1); } else { $arParams['CHAPTER_ID'] = (int) CLearnLesson::LessonIdByChapterId($CHAPTER_ID); } if (!(isset($arParams['LESSON_PATH']) && strlen($arParams['LESSON_PATH']))) { $arParams['LESSON_PATH'] = ''; if (isset($_REQUEST['LESSON_PATH']) && strlen($_REQUEST['LESSON_PATH'])) { $arParams['LESSON_PATH'] = $_REQUEST['LESSON_PATH']; } } $strUrlencodedLessonPath = ''; if (strlen($arParams['LESSON_PATH']) > 0) { $strUrlencodedLessonPath = 'LESSON_PATH=' . $arParams['LESSON_PATH']; } $arParams["CHAPTER_DETAIL_TEMPLATE"] = strlen($arParams["CHAPTER_DETAIL_TEMPLATE"]) > 0 ? htmlspecialcharsbx($arParams["CHAPTER_DETAIL_TEMPLATE"]) : "chapter.php?CHAPTER_ID=#CHAPTER_ID#"; $arParams["LESSON_DETAIL_TEMPLATE"] = strlen($arParams["LESSON_DETAIL_TEMPLATE"]) > 0 ? htmlspecialcharsbx($arParams["LESSON_DETAIL_TEMPLATE"]) : "lesson.php?LESSON_ID=#LESSON_ID#"; $arParams["CHECK_PERMISSIONS"] = isset($arParams["CHECK_PERMISSIONS"]) && $arParams["CHECK_PERMISSIONS"] == "N" ? "N" : "Y"; if ($arParams["CHECK_PERMISSIONS"] !== 'N') {
$APPLICATION->SetTitle($arResult["COURSE"]["NAME"]); } $parent =& $this->GetParent(); //Course description item $url = CComponentEngine::MakePathFromTemplate($arParams["COURSE_DETAIL_TEMPLATE"], array("COURSE_ID" => $arParams["COURSE_ID"])); $arResult["ITEMS"][] = array("NAME" => GetMessage("LEARNING_COURSE_DESCRIPTION"), "URL" => $url, "TYPE" => "CD", "SELECTED" => $parent->arResult["VARIABLES"]["INDEX"] == "Y", "DEPTH_LEVEL" => 1); $CHAPTER_ID = $parent->arResult["VARIABLES"]["CHAPTER_ID"]; if ($CHAPTER_ID > 0) { if (CLearnPath::IsUrlencodedPath($CHAPTER_ID)) { $oTmp = new CLearnPath(); $oTmp->ImportUrlencoded($CHAPTER_ID); $CHAPTER_ID = (int) $oTmp->GetBottom(); } elseif (substr($CHAPTER_ID, 0, 1) === '0') { $CHAPTER_ID = (int) substr($CHAPTER_ID, 1); } else { $CHAPTER_ID = (int) CLearnLesson::LessonIdByChapterId($CHAPTER_ID); } } else { $CHAPTER_ID = false; } $lessonCount = 0; $lessonCurrent = 0; // Get Course Content $arContents = CLearnCacheOfLessonTreeComponent::GetData($arParams['COURSE_ID']); foreach ($arContents as $arContent) { if ($arContent["TYPE"] == "CH") { $itemURL = CComponentEngine::MakePathFromTemplate($arParams["CHAPTER_DETAIL_TEMPLATE"], array("CHAPTER_ID" => '0' . $arContent["ID"], "COURSE_ID" => $arParams["COURSE_ID"])); if ($CHAPTER_ID == $arContent["ID"]) { $arContent["SELECTED"] = true; } else { $arContent["SELECTED"] = false;
} $APPLICATION->SetPageProperty("learning_search_params", $searchParams); $lessonID = 0; if ($arVariables["LESSON_ID"] > 0) { $lessonID = intval($arVariables["LESSON_ID"]); } else { // Lesson is not given, so try get chapter_id if (isset($_REQUEST['CHAPTER_ID'])) { if (CLearnPath::IsUrlencodedPath($_REQUEST['CHAPTER_ID'])) { $LESSON_PATH = new CLearnPath(); $LESSON_PATH->ImportUrlencoded($_REQUEST['CHAPTER_ID']); $lessonID = (int) $LESSON_PATH->GetBottom(); } elseif (substr($_REQUEST['CHAPTER_ID'], 0, 1) === '0') { $lessonID = (int) substr($_REQUEST['CHAPTER_ID'], 1); } else { $lessonID = (int) CLearnLesson::LessonIdByChapterId($_REQUEST['CHAPTER_ID']); } } } $linkedLessonId = false; if ($arParams["COURSE_ID"] > 0) { $linkedLessonId = CCourse::CourseGetLinkedLesson($arParams["COURSE_ID"]); } if ($arParams["CHECK_PERMISSIONS"] !== 'N') { $isAccessible = false; try { if ($lessonID > 0) { $arPermissionsParams = array('COURSE_ID' => $arParams['COURSE_ID'], 'LESSON_ID' => $lessonID); $isAccessible = CLearnAccessMacroses::CanUserViewLessonAsPublic($arPermissionsParams, $allowAccessViaLearningGroups = false); } elseif ($linkedLessonId !== false) { $arPermissionsParams = array('lesson_id' => $linkedLessonId);
} } $APPLICATION->SetPageProperty("learning_search_params", $searchParams); $lessonID = 0; if ($arVariables["LESSON_ID"] > 0) { $lessonID = intval($arVariables["LESSON_ID"]); } elseif (isset($arVariables['CHAPTER_ID'])) { // Lesson is not given, so try get chapter_id if (CLearnPath::IsUrlencodedPath($arVariables['CHAPTER_ID'])) { $LESSON_PATH = new CLearnPath(); $LESSON_PATH->ImportUrlencoded($arVariables['CHAPTER_ID']); $lessonID = (int) $LESSON_PATH->GetBottom(); } elseif (substr($arVariables['CHAPTER_ID'], 0, 1) === '0') { $lessonID = (int) substr($arVariables['CHAPTER_ID'], 1); } else { $lessonID = (int) CLearnLesson::LessonIdByChapterId($arVariables['CHAPTER_ID']); } } $linkedLessonId = false; if ($arParams["COURSE_ID"] > 0) { $linkedLessonId = CCourse::CourseGetLinkedLesson($arParams["COURSE_ID"]); } if ($arParams["CHECK_PERMISSIONS"] !== 'N') { $isAccessible = false; try { if ($lessonID > 0) { $arPermissionsParams = array('COURSE_ID' => $arParams['COURSE_ID'], 'LESSON_ID' => $lessonID); $isAccessible = CLearnAccessMacroses::CanUserViewLessonAsPublic($arPermissionsParams, $allowAccessViaLearningGroups = false); } elseif ($linkedLessonId !== false) { $arPermissionsParams = array('lesson_id' => $linkedLessonId); $isAccessible = CLearnAccessMacroses::CanUserViewLessonContent($arPermissionsParams, $allowAccessViaLearningGroups = false);