- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/course.php
- Класс: CCourse
- Вызов: CCourse::Add
function Add($arFields)
{
global $DB;
if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y")
$arFields["ACTIVE"] = "N";
if (is_set($arFields, "DETAIL_TEXT_TYPE") && $arFields["DETAIL_TEXT_TYPE"] != "html")
$arFields["DETAIL_TEXT_TYPE"] = "text";
if (is_set($arFields, "PREVIEW_TEXT_TYPE") && $arFields["PREVIEW_TEXT_TYPE"] != "html")
$arFields["PREVIEW_TEXT_TYPE"]="text";
if (is_set($arFields, "PREVIEW_PICTURE") && $arFields["PREVIEW_PICTURE"]["name"] == '' && $arFields["PREVIEW_PICTURE"]["del"] == '')
unset($arFields["PREVIEW_PICTURE"]);
if (is_set($arFields, "RATING") && !in_array($arFields["RATING"], Array("Y", "N")))
$arFields["RATING"] = "N";
if (is_set($arFields, "RATING_TYPE") && !in_array($arFields["RATING_TYPE"], Array("like", "standart_text", "like_graphic", "standart")))
$arFields["RATING_TYPE"] = NULL;
if($this->CheckFields($arFields))
{
unset($arFields["ID"]);
$arFieldsLesson = $arFields;
$arFieldsToUnset = array ('GROUP_ID', 'SITE_ID');
// Some fields mustn't be in unilesson
foreach ($arFieldsToUnset as $key => $value)
if (array_key_exists($value, $arFieldsLesson))
unset ($arFieldsLesson[$value]);
$lessonId = CLearnLesson::Add ($arFieldsLesson, $isCourse = true);
$ID = CLearnLesson::GetLinkedCourse ($lessonId);
if ($ID === false)
return (false);
//Sites
$str_LID = "''";
foreach($arFields["SITE_ID"] as $lang)
$str_LID .= ", '".$DB->ForSql($lang)."'";
$strSql = "DELETE FROM b_learn_course_site WHERE COURSE_ID=".$ID;
$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
$strSql =
"INSERT INTO b_learn_course_site(COURSE_ID, SITE_ID) ".
"SELECT ".$ID.", LID ".
"FROM b_lang ".
"WHERE LID IN (".$str_LID.") ";
$DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
BitrixLearningIntegrationSearch::indexLesson($lessonId);
CLearnCacheOfLessonTreeComponent::MarkAsDirty();
return $ID;
}
return false;
}