• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/clearnlesson.php
  • Класс: CLearnLesson
  • Вызов: CLearnLesson::PublishProhibitionSetTo
static function PublishProhibitionSetTo ($in_lessonId, $in_contextCourseLessonId, $in_isProhibited)
{
	global $DB;

	self::_EnsureArgsStrictlyCastableToIntegers ($in_lessonId, $in_contextCourseLessonId);
	if ( ! is_bool($in_isProhibited) )
	{
		throw new LearnException ('EA_PARAMS: isProhibited',
			LearnException::EXC_ERR_ALL_LOGIC | LearnException::EXC_ERR_ALL_PARAMS);
	}

	$lessonId              = (int) $in_lessonId;
	$contextCourseLessonId = (int) $in_contextCourseLessonId;

	$isProhibitedNow = self::IsPublishProhibited ($lessonId, $contextCourseLessonId);

	// Update status only if it was changed
	if ($isProhibitedNow !== $in_isProhibited)
	{
		if ($in_isProhibited)
		{
			$sql = "INSERT INTO b_learn_publish_prohibition 
			(COURSE_LESSON_ID, PROHIBITED_LESSON_ID) 
			VALUES ($contextCourseLessonId, $lessonId)";
		}
		else
		{
			$sql = "DELETE FROM b_learn_publish_prohibition
			WHERE COURSE_LESSON_ID = $contextCourseLessonId
				AND PROHIBITED_LESSON_ID = $lessonId";
		}

		$rc = $DB->Query($sql, true);

		if ($rc === false)
			throw new LearnException ('EA_SQLERROR', LearnException::EXC_ERR_ALL_GIVEUP);

		CLearnCacheOfLessonTreeComponent::MarkAsDirty();

		BitrixLearningIntegrationSearch::indexLesson($lessonId);

		return (true);	// prohibition status changed
	}

	return (false);		// prohibition status not changed
}