• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblock.php
  • Класс: CWebDavIblock
  • Вызов: CWebDavIblock::ValidatePropertyValues
function ValidatePropertyValues($ID, $arProperties, $iblockId = null)
{
	if($iblockId === null)
	{
		$iblockId = $this->IBLOCK_ID;
	}
	$result = true;
	$arPropNames = array_keys($arProperties);

	if (empty($arPropNames))
		return $result;

	foreach ($arProperties as $code => $value)
	{
		$dbProps = CIBlockElement::GetProperty($iblockId, $ID, array(), array('CODE' => $code, 'ACTIVE' => 'Y'));

		if (
			$dbProps
			&& ($arProp = $dbProps->Fetch())
		)
		{
			if ($arProp['PROPERTY_TYPE'] == 'F')
			{
				if (((int) $arProp['VALUE']) > 0)
				{
					$arFile = CFile::GetFileArray($arProp['VALUE']);
					if (
						is_array($arFile)
						&& isset($arFile['FILE_SIZE'])
						&& (empty($arProperties[$code]['size']) && !empty($arFile['FILE_SIZE']) || $arFile['FILE_SIZE'] == $arProperties[$code]['size'])
					)
					{
						unset($arProperties[$code]);
					}
				}
			}
			else
			{
				if ($arProp['VALUE'] == $arProperties[$code])
				{
					unset($arProperties[$code]);
				}
			}
		}
	}

	$result = (sizeof($arProperties) <= 0);
	return $result;
}