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

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

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

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

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

h4. Тестирование
h3. Как работают модули в ЛК?

Модуль необходимо разместить Модули располагаются в рабочем каталоге:
{code}/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/{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}

h4. Выпуск
h3. Как создать свой модуль?

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

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

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

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

h4. Алгоритм
h3. Примеры

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

h4. Примеры

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}
Отладку модуля можно провести по [статье|Отладка модулей кабинета].