• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/comp_pricetools.php
  • Класс: CIBlockPriceTools
  • Вызов: CIBlockPriceTools::checkPropDirectory
static function checkPropDirectory(&$property, $getPropInfo = false)
{
	if (empty($property) || !is_array($property))
		return false;
	if (!isset($property['USER_TYPE_SETTINGS']['TABLE_NAME']) || empty($property['USER_TYPE_SETTINGS']['TABLE_NAME']))
		return false;
	if (self::$highLoadInclude === null)
		self::$highLoadInclude = Loader::includeModule('highloadblock');
	if (!self::$highLoadInclude)
		return false;

	$highBlock = HighloadBlockTable::getList(array(
		'filter' => array('=TABLE_NAME' => $property['USER_TYPE_SETTINGS']['TABLE_NAME'])
	))->fetch();
	if (!isset($highBlock['ID']))
		return false;

	$entity = HighloadBlockTable::compileEntity($highBlock);
	$fieldsList = $entity->getFields();
	if (empty($fieldsList))
		return false;

	$requireFields = array(
		'ID',
		'UF_XML_ID',
		'UF_NAME',
	);
	foreach ($requireFields as &$fieldCode)
	{
		if (!isset($fieldsList[$fieldCode]) || empty($fieldsList[$fieldCode]))
			return false;
	}
	unset($fieldCode);
	if ($getPropInfo)
	{
		$property['USER_TYPE_SETTINGS']['FIELDS_MAP'] = $fieldsList;
		$propInfo['USER_TYPE_SETTINGS']['ENTITY'] = $entity;
	}
	return true;
}