25 if ($arOrder ===
null)
26 $arOrder =
array (
'EDGE_SORT' =>
'asc');
28 if (is_array($arSelectFields) && (
count($arSelectFields) > 0))
30 $arFieldsMustBeSelected =
array (
'LESSON_ID',
'EDGE_SORT',
'IS_CHILDS');
31 foreach ($arFieldsMustBeSelected as $fieldName)
33 if ( ! in_array($fieldName, $arSelectFields) )
34 $arSelectFields[] = $fieldName;
38 $publishProhibitionContext =
false;
40 if ($publishProhibitionMode)
42 $publishProhibitionContext = (int) $rootLessonId;
46 "SELECT PROHIBITED_LESSON_ID
47 FROM b_learn_publish_prohibition
48 WHERE COURSE_LESSON_ID = $publishProhibitionContext",
55 while ($arData = $rc->Fetch())
56 $this->arPublishProhibitedLessons[] = (int) $arData[
'PROHIBITED_LESSON_ID'];
59 $arCurrentPath =
array($rootLessonId);
162 $arLessons =
array();
165 while (($arData = $CDBResult->Fetch()) !==
false)
168 if ( in_array($arData[
'LESSON_ID'], $this->arLessonsInTree) )
172 if (in_array( (
int) $arData[
'LESSON_ID'], $this->arPublishProhibitedLessons,
true))
176 $arCurrentLessonPath = $arRootPath;
177 $arCurrentLessonPath[] = (int) $arData[
'LESSON_ID'];
178 $oPath->SetPathFromArray($arCurrentLessonPath);
179 $strUrlencodedCurrentLessonPath = $oPath->ExportUrlencoded();
183 $this->arLessonsInTree[] = $arData[
'LESSON_ID'];
184 $this->arLessonsAsList[] = array_merge(
187 '#DEPTH_IN_TREE' => $depth,
188 '#LESSON_PATH' => $strUrlencodedCurrentLessonPath
196 $this->arLessonsAsListOldMode[
'LE' . $arData[
'LESSON_ID']] =
array();
197 $this->arLessonsAsListOldMode[
'CH' . $arData[
'LESSON_ID']] =
array();
200 $item[
'#childs'] =
array();
201 $lessonType_oldDataModel =
'LE';
203 if ($arData[
'IS_CHILDS'])
205 $lessonType_oldDataModel =
'CH';
207 $arData[
'LESSON_ID'],
211 $arData[
'LESSON_ID'],
217 if (
count($item[
'#childs']) == 0)
218 $lessonType_oldDataModel =
'LE';
222 if ($lessonType_oldDataModel ===
'LE')
223 unset($this->arLessonsAsListOldMode[
'CH' . $arData[
'LESSON_ID']]);
225 unset($this->arLessonsAsListOldMode[
'LE' . $arData[
'LESSON_ID']]);
227 $this->arLessonsAsListOldMode[$lessonType_oldDataModel . $arData[
'LESSON_ID']] = array_merge(
230 'ID' => $arData[
'LESSON_ID'],
231 'CHAPTER_ID' => $parentChapterId,
232 'SORT' => $arData[
'EDGE_SORT'],
233 'TYPE' => $lessonType_oldDataModel,
234 'DEPTH_LEVEL' => $depth + 1,
235 '#LESSON_PATH' => $strUrlencodedCurrentLessonPath
239 $arLessons[] = $item;