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

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

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

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

h4. Тестирование
В личном кабинете есть возможность изменять стандартные модули, а также создавать свои. Модули работают в пространстве имён _carbon\modules_.

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

h4. Выпуск
Модули располагаются в рабочем каталоге:
{code}
/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
{code}
Так же есть каталог хранения:
{code}
/app/asr_cabinet/var/cabinet_modules/
{code}
При обновлении биллинга происходит копирование файлов из каталога хранения в рабочий каталог. Одноимённые файлы из каталога хранения затирают более старые в рабочем каталоге.
Например, более свежий файл Payment.php из каталога хранения перепишет более старый файл Payment.php из рабочего каталога.
{code:title=Будет скопирован в рабочий каталог}
ls -l /app/asr_cabinet/var/cabinet_modules/Payment.php
-rw-r--r-- 1 root root 126174 Июл 18 09:56 /app/asr_cabinet/var/cabinet_modules/Payment.php
{code}
{code:title=Будет переписан}
ls -l /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/Payment.php
-rw-r--r-- 1 root root 126016 Фев 6 08:33 /app/asr_cabinet/usr/local/lib/cabinet_modules/modules/Payment.php
{code}

Когда модуль будет готов, его необходимо скопировать в каталог хранения:
{code}/app/asr_cabinet/var/cabinet_modules/{code}
h3. Как создать свой модуль?

Это сделано для того, чтобы он не исчезал после обновления биллинга.
# Разместите модуль в рабочем каталоге, при этом он сразу будет доступен в личном кабинете.
{code}
/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
{code}
# Когда модуль будет готов, скопируйте его в каталог хранения:
{code}
/app/asr_cabinet/var/cabinet_modules/
{code}
Так пользовательский модуль не исчезнет во время обновления, а также попадёт в резервную копию личного кабинета.

{color:#ff0000}{*}Внимание\!*{color} Файлы из каталога хранения затирают файлы более старые файлы в рабочем каталоге (для того, чтобы можно было заменять стандартные модули)
{note}
Если в модуле будет ошибка, то полностью перестанет работать личный кабинет. Вы можете установить [сервер Billing Slave|http://docs.carbonsoft.ru/x/NQYFAw] и проводить разработку модулей на нём, чтобы не мешать работе абонентов.
{note}

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

h4. Примеры
Необходимо заменить описание для автоплатежей Paymaster.

h5. Задача. Необходимо заменить описание для авто платежей Paymaster.

# Перейдём в контейнер личного кабинета
{code}
chroot /app/asr_cabinet/
{code}
# Cкопируем стандартный модуль, все изменения будут происходить в новом файле.
{code}
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)
'LMI_PAYMENT_METHOD' => 'BankCard'
);

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

# Копируем новый модуль в каталог /app/asr_cabinet/var/cabinet_modules/ хранения
{code}
cp -p /usr/local/lib/cabinet_modules/modules/AutopayPaymentPaymaster.php /var/cabinet_modules/AutopayPaymentPaymaster.php
{code}

В личном кабинете для вызова этого модуля будет использоваться следующий код
# В личном кабинете для вызова этого модуля будет использоваться следующий [шорткод|Wordpress. Список шорткодов ЛК.]
{code}
[cabinet_autopay_payment_paymaster operator="paymaster"]
{code}

h3. Отладка

Ошибки работы веб сервера личного кабинета пишутся в следующий файл. По ним можно быстро понять о причине проблемы.
{code}
/app/asr_cabinet/var/log/httpd/error_log
{code}
Отладку модуля можно провести по [статье|Отладка модулей кабинета].