Поддержка серверов

CLearnAccessMacroses::getActiveLearningChaptersPeriod: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=175398

//    CLearnAccessMacroses::getActiveLearningChaptersPeriod()
//    /bitrix/modules/learning/classes/general/clearnaccessmacroses.php:419

    public static function getActiveLearningChaptersPeriod($courseLessonId, $userId)
    {
        $arGroupsPeriods = self::getActiveLearningGroupsPeriod($courseLessonId, $userId);
        if (!$arGroupsPeriods['IS_EXISTS'])
        {
            return false;
        }

        $arChaptersActiveFrom = array();
        $arGroupsActiveFrom = $arGroupsPeriods['GROUPS_ACTIVE_FROM'];

        $arLessons = array();
        $rs = CLearnLesson::GetListOfImmediateChilds(
            $courseLessonId,
            array(),
            array('CHECK_PERMISSIONS' => 'N'),
            array('LESSON_ID')
        );

        $arMinChaptersActiveFromTimestamp = array();
        while ($ar = $rs->fetch())
        {
            $arLessons[$ar['LESSON_ID']] = $ar['NAME'];
            $arChaptersActiveFrom[$ar['LESSON_ID']] = null;
            $arMinChaptersActiveFromTimestamp[$ar['LESSON_ID']] = PHP_INT_MAX;
        }

        // Get the nearest dates, when lesson can be opened
        foreach ($arGroupsActiveFrom as $groupId => $groupActiveFrom)
        {
            if ($groupActiveFrom === null)
            {
                continue;
            }

            $arDelays = CLearningGroupLesson::getDelays($groupId, array_keys($arLessons));
            $groupActiveFromTs = MakeTimeStamp($groupActiveFrom);

            foreach ($arDelays as $lessonId => $delay)
            {
                $fromTs = $groupActiveFromTs + 86400 * $delay;    // 24h is 86400 seconds

                // search for nearest dates
                if ($fromTs < $arMinChaptersActiveFromTimestamp[$lessonId])
                {
                    $arChaptersActiveFrom[$lessonId] = ConvertTimeStamp($fromTs, 'FULL');
                    $arMinChaptersActiveFromTimestamp[$lessonId] = $fromTs;
                }
            }
        }

        return ($arChaptersActiveFrom);
    }

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение