Изменение страниц личного кабинета
В разделе «Документы» создаем папку «Кабинет клиента» с тегом 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 : сообщение о том, когда заканчивается услуга