} $g_learn_parentLessonPath = $_GET['PROPOSE_RETURN_LESSON_PATH']; $oPath = new CLearnPath(); $oPath->ImportUrlencoded($g_learn_parentLessonPath); $g_learn_parentLessonId = $oPath->GetBottom(); if ($g_learn_parentLessonId === false) { throw new LearnException('EA_LOGIC: PROPOSE_RETURN_LESSON_PATH given, ' . 'but there is no parent lesson in path', LearnException::EXC_ERR_ALL_LOGIC); } } // Place to $topCourseLessonId lesson id of top course, if top lesson is course. $topCourseLessonId = false; if (isset($g_learn_parentLessonPath) && strlen($g_learn_parentLessonPath)) { try { $oPath = new CLearnPath(); $oPath->ImportUrlencoded($g_learn_parentLessonPath); $topLessonId = $oPath->GetTop(); // Is lesson the course? if (CLearnLesson::GetLinkedCourse($topLessonId) !== false) { $topCourseLessonId = $topLessonId; } } catch (Exception $e) { $topCourseLessonId = false; } unset($oPath, $topLessonId); } // This argument can be transmitted on POST submit of form when creating new lesson if (isset($_GET['PARENT_LESSON_ID'])) { $_POST['PARENT_LESSON_ID'] = $_GET['PARENT_LESSON_ID']; } if (isset($_POST['PARENT_LESSON_ID'])) { $g_learn_parentLessonId = $_POST['PARENT_LESSON_ID'];
public function __construct() { global $USER; $this->oAccess = CLearnAccess::GetInstance($USER->GetID()); // Removes all global variables with prefix "str_" ClearVars(); $parentLessonId = -2; // by default, magic number '-2' is means 'List lessons, without relation to parent' $oPath = false; if (isset($_GET['LESSON_PATH']) && strlen($_GET['LESSON_PATH']) > 0) { $oPath = new CLearnPath(); $oPath->ImportUrlencoded($_GET['LESSON_PATH']); // if most top lesson is a course => than we are in context of this course $rootAncestorLessonId = $oPath->GetTop(); if ($rootAncestorLessonId !== false) { $rc = CLearnLesson::GetLinkedCourse($rootAncestorLessonId); if ($rc !== false) { $this->contextCourseLessonId = (int) $rootAncestorLessonId; } // lesson id of course } } if (isset($_POST['PARENT_LESSON_ID'])) { $parentLessonId = $_POST['PARENT_LESSON_ID']; } elseif (isset($_GET['PARENT_LESSON_ID'])) { $parentLessonId = $_GET['PARENT_LESSON_ID']; } elseif ($oPath !== false) { $parentLessonId = $oPath->GetBottom(); if ($parentLessonId === false) { $parentLessonId = -2; } // by default, magic number '-2' is means 'List lessons, without relation to parent' } $this->requestedParentLessonId = $parentLessonId; // Determine current list mode if ($parentLessonId >= 1) { $this->listMode = self::ListChildLessonsMode; } elseif ($parentLessonId == -1) { // magic number '-1' is means 'List courses' $this->listMode = self::ListAnyCoursesMode; } else { $this->listMode = self::ListAnyLessonsMode; } // by default $orderBy = false; $order = 'asc'; if (isset($_POST['by'])) { $orderBy = $_POST['by']; } elseif (isset($_GET['by'])) { $orderBy = $_GET['by']; } if (isset($_POST['order'])) { $order = $_POST['order']; } elseif (isset($_GET['order'])) { $order = $_GET['order']; } $order = strtolower($order); if ($orderBy !== false && ($order === 'asc' || $order === 'desc')) { $this->arSortOrder = array($orderBy => $order); } $this->search_mode = false; $this->search_mode_type = 'childs_candidates'; // by default; if (isset($_GET['search_retpoint'])) { $this->search_mode = true; $this->search_retpoint = $_GET['search_retpoint']; $this->hrefSearchRetPoint = '&search_retpoint=' . htmlspecialcharsbx($this->search_retpoint); if (isset($_GET['search_mode_type'])) { if ($_GET['search_mode_type'] === 'parents_candidates') { $this->search_mode_type = 'parents_candidates'; } elseif ($_GET['search_mode_type'] === 'attach_question_to_lesson') { $this->search_mode_type = 'attach_question_to_lesson'; } } } }