- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/grouplesson.php
- Класс: CLearningGroupLesson
- Вызов: CLearningGroupLesson::setDelays
static function setDelays($learningGroupId, $arDelays)
{
if ( ! is_array($arDelays) )
return false;
$learningGroupId = (int) $learningGroupId;
$arLessonsIds = array();
// first, collect lessons ids
foreach ($arDelays as $lessonId => $delay)
$arLessonsIds[] = (int) $lessonId;
$arLessonsIds = array_unique(array_filter($arLessonsIds));
// determine already registered delays in DB
$arRegistered = array();
if ( ! empty($arLessonsIds) )
{
$rs = self::getList(
array(),
array(
'LEARNING_GROUP_ID' => $learningGroupId,
'LESSON_ID' => $arLessonsIds
),
array('LESSON_ID')
);
while ($ar = $rs->fetch())
$arRegistered[] = (int) $ar['LESSON_ID'];
}
$arRegistered = array_unique(array_filter($arRegistered));
// Do update/add
foreach ($arDelays as $lessonId => $delay)
{
$arFields = array(
'DELAY' => abs((int)$delay),
'LESSON_ID' => (int) $lessonId,
'LEARNING_GROUP_ID' => $learningGroupId
);
if (in_array((int)$lessonId, $arRegistered, true))
self::update($arFields);
else
self::add($arFields);
}
}