- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/clearnlesson.php
- Класс: CLearnLesson
- Вызов: CLearnLesson::_CanonizeAndCheckAdditionalParamsForAddCourse
static function _CanonizeAndCheckAdditionalParamsForAddCourse ($arFields, $forUpdate = false)
{
if ( ! is_array($arFields) )
throw new LearnException ('EA_PARAMS', LearnException::EXC_ERR_ALL_PARAMS);
$arAllowedFields = array ('COURSE_SORT', 'ACTIVE_FROM', 'ACTIVE_TO', 'RATING', 'RATING_TYPE', 'SCORM');
if ( ! $forUpdate )
{
$defaultsValues = array (
'COURSE_SORT' => 500,
'ACTIVE_FROM' => NULL,
'ACTIVE_TO' => NULL,
'RATING' => 'N',
'RATING_TYPE' => NULL,
'SCORM' => 'N'
);
// set defaults values, if need
foreach ($defaultsValues as $fieldName => $defaultValue)
{
if ( ! array_key_exists($fieldName, $arFields) )
$arFields[$fieldName] = $defaultValue;
}
}
// check for admitted regions (do all checks only if not forUpdate mode OR in forUpdate mode and field given):
// COURSE_SORT
if ( ( ! $forUpdate) || array_key_exists('COURSE_SORT', $arFields) )
self::_EnsureArgsStrictlyCastableToIntegers ($arFields['COURSE_SORT']);
// ACTIVE_FROM
if ( ( ! $forUpdate) || isset($arFields['ACTIVE_FROM']) )
{
if ( ($arFields['ACTIVE_FROM'] !== NULL)
&& ( ! is_string($arFields['ACTIVE_FROM']) )
)
{
throw new LearnException ('EA_PARAMS', LearnException::EXC_ERR_ALL_PARAMS);
}
}
// ACTIVE_TO
if ( ( ! $forUpdate) || isset($arFields['ACTIVE_TO']) )
{
if ( ($arFields['ACTIVE_TO'] !== NULL)
&& ( ! is_string($arFields['ACTIVE_TO']) )
)
{
throw new LearnException ('EA_PARAMS', LearnException::EXC_ERR_ALL_PARAMS);
}
}
// RATING
if ( ( ! $forUpdate) || array_key_exists('RATING', $arFields) )
{
if ($arFields['RATING'] === '')
$arFields['RATING'] = NULL;
if ( ! in_array ($arFields['RATING'], array ('Y', 'N', NULL), true) )
throw new LearnException ('EA_PARAMS: RATING is ' . $arFields['RATING'], LearnException::EXC_ERR_ALL_PARAMS);
}
// RATING_TYPE
if ( ( ! $forUpdate) || array_key_exists('RATING_TYPE', $arFields) )
{
if ( ($arFields['RATING_TYPE'] !== NULL)
&&
( ! in_array (
$arFields['RATING_TYPE'],
array ('like', 'standart_text', 'like_graphic', 'standart'),
true)
)
)
{
throw new LearnException ('EA_PARAMS', LearnException::EXC_ERR_ALL_PARAMS);
}
}
// SCORM
if ( ( ! $forUpdate) || array_key_exists('SCORM', $arFields) )
{
if ( ! in_array ($arFields['SCORM'], array ('Y', 'N'), true) )
throw new LearnException ('EA_PARAMS', LearnException::EXC_ERR_ALL_PARAMS);
}
// Return only exists fields (some fields may be omitted in case $forUpdate = true)
$rc = array();
foreach ($arAllowedFields as $fieldName)
{
if (array_key_exists($fieldName, $arFields))
$rc[$fieldName] = $arFields[$fieldName];
}
return ($rc);
}