Использование кастомного модуля для личного кабинета, работающего в пространстве имен carbon\modules.
Таким образом можно изменять стандартные модули carbon или создавать собственные.
Тестирование
Модуль необходимо разместить в рабочем каталоге:
/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
Выпуск
Когда модуль будет готов, его необходимо скопировать в каталог хранения:
/app/asr_cabinet/var/cabinet_modules/
Так пользовательский модуль не исчезнет во время обновления, а также попадёт в бекап личного кабинета.
Внимание! Файлы из каталога хранения затирают более старые файлы в рабочем каталоге (для того, чтобы можно было заменять стандартные модули)
Это значит, что если в каталоге хранения будет находиться файл, не являющийся модулем, может перестать работать личный кабинет. |
Алгоритм
- Реализуем и тестируем пользовательский модуль в /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
- Копируем модуль в /app/asr_cabinet/var/cabinet_modules/.
- При обновлении личного кабинета
- Перезаписываются модули в /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
- Копируются пользовательские модули из /app/asr_cabinet/var/cabinet_modules/ в /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
Примеры
Задача. Необходимо заменить описание для авто платежей Paymaster.
chroot /app/asr_cabinet/ # копируем стандартный модуль, все изменения будут происходить в новом файле. cp -p /usr/local/lib/cabinet_modules/modules/AutopayPayment.php /usr/local/lib/cabinet_modules/modules/AutopayPaymentPaymaster.php
# находим блок public function processPOST_paymaster($POST) $params = Array( 'LMI_MERCHANT_ID' => $login, 'LMI_PAYMENT_AMOUNT' => $sum, 'LMI_CURRENCY' => "RUB", 'LMI_PAYMENT_DESC_BASE64' => base64_encode('Подключение автоплатежей'), 'LMI_PAYMENT_NO' => $order_id, 'LMI_CREATE_TOKEN' => 'True', 'LMI_PAYMENT_METHOD' => 'BankCard' ); # нас интересует параметр 'LMI_PAYMENT_DESC_BASE64' => base64_encode('Подключение автоплатежей'), # Мы хотим передавать в этом параметре номер договора # $contract_number = $this->user_info()->contract_number; # получаем номер договора перед $params # заменяем на 'LMI_PAYMENT_DESC_BASE64' => base64_encode("МОЙ ТЕКСТ " . $contract_number), $login = $this->fiscal_config->paymaster["login"][0]; $sum = $payResult->summa_in; $order_id = $payResult->operation_id_out; $contract_number = $this->user_info()->contract_number; $params = Array( 'LMI_MERCHANT_ID' => $login, 'LMI_PAYMENT_AMOUNT' => $sum, 'LMI_CURRENCY' => "RUB", 'LMI_PAYMENT_DESC_BASE64' => base64_encode("МОЙ ТЕКСТ " . $contract_number), 'LMI_PAYMENT_NO' => $order_id, 'LMI_CREATE_TOKEN' => 'True', 'LMI_PAYMENT_METHOD' => 'BankCard' ); # сохраняем изменения
Копируем новый модуль в каталог /app/asr_cabinet/var/cabinet_modules/
cp -p /usr/local/lib/cabinet_modules/modules/AutopayPaymentPaymaster.php /var/cabinet_modules/AutopayPaymentPaymaster.php
В личном кабинете для вызова этого модуля будет использоваться следующий код
[cabinet_autopay_payment_paymaster operator="paymaster"]