• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/iblockproptools.php
  • Класс: CIBlockPropertyTools
  • Вызов: CIBlockPropertyTools::getPropertyDescription
static function getPropertyDescription(
	string $code,
	array $fields = []
): ?array
{
	switch($code)
	{
		case self::CODE_MORE_PHOTO:
			$name = Loc::getMessage('IBPT_PROP_TITLE_MORE_PHOTO');
			if (isset($fields['IBLOCK_ID']))
			{
				if (Loader::includeModule('catalog'))
				{
					$catalog = CCatalogSku::GetInfoByIBlock($fields['IBLOCK_ID']);
					if (!empty($catalog))
					{
						$name =
							$catalog['CATALOG_TYPE'] === CCatalogSku::TYPE_OFFERS
							? Loc::getMessage('IBPT_PROP_TITLE_PRODUCT_VARIATION_MORE_PHOTO')
							: Loc::getMessage('IBPT_PROP_TITLE_PRODUCT_MORE_PHOTO')
						;
					}
				}
			}
			$property = [
				'PROPERTY_TYPE' => IblockPropertyTable::TYPE_FILE,
				'NAME' => $name,
				'CODE' => self::CODE_MORE_PHOTO,
				'XML_ID' => self::XML_MORE_PHOTO,
				'MULTIPLE' => 'Y',
				'MULTIPLE_CNT' => 1,
				'FILE_TYPE' => 'jpg, gif, bmp, png, jpeg, webp',
				'WITH_DESCRIPTION' => 'Y',
			];
			break;
		case self::CODE_SKU_LINK:
			$property = [
				'PROPERTY_TYPE' => IblockPropertyTable::TYPE_ELEMENT,
				'USER_TYPE' => CIBlockPropertySKU::USER_TYPE,
				'NAME' => Loc::getMessage('IBPT_PROP_TITLE_SKU_LINK'),
				'CODE' => self::CODE_SKU_LINK,
				'XML_ID' => self::XML_SKU_LINK,
				'FILTRABLE' => 'Y',
			];
			break;
		case self::CODE_BLOG_POST:
			$property = [
				'PROPERTY_TYPE' => IblockPropertyTable::TYPE_NUMBER,
				'NAME' => Loc::getMessage('IBPT_PROP_TITLE_BLOG_POST'),
				'CODE' => self::CODE_BLOG_POST,
				'XML_ID' => self::XML_BLOG_POST,
			];
			break;
		case self::CODE_BLOG_COMMENTS_COUNT:
			$property = [
				'PROPERTY_TYPE' => IblockPropertyTable::TYPE_NUMBER,
				'NAME' => Loc::getMessage('IBPT_PROP_TITLE_BLOG_COMMENTS_COUNT'),
				'CODE' => self::CODE_BLOG_COMMENTS_COUNT,
				'XML_ID' => self::XML_BLOG_COMMENTS_COUNT,
			];
			break;
		case self::CODE_ARTNUMBER:
			$property = [
				'PROPERTY_TYPE' => IblockPropertyTable::TYPE_STRING,
				'NAME' => Loc::getMessage('IBPT_PROP_TITLE_ARTNUMBER'),
				'CODE' => self::CODE_ARTNUMBER,
				'XML_ID' => self::XML_ARTNUMBER,
			];
			break;
		case self::CODE_BACKGROUND_IMAGE:
			$property = [
				'PROPERTY_TYPE' => IblockPropertyTable::TYPE_STRING,
				'NAME' => Loc::getMessage('IBPT_PROP_TITLE_BACKGROUND_IMAGE'),
				'CODE' => self::CODE_BACKGROUND_IMAGE,
				'XML_ID' => self::XML_BACKGROUND_IMAGE,
			];
			break;
		case self::CODE_BRAND_FOR_FACEBOOK:
			$property = [
				'PROPERTY_TYPE' => IblockPropertyTable::TYPE_STRING,
				'NAME' => Loc::getMessage('IBPT_PROP_TITLE_BRAND_FOR_FACEBOOK'),
				'CODE' => self::CODE_BRAND_FOR_FACEBOOK,
				'XML_ID' => self::XML_BRAND_FOR_FACEBOOK,
				'MULTIPLE' => 'Y',
				'USER_TYPE' => 'directory',
				'USER_TYPE_SETTINGS' => [
					'TABLE_NAME' => 'b_catalog_facebook_brand_reference',
				],
			];
			break;
		default:
			$property = null;
			break;
	}
	if ($property !== null)
	{
		$property += [
			'ACTIVE' => 'Y',
			'SORT' => 500,
			'MULTIPLE' => 'N',
			'USER_TYPE' => null,
		];
		if (!empty($fields))
		{
			$property = $fields + $property;
		}
	}

	return $property;
}