• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/workgrouplist.php
  • Класс: BitrixSocialnetworkComponentWorkgroupList
  • Вызов: WorkgroupList::getCellActions
static function getCellActions(
	WorkgroupListRuntimeFieldsManager $runtimeFieldsManager,
	$params
): array
{

	$gridId = (string)($params['GRID_ID'] ?? '');
	$groupFields = ($params['GROUP'] ?? null);
	if (
		!$groupFields
		|| $gridId === ''
	)
	{
		return [];
	}

	$runtimeFields = $runtimeFieldsManager->get();

	$entityManager = new EntityManager([
		'queryInitAlias' => $params['QUERY_INIT_ALIAS'],
	]);

	$group = $entityManager->wakeUpWorkgroupEntityObject($groupFields);
	if (!$group)
	{
		return [];
	}

	$groupId = (int)$group->get('ID');

	$pin = [];
	if (in_array('PIN', $runtimeFields, true))
	{
		$pinEntity = $entityManager->wakeUpPinEntityObject($groupFields);
		$isPinned = ($pinEntity !== null);

		$pin = [
			'class' => [
				GridCellActions::PIN,
				($isPinned ? GridCellActionState::ACTIVE : GridCellActionState::SHOW_BY_HOVER),
			],
			'events' => [
				'click' => 'BX.Socialnetwork.UI.Grid.ActionController
					.changePin.bind(BX.Socialnetwork.UI.Grid.ActionController, ' . $groupId . ')',
			],
		];
	}

	return [
		'NAME' => [
			$pin,
		],
	];
}