Биллинговая система Nodeny

Главная категория => Модули NodenyPlus => Тема начата: lts от 26 Декабря 2016, 10:53:14



Название: nomake шаблон
Отправлено: lts от 26 Декабря 2016, 10:53:14
Приветствую всех. С наступающим!
Задача выбрать из базы ip абонов у кого подключена услуга, например роутер в подарок. Вывести все эти ip  в текстовый файл. Посмотрел в доку по nomake  и не нашел как сделать выборку абонов по подключенным услугам. Помогите в написании такого шаблона для nomake.

Заранее всем спасибо за помощь.


Название: Re: nomake шаблон
Отправлено: Pa4ka от 26 Декабря 2016, 11:00:10
Приветствую всех. С наступающим!
Задача выбрать из базы ip абонов у кого подключена услуга, например роутер в подарок. Вывести все эти ip  в текстовый файл. Посмотрел в доку по nomake  и не нашел как сделать выборку абонов по подключенным услугам. Помогите в написании такого шаблона для nomake.

Заранее всем спасибо за помощь.

У Вас точно Nodeny+? мб 50 версия?


Название: Re: nomake шаблон
Отправлено: lts от 26 Декабря 2016, 11:23:03
Да  Н+  :).
 svn info

Revision: 434

Last Changed Rev: 434
Last Changed Date: 2016-12-16 12:33:42 +0200 (Fri, 16 Dec 2016)

Для dhcp есть дока по make_config

//app.nodeny-plus.com.ua/docs/work/make_config.html

Мне бы список ip сформировать по подключенной услуге....Может таки кто знает как ?


Название: Re: nomake шаблон
Отправлено: Efendy от 26 Декабря 2016, 15:18:27
В make_config не подгружаются услуги, но можно их подгрузить фильтром, который указать в настройках:

В /usr/local/nodeny/kernel/make_config.cfg:

Код:
subs    => {
            get_service => sub {
                my $user = shift;
                my %p = Db->line("SELECT service_id FROM users_services WHERE uid=? LIMIT 1", $user->{id});
                return %p? $p{service_id} : 0;
            },
},

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

Код:
{% for user in users %}
{% eval s = user|get_service %}
{% if s == 46 %}
   uid = {{user.id}}, name = {{user.name}}, fio = {{user.fio}}
{% endif %}
{% endfor %}

Только нужно обновить Н+ до ревизии 435 - я там добавил возможность запуска фильтров в {% eval %}