Esempio n. 1
0
?>
">
	</td>
</tr>
<?php 
$tabControl->EndCustomField("SORT");
$tabControl->AddSection("LEARNING_ACTIVATION_SCHEDULE", GetMessage('LEARNING_ACTIVATION_SCHEDULE'));
$tabControl->BeginCustomField("PROPERTY_2", GetMessage('LEARNING_ACTIVATION_SCHEDULE_TITLE'), false);
$html = '<table cellpadding="0" cellspacing="0" border="0" class="nopadding" width="100%" id="tb' . md5($name) . '">';
$arLessons = $arDelays = array();
if ($ID && $str_COURSE_LESSON_ID) {
    $rs = CLearnLesson::GetListOfImmediateChilds($str_COURSE_LESSON_ID, array('SORT' => 'ASC'));
    while ($ar = $rs->getNext()) {
        $arLessons[$ar['LESSON_ID']] = $ar['NAME'];
    }
    $arDelays = CLearningGroupLesson::getDelays($ID, array_keys($arLessons));
    foreach ($arLessons as $lessonId => $lessonName) {
        $period = $arDelays[$lessonId];
        $html .= '<tr><td>';
        $html .= $lessonName;
        $html .= '</td><td>';
        $html .= '<input type="text" name="PERIOD_L[' . $lessonId . ']" size="4" maxlength="5" value="' . htmlspecialcharsbx($period) . '">';
        $html .= '</td></tr>';
    }
} else {
    $html .= GetMessage('LEARNING_AVAILABLE_AFTER_ELEMENT_CREATION');
}
$html .= '</table>';
?>
<tr id="tr_PROPERTY_2">
	<td class="adm-detail-valign-top" width="40%"><?php 
Esempio n. 2
0
 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;
 }