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

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Немає опису редагування
Рядок 38: Рядок 38:


<pre>
<pre>
<table class='tbl'>
id              : id учетной записи клиента
<tr> <td colspan='2' style='text-align:center'>Платеж</td>  </tr>
name            : логин
 
pass            : пароль
<tr> <td>Id </td>                  <td>{{pay.id}}</td>        </tr>
fio             : ФИО
<tr> <td>Сумма</td>                <td>{{pay.amount}}</td>    </tr>
ppc             : платежный код
<tr> <td>Сумма без минуса (если платеж - снятие)</td><td>{{pay.abs_amount}}</td></tr>
grp            : номер группы клиента
<tr> <td>Категория</td>             <td>{{pay.category}}</td>  </tr>
grp_name        : имя группы
<tr> <td>Описание категории</td>    <td>{{pay.category_desc}}</td>  </tr>
state          : on - доступ открыт, off - закрыт
<tr> <td>Комментарий</td>          <td>{{pay.comment}}</td>    </tr>
state_off       : установлен если state равен off
<tr> <td>Дата</td>                  <td>{{pay.date}}</td>      </tr>
contract       : договор
<tr> <td>Кто создал платеж</td>    <td>{{pay.creator}}</td>    </tr>
contract_date  : дата договора (timestamp)
<tr> <td>ip создателя</td>          <td>{{pay.ip}}</td>        </tr>
contract_date_as_text : дата договора в виде dd.mm.yyyy
<tr> <td>id создателя</td>          <td>{{pay.creator_id}}</td> </tr>
balance        : баланс
 
limit_balance  : граница отключения
<tr> <td>&nbsp;</td>                <td>&nbsp;</td>    </tr>
block_if_limit  : отключать ли запись при достижении границы отключения
 
cstate          : техническое состояние (настроить/ремонт/вирусы...) в виде числа
<tr> <td colspan='2' style='text-align:center'>Данные клиента</td>  </tr>
comment         : комментарий
 
lstate          : нужна авторизация/всегда онлайн
<tr> <td>Id клиента</td>            <td>{{id}}</td>             </tr>
discount        : скидка
<tr> <td>Платежный код</td>        <td>{{ppc}}</td>            </tr>
traf            : суммарный трафик
<tr> <td>Логин</td>                <td>{{name|safe}}</td>      </tr>
traf_in         : суммарный трафик к клиенту
<tr> <td>ФИО</td>                  <td>{{fio|safe}}</td>      </tr>
traf_out        : суммарный трафик от клиента
<tr> <td>Номер группы</td>          <td>{{grp}}</td>            </tr>
traf1          : трафик в байтах направления 1
<tr> <td>Имя группы</td>            <td>{{grp_name|safe}}</td>  </tr>
...
<tr> <td>Договор</td>              <td>{{contract|safe}}</td>  </tr>
traf4          : трафик в байтах направления 4
<tr> <td>Доступ</td>                <td>{% if state_off %} Заблокирован {% else %} Включен {% endif %}</td>    </tr>
in1            : входящий трафик направления 1
<tr> <td>Баланс</td>                <td>{{balance}}</td>       </tr>
out1            : исходящий трафик направления 1
<tr> <td>Граница отключения</td>    <td>{{limit_balance}} </td> </tr>
...
<tr> <td>Авторизация</td>          <td>{% if lstate %} Выключена {% else %} Включена {% endif %}</td>    </tr>
dopdata         : дополнительные данные
<tr> <td>&nbsp;</td>                <td>&nbsp;</td>    </tr>
services        : подключенные услуги
 
ips            : ip адреса
{% if dopdata._adr_street %}
    <tr> <td>Улица</td>            <td>{{ dopdata._adr_street.show() }}</td>    </tr>
{% endif %}
{% if dopdata._adr_house %}
    <tr> <td>Дом</td>              <td>{{ dopdata._adr_house.show() }}</td>    </tr>
{% endif %}
 
<tr> <td>&nbsp;</td>                <td>&nbsp;</td>    </tr>
 
<tr> <td>Платежи</td>              <td></td> </tr>
        {% for pay in pays %}
            <tr> <td>{{pay.date}}</td>        <td>{{pay.cash}} $</td> </tr>
         {% endfor %}
 
<tr> <td>&nbsp;</td>              <td>&nbsp;</td>    </tr>
 
<tr> <td>Входящий трафик, Мб</td>  <td>{{traf_in}}</td>    </tr>
<tr> <td>Исходящий трафик, Мб</td> <td>{{traf_out}}</td>    </tr>
 
<tr> <td>Услуги</td>
    <td>
        <table class='tbl'>
        {% for service in services %}
            <tr> <td>Имя</td>        <td>{{service.title}}</td> </tr>
            <tr> <td>Pay id</td>      <td>{{service.pay_id}}</td> </tr>
         {% endfor %}
        </table>
    </td>
</tr>
 
</table>
</pre>
</pre>

Версія за 10:14, 26 березня 2019

В разделе «Документы» создаем папку «Кабинет клиента» с тегом 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}}

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

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 адреса