Изменение страниц личного кабинета

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

В разделе «Документы» создаем папку «Кабинет клиента» с тегом system. Напоминаем, что установка тега system блокирует изменения файла не суперадмином, в противном случае NoDeny не будет загружать шаблоны из данной папки.

В папке «Кабинет клиента» создаем документ «Главная» с тегами:

system
template=main

Здесь main - это имя шаблона без расширения html. Данный шаблон используется на главной странице личного кабинета. Содержимое только что созданного документа заполним следующим текстом:

{{ lang::fullusers_fields_name.name }}: {{ usr.name }}<br>
{{ lang::fullusers_fields_name.fio }}: {{ usr.fio }}

Теперь, если открыть главную страницу кабинета клиента, то мы увидим две строки, в первой будет отображаться логин, во второй - ФИО.

Обратите внимание, lang::fullusers_fields_name.name берется из языкового файла /usr/local/nodeny/web/lang/RU.pl. Кроме этого файла еще используется /usr/local/nodeny/web/lang/RU_user.pl - в нем находятся языковые переменные для конкретного модуля личного кабинета. В частности, для модуля главной страницы (main) смотрите переменную $main в этом файле. Например, там есть ключ:

balance_is          => 'Остаток на счете',

Давайте изменим документ «Главная» чтобы он отображал текущий баланс:

{{ lang.balance_is }}: {{usr.balance}} 

Вы, конечно, можете сформировать шаблон без учета локализации, например:

Здравствуйте, {{usr.fio}}! На вашем счете сейчас {{usr.balance}} грн.
При пополнении через платежную систему указывайте код {{usr.ppc}}

На главной странице доступны такие переменные:

cur_url  : текущий url
usr      : данные абонента
services : подклченные услуги
credits  : активные кредиты

Поля users:

id              : id учетной записи клиента
name            : логин
pass            : пароль
fio             : ФИО
ppc             : платежный код
grp             : номер группы клиента
grp_name        : имя группы
state           : on - доступ открыт, off - закрыт
state_off       : установлен если state равен off
contract        : договор
contract_date   : дата договора (timestamp)
contract_date_as_text : дата договора в виде dd.mm.yyyy
balance         : баланс
limit_balance   : граница отключения
block_if_limit  : отключать ли запись при достижении границы отключения
cstate          : техническое состояние (настроить/ремонт/вирусы...) в виде числа
comment         : комментарий
lstate          : нужна авторизация/всегда онлайн
discount        : скидка
traf            : суммарный трафик
traf_in         : суммарный трафик к клиенту
traf_out        : суммарный трафик от клиента
traf1           : трафик в байтах направления 1
...
traf4           : трафик в байтах направления 4
in1             : входящий трафик направления 1
out1            : исходящий трафик направления 1
...
dopdata         : дополнительные данные
services        : подключенные услуги
ips             : ip адреса
full_info       : блок информации об абоненте для администратора
frozen_srv   : количество замороженных услуг

Услуги представлены в виде массива из таких значений:

id             : id в таблице users_services
service_id     : id услуги в таблице services
title          : название услуги
human_time     : врем старта услуги в виде дд.мм.гггг
time_start     : время старта услуги (timestamp)
time_left      : сколько секунд осталось до окончания услуги
frozen         : 1 - услуга заморожена, 0 - нет
price          : стоимость
can_change_srv : 1 - если в плагинах разрешена страница информации об услуге 
change_url     : html-ссылка на страницу информации об услуге 
change_link    : url на страницу информации об услуге
text           : текст "дд.мм.ггг подключена услуга xxxx"
when_end       : сообщение о том, когда заканчивается услуга
</pre