Использование кастомного модуля для личного кабинета, работающего в пространстве имен carbon\modules.
Таким образом можно изменять стандартные модули carbon или создавать собственные.
Тестирование
Модуль необходимо разместить в рабочем каталоге:
/app/asr_cabinet/usr/local/lib/cabinet_modules
Выпуск
Когда модуль будет готов, его необходимо скопировать в каталог хранения:
/app/asr_cabinet/var/cabinet_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'q ); #нас интересует парамерты 'LMI_PAYMENT_DESC_BASE64' => base64_encode('Подключение автоплатежей'), #заменяем на 'LMI_PAYMENT_DESC_BASE64' => base64_encode($result->comment), $params = Array( 'LMI_MERCHANT_ID' => $login, 'LMI_PAYMENT_AMOUNT' => $sum, 'LMI_CURRENCY' => "RUB", 'LMI_PAYMENT_DESC_BASE64' => base64_encode($result->comment), 'LMI_PAYMENT_NO' => $order_id, 'LMI_CREATE_TOKEN' => 'True', 'LMI_PAYMENT_METHOD' => 'BankCard'q ); #сохраняем изменения
Копируем новый модуль в каталог /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"]