Пользовательские модули в cabinet_modules

Skip to end of metadata
Go to start of metadata

Использование кастомного модуля для личного кабинета, работающего в пространстве имен carbon\modules.
Таким образом можно изменять стандартные модули carbon или создавать собственные.

Тестирование

Модуль необходимо разместить в рабочем каталоге:

/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/

Выпуск

Когда модуль будет готов, его необходимо скопировать в каталог хранения:

/app/asr_cabinet/var/cabinet_modules/

Так пользовательский модуль не исчезнет во время обновления, а также попадёт в бекап личного кабинета.

Внимание! Файлы из каталога хранения затирают более старые файлы в рабочем каталоге (для того, чтобы можно было заменять стандартные модули)

Это значит, что если в каталоге хранения будет находиться файл, не являющийся модулем, может перестать работать личный кабинет.

Алгоритм

  1. Реализуем и тестируем пользовательский модуль в /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
  2. Копируем модуль в /app/asr_cabinet/var/cabinet_modules/.
  3. При обновлении личного кабинета
    1. Перезаписываются модули в /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
    2. Копируются пользовательские модули из /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"]
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.