11 foreach ($arOrder as
$key => $value)
13 if (mb_strtoupper(
$key) ===
'ID')
15 $arOrder[
'COURSE_ID'] = $arOrder[
$key];
16 unset ($arOrder[
$key]);
24 if ((mb_strlen(
$key) >= 2) && (mb_strtoupper(mb_substr(
$key, -2)) ===
'ID'))
27 if ( ! preg_match (
"/[a-zA-Z_]+/", mb_substr(
$key, 0, -2)) )
30 if (mb_strlen(
$key) > 2)
31 $prefix = mb_substr(
$key, 0, -2);
39 $arFields[
'#REPLACE_COURSE_ID_TO_ID'] =
true;
59 if ( ! isset($arMap[
'C' . $courseId]) )
65 return ($arMap[
'C' . $courseId]);
77 $arMsg[] =
array(
"id"=>
"NAME",
"text"=>
GetMessage(
"LEARNING_BAD_NAME"));
82 $arMsg[] =
array(
"id"=>
"ACTIVE_FROM",
"text"=>
GetMessage(
"LEARNING_BAD_ACTIVE_FROM"));
87 $arMsg[] =
array(
"id"=>
"ACTIVE_TO",
"text"=>
GetMessage(
"LEARNING_BAD_ACTIVE_TO"));
95 $arMsg[] =
array(
"id"=>
"PREVIEW_PICTURE",
"text"=>
$error);
108 $arMsg[] =
array(
"id"=>
"SITE_ID[]",
"text"=>
GetMessage(
"LEARNING_BAD_SITE_ID"));
118 $tmp .=
"'".$lang.
"' - ".
GetMessage(
"LEARNING_BAD_SITE_ID_EX").
"<br>";
121 if (
$tmp!=
"") $arMsg[] =
array(
"id"=>
"SITE_ID[]",
"text"=>
$tmp);
127 $GLOBALS[
"APPLICATION"]->ThrowException($e);
155 if (
is_set(
$arFields,
"RATING_TYPE") && !in_array(
$arFields[
"RATING_TYPE"], Array(
"like",
"standart_text",
"like_graphic",
"standart")))
163 $arFieldsToUnset =
array (
'GROUP_ID',
'SITE_ID');
166 foreach ($arFieldsToUnset as
$key => $value)
167 if (array_key_exists($value, $arFieldsLesson))
168 unset ($arFieldsLesson[$value]);
178 $str_LID .=
", '".$DB->ForSql(
$lang).
"'";
179 $strSql =
"DELETE FROM b_learn_course_site WHERE COURSE_ID=".$ID;
183 "INSERT INTO b_learn_course_site(COURSE_ID, SITE_ID) ".
184 "SELECT ".$ID.
", LID ".
186 "WHERE LID IN (".$str_LID.
") ";
206 if (
$ID < 1)
return false;
223 if (
is_set(
$arFields,
"RATING_TYPE") && !in_array(
$arFields[
"RATING_TYPE"], Array(
"like",
"standart_text",
"like_graphic",
"standart")))
233 $arFieldsToUnset =
array (
'GROUP_ID',
'SITE_ID');
235 foreach ($arFieldsToUnset as
$key => $value)
236 if (array_key_exists($value, $arFieldsLesson))
237 unset ($arFieldsLesson[$value]);
244 $str_LID .=
", '".$DB->ForSql(
$lang).
"'";
246 $strSql =
"DELETE FROM b_learn_course_site WHERE COURSE_ID=".$ID;
250 "INSERT INTO b_learn_course_site(COURSE_ID, SITE_ID) ".
251 "SELECT ".$ID.
", LID ".
253 "WHERE LID IN (".$str_LID.
") ";
284 if ($lessonId ===
false)
299 if ( ($certificate ===
false) || ($certificate->GetNext()) )
318 return ($arGroupPermissions);
326 $strSql =
"SELECT L.*, CS.* FROM b_learn_course_site CS, b_lang L WHERE L.LID=CS.SITE_ID AND CS.COURSE_ID=".intval($COURSE_ID);
328 return $DB->Query($strSql);
335 $strSql =
"SELECT SITE_ID FROM b_learn_course_site WHERE COURSE_ID=" . ((int) $COURSE_ID);
337 $rc =
$DB->Query($strSql,
true);
342 if ( ! isset($row[
'SITE_ID']) )
345 return ($row[
'SITE_ID']);
353 $in_type = mb_strtoupper($in_type);
370 FROM b_learn_site_path TSP
371 WHERE TSP.SITE_ID='" .
$DB->ForSql(
$siteId) .
"' AND TSP.TYPE = '" .
$type .
"'";
373 $rc =
$DB->Query($strSql,
true);
378 while ($row = $rc->Fetch())
394 function FilterCreate($fname, $vals,
$type, &$bFullJoin, $cOperationType=
false, $bSkipEmpty =
true)
404 $arAddSelectFileds =
array(
"DETAIL_TEXT",
"DETAIL_TEXT_TYPE",
"DETAIL_PICTURE"),
405 $arSelectFields =
array()
410 $COURSE_ID = intval($COURSE_ID);
412 $CACHE_ID = ((string) $COURSE_ID) . sha1(serialize($arSelectFields));
415 array_key_exists($CACHE_ID,
$GLOBALS[
"LEARNING_CACHE_COURSE"])
416 && is_array(
$GLOBALS[
"LEARNING_CACHE_COURSE"][$CACHE_ID])
427 'CHECK_PERMISSIONS' =>
'N'
433 $arTree = $oTree->GetTreeAsListOldMode();
435 $GLOBALS[
"LEARNING_CACHE_COURSE"][$CACHE_ID] = $arTree;
438 $r =
new CDBResult();
439 $r->InitFromArray(
$GLOBALS[
"LEARNING_CACHE_COURSE"][$CACHE_ID]);
451 $rc =
$DB->Query(
"DELETE FROM b_learn_rights WHERE SUBJECT_ID='G" . (
int) $GROUP_ID .
"'",
true)
452 &&
$DB->Query(
"DELETE FROM b_learn_rights_all WHERE SUBJECT_ID='G" . (
int) $GROUP_ID .
"'",
true);
466 $bAllowDelete =
true;
470 $bAllowDelete =
false;
472 if ( ! $bAllowDelete )
475 return ($bAllowDelete);
491 $seconds = intval($seconds);
495 $days = intval($seconds/86400);
499 $seconds = $seconds - $days*86400;
502 $hours = intval($seconds/3600);
506 $seconds = $seconds -
$hours*3600;
509 $minutes = intval($seconds/60);
513 $seconds = $seconds - $minutes*60;
523 public static function OnSearchReindex($nextStep = [], $callbackObject =
null, $callbackMethod =
"")
557 static $accessMatrix =
false;
559 $courseId = (int) $courseId;
561 if ( ! ($courseId > 0) )
566 if ( ! ($linkedLessonId > 0) )
571 if ($accessMatrix ===
false)
573 $accessMatrix =
array(
596 foreach ($accessMatrix as $oldAccessSymbol => $operations)
598 if (
$oAccess->IsBaseAccess($operations)
599 ||
$oAccess->IsLessonAccessible($linkedLessonId, $operations)
602 return ($oldAccessSymbol);
static handleReindex($nextStep=[], $callbackObject=null, $callbackMethod="")
static indexLesson($lessonId)
static GetList($arOrder=array(), $arFilter=array(), $arNavParams=array())
static SetPermission($param1, $param2)
CheckFields($arFields, $ID=false)
static GetPermission($courseId)
static CourseGetLinkedLesson($courseId)
GetGroupPermissions($COURSE_ID)
FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType=false, $bSkipEmpty=true)
static OnUserDelete($user_id)
static OnSearchReindex($nextStep=[], $callbackObject=null, $callbackMethod="")
static GetCourseContent( $COURSE_ID, $arAddSelectFileds=array("DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DETAIL_PICTURE"), $arSelectFields=array())
static GetSiteId($COURSE_ID)
static OnBeforeLangDelete($lang)
static GetSite($COURSE_ID)
static IsCertificatesExists($courseId)
static GetList($arOrder=array(), $arFields=array(), $arNavParams=array())
static TimeToStr($seconds)
static OnGroupDelete($GROUP_ID)
static GetSitePathes($siteId, $in_type='U')
static GetInstance($in_userId)
const OP_LESSON_UNLINK_FROM_PARENTS
const OP_LESSON_MANAGE_RIGHTS
const OP_LESSON_LINK_DESCENDANTS
const OP_LESSON_UNLINK_DESCENDANTS
static GetSymbolsAccessibleToLesson($in_lessonId, $in_bitmaskOperations, $isUseCache=false)
const OP_LESSON_LINK_TO_PARENTS
static FilterCreate($fname, $vals, $type, &$bFullJoin, $cOperationType=false, $bSkipEmpty=true)
static MkOperationFilter($key)
static GetLinkedCourse($lessonId)
static Delete($lesson_id)
static GetCourseToLessonMap($bRefreshCache=false)
static Add($arFields, $isCourse=false, $parentLessonId=true, $arProperties=array('SORT'=> 500), $isCheckPermissions=true, $checkPermissionsForUserId=-1)
static Update($id, $arFields)
static GetTree( $lessonId, $arOrder=array('EDGE_SORT'=> 'asc'), $arFilter=array(), $publishProhibitionMode=true, $arSelectFields=array())
static GetList($arOrder=array(), $arFilter=array(), $arSelectFields=array(), $arNavParams=array())
const EXC_ERR_ALL_NOT_EXISTS
if(!is_array($prop["VALUES"])) $tmp
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!defined('SITE_ID')) $lang
GetMessage($name, $aReplace=null)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
$GLOBALS['_____370096793']