Изменение страниц личного кабинета: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
мНемає опису редагування
 
(Не показано 18 проміжних версій цього користувача)
Рядок 10: Рядок 10:


<pre>
<pre>
<table class='td_medium td_wide'>>
Здравствуйте, {{usr.fio}}! На вашем счете сейчас {{usr.balance}} грн.
    <tr><td>{{ lang::fullusers_fields_name.name }}</td><td>: {{ usr.name }}</td></tr>
При пополнении через платежную систему указывайте код {{usr.ppc}}
    <tr><td>{{ lang::fullusers_fields_name.fio }}</td><td>: {{ usr.fio }}</td></tr>
</table>
</pre>
</pre>


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


Обратите внимание, {{ lang::fullusers_fields_name.name }} - берется из языкового файла /usr/local/nodeny/web/lang/RU.pl. Кроме этого файла еще используется /usr/local/nodeny/web/lang/RU_user.pl - в нем находятся языковые переменные для конкретного модуля личного кабинета. В частности, для модуля главной страницы (main) смотрите переменную $main в этом файле. Например, там есть ключ:
<pre>
cur_url  : текущий url
usr      : данные абонента
services : подключенные услуги
credits  : активные кредиты
</pre>
 
Поля users:
 
<pre>
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        : баланс
balance_without_credits : баланс без кредитов
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  : количество замороженных услуг
</pre>


Услуги представлены в виде массива из таких значений:
<pre>
<pre>
balance_is         => 'Остаток на счете',
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>
</pre>


Давайте изменим документ «Главная» чтобы он отображал текущий баланс:
Пример шаблона:
 
<pre>
<p>Здравствуйте, <b>{{usr.fio}}</b>!</p>
 
{% if usr.services %}
<p>Просим обратить внимание: наше ОСББ выполняет регулярные работы, которые предусматривают финансирование с вашей стороны.</p>
 
{% if usr.balance < 0 %}
<p>При этом у вас сформировалась задолженность в размере <b>{{usr.balance}}</b> грн. Просим погасить ее для того, чтобы мы вовремя и качественно выполняли свою работу.</p>
{% endif %}
 
<p><b>Перечень услуг:</b></p>
<ui>
{% for s in usr.services %}
<li>{{ s.title }}. Стоимость {{ s.price }} грн в месяц</li>
{% endfor %}
</ul>
 
{% endif %}
</pre>
 
Здесь фраза «При этом у вас сформировалась задолженность...» отображается только при отрицательном балансе.
 
На всех страницах личного кабинета в '''template::DATA''' доступны переменные, которые перечислены [[Переменные шаблона личного кабинета|здесь]]. Например, :


<pre>
<pre>
{{ lang.balance_is }}: {{usrbalance}}  
Рекомендованная сумма платежа: {{ template::DATA.user_info.recommended_pay }} грн
Улица проживания: {{ template::DATA.user_info.dopdata._adr_street.show() }}
</pre>
</pre>

Поточна версія на 17:38, 25 березня 2023

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

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

system
template=main

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

Здравствуйте, {{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         : баланс
balance_without_credits : баланс без кредитов
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       : сообщение о том, когда заканчивается услуга

Пример шаблона:

<p>Здравствуйте, <b>{{usr.fio}}</b>!</p>

{% if usr.services %}
<p>Просим обратить внимание: наше ОСББ выполняет регулярные работы, которые предусматривают финансирование с вашей стороны.</p>

{% if usr.balance < 0 %}
<p>При этом у вас сформировалась задолженность в размере <b>{{usr.balance}}</b> грн. Просим погасить ее для того, чтобы мы вовремя и качественно выполняли свою работу.</p>
{% endif %}

<p><b>Перечень услуг:</b></p>
<ui>
{% for s in usr.services %}
<li>{{ s.title }}. Стоимость {{ s.price }} грн в месяц</li>
{% endfor %}
</ul>

{% endif %}

Здесь фраза «При этом у вас сформировалась задолженность...» отображается только при отрицательном балансе.

На всех страницах личного кабинета в template::DATA доступны переменные, которые перечислены здесь. Например, :

Рекомендованная сумма платежа: {{ template::DATA.user_info.recommended_pay }} грн
Улица проживания: {{ template::DATA.user_info.dopdata._adr_street.show() }}