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

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (18)

просмотр истории страницы
{toc}

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

Модуль необходимо разместить в рабочем каталоге:
{code}/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/{code}

h4. Выпуск
{code}/app/asr_cabinet/var/cabinet_modules/{code}

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

{note}
{color:#ff0000}{*}Внимание\!*{color} Файлы из каталога хранения затирают файлы более старые файлы в рабочем каталоге (для того, чтобы можно было заменять стандартные модули)

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

h4. Алгоритм

# Реализуем и тестируем пользовательский модуль в {{/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/}}

h4. Примеры

{code}
chroot /app/asr_cabinet/
# копируем стандартный модуль, все изменения будут происходить в новом файле.
cp -p /usr/local/lib/cabinet_modules/modules/AutopayPayment.php /usr/local/lib/cabinet_modules/modules/AutopayPaymentPaymaster.php
{code}
{code}
# находим блок public function processPOST_paymaster($POST)

$params = Array(
'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),
# Мы хотим передавать в этом параметре номер договора
# $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($result->comment), base64_encode("МОЙ ТЕКСТ " . $contract_number),
'LMI_PAYMENT_NO' => $order_id,
'LMI_CREATE_TOKEN' => 'True',
'LMI_PAYMENT_METHOD' => 'BankCard'q
);

# сохраняем изменения
{code}