• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/component/paysystem.php
  • Класс: BitrixSalesCenterComponentPaySystem
  • Вызов: PaySystem::getPaySystemMenu
private function getPaySystemMenu(array $paySystemActions): array
{
	$name = Loc::getMessage('SPP_PAYSYSTEM_ADD');

	foreach ($paySystemActions as $handler => $paySystems)
	{
		if (!$paySystems || empty($paySystems['ITEMS']))
		{
			continue;
		}

		$queryParams = [
			'lang' => LANGUAGE_ID,
			'publicSidePanel' => 'Y',
			'CREATE' => 'Y',
			'ACTION_FILE' => mb_strtolower($handler),
		];

		if ($paySystems['PS_MODE'])
		{
			foreach ($paySystems['ITEMS'] as $psMode => $paySystem)
			{
				if (!$paySystem)
				{
					continue;
				}

				$queryParams['PS_MODE'] = $psMode;
				$paySystemPath = $this->getPaySystemComponentPath();
				$paySystemPath->addParams($queryParams);

				$items = $paySystemActions[$handler]['ITEMS'][$psMode]['ITEMS']
					?? $paySystemActions[$handler]['ITEMS'][$psMode]
				;
				array_unshift($items,
					[
						'NAME' => $name,
						'LINK' => $paySystemPath->getLocator(),
					],
					[
						'DELIMITER' => true,
					]
				);
				if (isset($paySystemActions[$handler]['ITEMS'][$psMode]['ITEMS']))
				{
					$paySystemActions[$handler]['ITEMS'][$psMode]['ITEMS'] = $items;
				}
				else
				{
					$paySystemActions[$handler]['ITEMS'][$psMode] = $items;
				}
			}
		}
		else
		{
			$paySystemPath = $this->getPaySystemComponentPath();
			$paySystemPath->addParams($queryParams);

			array_unshift($paySystemActions[$handler]['ITEMS'],
				[
					'NAME' => $name,
					'LINK' => $paySystemPath->getLocator(),
				],
				[
					'DELIMITER' => true,
				]
			);
		}
	}

	return $paySystemActions;
}