• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Marketplace/Placement.php
  • Класс: BitrixImV2MarketplacePlacement
  • Вызов: Placement::onRestServiceBuildDescription
static function onRestServiceBuildDescription(): array
{
	return [
		CRestUtil::GLOBAL_SCOPE => [
			CRestUtil::PLACEMENTS => [
				self::IM_CONTEXT_MENU => [
					'options' => [
						'extranet' => [
							'type' => 'string',
							'default' => 'N',
							'require' => false,
						],
						'context' => [
							'type' => 'string',
							'default' => 'ALL',
							'require' => false,
						],
						'role' => [
							'type' => 'string',
							'default' => 'USER',
							'require' => false,
						],
					],
					'registerCallback' => [
						'moduleId' => 'im',
						'callback' => [self::class, 'onRegisterPlacementContextMenu'],
					],
				],
				self::IM_NAVIGATION => [
					'options' => [
						'iconName' => [
							'type' => 'string',
							'require' => true,
						],
						'extranet' => [
							'type' => 'string',
							'default' => 'N',
							'require' => false,
						],
						'role' => [
							'type' => 'string',
							'default' => 'USER',
							'require' => false,
						],
					],
					'registerCallback' => [
						'moduleId' => 'im',
						'callback' => [self::class, 'onRegisterPlacementNavigation'],
					],
				],
				self::IM_TEXTAREA => [
					'options' => [
						'iconName' => [
							'type' => 'string',
							'require' => true,
						],
						'extranet' => [
							'type' => 'string',
							'default' => 'N',
							'require' => false,
						],
						'context' => [
							'type' => 'string',
							'default' => 'ALL',
							'require' => false,
						],
						'role' => [
							'type' => 'string',
							'default' => 'USER',
							'require' => false,
						],
						'color' => [
							'type' => 'string',
							'require' => false,
						],
						'width' => [
							'type' => 'int',
							'default' => 100,
							'require' => false,
						],
						'height' => [
							'type' => 'int',
							'default' => 100,
							'require' => false,
						]
					],
					'registerCallback' => [
						'moduleId' => 'im',
						'callback' => [self::class, 'onRegisterPlacementTextArea'],
					],
				],
				self::IM_SIDEBAR => [
					'options' => [
						'iconName' => [
							'type' => 'string',
							'require' => true,
						],
						'extranet' => [
							'type' => 'string',
							'default' => 'N',
							'require' => false,
						],
						'context' => [
							'type' => 'string',
							'default' => 'ALL',
							'require' => false,
						],
						'role' => [
							'type' => 'string',
							'default' => 'USER',
							'require' => false,
						],
						'color' => [
							'type' => 'string',
							'require' => false,
						],
					],
					'registerCallback' => [
						'moduleId' => 'im',
						'callback' => [self::class, 'onRegisterPlacementSidebar'],
					],
				],
				self::IM_SMILES_SELECTOR => [
					'options' => [
						'extranet' => [
							'type' => 'string',
							'default' => 'N',
							'require' => false,
						],
						'role' => [
							'type' => 'string',
							'default' => 'USER',
							'require' => false,
						],
						'context' => [
							'type' => 'string',
							'default' => 'ALL',
							'require' => false,
						],
					],
					'registerCallback' => [
						'moduleId' => 'im',
						'callback' => [self::class, 'onRegisterPlacementSmilesSelector'],
					],
				],
			],
		],
	];
}