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

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


Здесь main - это имя шаблона без расширения html. Данный шаблон используется на главной странице личного кабинета. Содержимое только что созданного документа заполним следующим текстом:
Здесь main - это имя шаблона без расширения html. Данный шаблон используется на главной странице личного кабинета. Содержимое только что созданного документа заполним следующим текстом:
<pre>
{{ lang::fullusers_fields_name.name }}: {{ usr.name }}<br>
{{ lang::fullusers_fields_name.fio }}: {{ usr.fio }}
</pre>
Теперь, если открыть главную страницу кабинета клиента, то мы увидим две строки, в первой будет отображаться логин, во второй - ФИО.
Обратите внимание, lang::fullusers_fields_name.name берется из языкового файла /usr/local/nodeny/web/lang/RU.pl. Кроме этого файла еще используется /usr/local/nodeny/web/lang/RU_user.pl - в нем находятся языковые переменные для конкретного модуля личного кабинета. В частности, для модуля главной страницы (main) смотрите переменную $main в этом файле. Например, там есть ключ:
<pre>
balance_is          => 'Остаток на счете',
</pre>
Давайте изменим документ «Главная» чтобы он отображал текущий баланс:
<pre>
{{ lang.balance_is }}: {{usr.balance}}
</pre>
Вы, конечно, можете сформировать шаблон без учета локализации, например:


<pre>
<pre>
Рядок 38: Рядок 17:


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


Рядок 60: Рядок 39:
contract_date_as_text : дата договора в виде dd.mm.yyyy
contract_date_as_text : дата договора в виде dd.mm.yyyy
balance        : баланс
balance        : баланс
balance_without_credits : баланс без кредитов
limit_balance  : граница отключения
limit_balance  : граница отключения
block_if_limit  : отключать ли запись при достижении границы отключения
block_if_limit  : отключать ли запись при достижении границы отключения
Рядок 78: Рядок 58:
services        : подключенные услуги
services        : подключенные услуги
ips            : ip адреса
ips            : ip адреса
full_info     : блок информации об абоненте для администратора
full_info       : блок информации об абоненте для администратора
frozen_srv  : количество замороженных услуг
</pre>
 
Услуги представлены в виде массива из таких значений:
<pre>
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>
<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>
Рекомендованная сумма платежа: {{ 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() }}