• Модуль: abtest
  • Путь к файлу: ~/bitrix/modules/abtest/lib/eventhandler.php
  • Класс: BitrixABTestEventHandler
  • Вызов: EventHandler::onGetAttributeTypes
static function onGetAttributeTypes()
{
	$sections = array(
		'A' => array('NAME' => LocalizationLoc::getMessage('ABTEST_CONV_TEST_SECTION_A_NAME')),
		'B' => array('NAME' => LocalizationLoc::getMessage('ABTEST_CONV_TEST_SECTION_B_NAME'))
	);

	return array(
		'abtest' => array(
			'MODULE' => 'abtest',
			'NAME'   => LocalizationLoc::getMessage('ABTEST_CONVATTR_TEST_NAME'),
			'SORT'   => 5000,
			'GET_VALUES' => function(array $ids)
			{
				$result = ABTestTable::getList(array(
					'select' => array('ID', 'NAME'),
					'filter' => array('ID' => $ids),
					'order'  => array('SORT' => 'ASC'),
				));

				$values = array();
				while ($abtest = $result->fetch())
				{
					if (empty($abtest['NAME']))
						$abtest['NAME'] = str_replace('#ID#', $abtest['ID'], LocalizationLoc::getMessage('ABTEST_CONV_TEST_TITLE'));

					$values[$abtest['ID']] = array(
						'NAME' => $abtest['NAME']
					);
				}

				return $values;
			}
		),
		'abtest_section' => array(
			'MODULE' => 'abtest',
			'NAME'   => LocalizationLoc::getMessage('ABTEST_CONVATTR_TEST_SECTION_NAME'),
			'SORT'   => 5100,
			'GET_VALUES' => function(array $ids) use ($sections)
			{
				$values = array();
				foreach ($ids as $id)
				{
					if (!empty($sections[$id]))
						$values[$id] = $sections[$id];
				}

				return $values;
			}
		),
	);
}