• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/config/option.php
  • Класс: BitrixMainConfigOption
  • Вызов: Option::delete
static function delete($moduleId, array $filter = array())
{
	if ($moduleId == '')
	{
		throw new MainArgumentNullException("moduleId");
	}

	$con = MainApplication::getConnection();
	$sqlHelper = $con->getSqlHelper();

	$deleteForSites = true;
	$sqlWhere = $sqlWhereSite = "";

	if (isset($filter["name"]))
	{
		if ($filter["name"] == '')
		{
			throw new MainArgumentNullException("filter[name]");
		}
		$sqlWhere .= " AND NAME = '{$sqlHelper->forSql($filter["name"])}'";
	}
	if (isset($filter["site_id"]))
	{
		if($filter["site_id"] <> "")
		{
			$sqlWhereSite = " AND SITE_ID = '{$sqlHelper->forSql($filter["site_id"], 2)}'";
		}
		else
		{
			$deleteForSites = false;
		}
	}
	if($moduleId == 'main')
	{
		$sqlWhere .= "
			AND NAME NOT LIKE '~%'
			AND NAME NOT IN ('crc_code', 'admin_passwordh', 'server_uniq_id','PARAM_MAX_SITES', 'PARAM_MAX_USERS')
		";
	}
	else
	{
		$sqlWhere .= " AND NAME <> '~bsm_stop_date'";
	}

	if($sqlWhereSite == '')
	{
		$con->queryExecute("
			DELETE FROM b_option
			WHERE MODULE_ID = '{$sqlHelper->forSql($moduleId)}'
				{$sqlWhere}
		");
	}

	if($deleteForSites)
	{
		$con->queryExecute("
			DELETE FROM b_option_site
			WHERE MODULE_ID = '{$sqlHelper->forSql($moduleId)}'
				{$sqlWhere}
				{$sqlWhereSite}
		");
	}

	static::clearCache($moduleId);
}