• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/course.php
  • Класс: CCourse
  • Вызов: CCourse::Update
function Update($ID, $arFields)
{
	global $DB;

	$ID = intval($ID);
	if ($ID < 1) return false;

	if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y")
		$arFields["ACTIVE"] = "N";

	if (is_set($arFields, "DESCRIPTION_TYPE") && $arFields["DESCRIPTION_TYPE"] != "html")
		$arFields["DESCRIPTION_TYPE"] = "text";

	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, "RATING") && !in_array($arFields["RATING"], Array("Y", "N")))
		$arFields["RATING"] = NULL;

	if (is_set($arFields, "RATING_TYPE") && !in_array($arFields["RATING_TYPE"], Array("like", "standart_text", "like_graphic", "standart")))
		$arFields["RATING_TYPE"] = NULL;

	$lessonId = self::CourseGetLinkedLesson ($ID);
	if ($this->CheckFields($arFields, $ID) && $lessonId !== false)
	{
		if (array_key_exists('ID', $arFields))
			unset($arFields["ID"]);

		$arFieldsLesson = $arFields;
		$arFieldsToUnset = array ('GROUP_ID', 'SITE_ID');

		foreach ($arFieldsToUnset as $key => $value)
			if (array_key_exists($value, $arFieldsLesson))
				unset ($arFieldsLesson[$value]);

		//Sites
		if(is_set($arFields, "SITE_ID"))
		{
			$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__); } CLearnLesson::Update($lessonId, $arFieldsLesson); global $CACHE_MANAGER; $CACHE_MANAGER->ClearByTag('LEARN_COURSE_'.$ID); return true; } return false; }