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

	self::_EnsureArgsStrictlyCastableToIntegers ($in_lessonId, $in_purgeMode);

	$lessonId  = (int) $in_lessonId;
	$purgeMode = (int) $in_purgeMode;

	if ( ! in_array(
			$purgeMode,
			array(
				self::PUBLISH_PROHIBITION_PURGE_ALL_LESSONS_IN_COURSE_CONTEXT,
				self::PUBLISH_PROHIBITION_PURGE_LESSON_IN_ALL_COURSE_CONTEXT,
				self::PUBLISH_PROHIBITION_PURGE_BOTH	// ORed previous two elements
				),
			true
			)
	)
	{
		throw new LearnException ('EA_PARAMS: purgeMode',
			LearnException::EXC_ERR_ALL_LOGIC | LearnException::EXC_ERR_ALL_PARAMS);
	}

	$arSqlCondition = array();

	if ($purgeMode & self::PUBLISH_PROHIBITION_PURGE_ALL_LESSONS_IN_COURSE_CONTEXT)
		$arSqlCondition[] = 'COURSE_LESSON_ID = ' . $lessonId;

	if ($purgeMode & self::PUBLISH_PROHIBITION_PURGE_LESSON_IN_ALL_COURSE_CONTEXT)
		$arSqlCondition[] = 'PROHIBITED_LESSON_ID = ' . $lessonId;

	if (count($arSqlCondition) > 0)
	{
		$sqlCondition = implode(' OR ', $arSqlCondition);

		$rc = $DB->Query(
			"DELETE FROM b_learn_publish_prohibition
			WHERE " . $sqlCondition,
			true);

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

	CLearnCacheOfLessonTreeComponent::MarkAsDirty();
}