- Модуль: 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;
}