nightfly Posted October 4, 2011 at 02:31 PM Author Posted October 4, 2011 at 02:31 PM 2 Keen Вы были правы. Только все значительно хуже, поскольку там используються одновременно id и netid в астральном порядке. Не нашел раньше видимо изза того что раньше не удалялись подсети DHCP. В норме должно быть так: function multinet_rebuild_globalconf() { $global_template=file_get_contents("config/dhcp/global.template"); $subnets_template=file_get_contents("config/dhcp/subnets.template"); $alldhcpsubnets_q="SELECT `id`,`netid` from `dhcp` ORDER BY `id` ASC"; $alldhcpsubnets=simple_queryall($alldhcpsubnets_q); $subnets=''; if (!empty ($alldhcpsubnets)) { foreach ($alldhcpsubnets as $io=>$eachnet) { $netdata=multinet_get_network_params($eachnet['netid']); $templatedata['{STARTIP}']=$netdata['startip']; $templatedata['{CIDR}']=explode('/', $netdata['desc']); $templatedata['{CIDR}']=$templatedata['{CIDR}'][1]; $templatedata['{ROUTERS}']=int2ip(ip2int($templatedata['{STARTIP}'])+1); $templatedata['{MASK}']=multinet_cidr2mask($templatedata['{CIDR}']); $dhcpdata=dhcp_get_data_by_netid($eachnet['netid']); if (isset($dhcpdata['confname'])) { $templatedata['{HOSTS}']=$dhcpdata['confname']; // check if override? if (!empty ($dhcpdata['dhcpconfig'])) { $currentsubtpl=$dhcpdata['dhcpconfig']; } else { $currentsubtpl=$subnets_template; } $subnets.=multinet_ParseTemplate($currentsubtpl, $templatedata)."\n"; } } } $globdata['{SUBNETS}']=$subnets; $globconf=multinet_ParseTemplate($global_template,$globdata); file_write_contents("multinet/dhcpd.conf", $globconf); } Перепроверил дважды. При удалении/создании подсетей DHCP все отрендеривается как надо. Фикс уходит в 0.1.6. ЗЫ недокументированная фича - при заходе в модуль "Сети" вызывается multinet_rebuild_all_handlers() с последующим multinet_RestartDhcp().
Keen Posted October 4, 2011 at 02:41 PM Posted October 4, 2011 at 02:41 PM Как пожелание, я б еще добавил пару строк: $templatedata['{ENDIP}']=$netdata['endip']; $templatedata['{NETWORK}']=$templatedata['{CIDR}'][0];
nightfly Posted October 4, 2011 at 02:44 PM Author Posted October 4, 2011 at 02:44 PM Эммм, ничего не имею против. А можно посмотреть на примере subnets.template как это используется? Просто всегда я исхожу только из своей специфики, и могу быть абсолютно не в курсе всяких модных веяний.
Keen Posted October 5, 2011 at 12:02 AM Posted October 5, 2011 at 12:02 AM приблизительно следующее: localhost ~ # cat /var/www/root/config/dhcp/subnets.template subnet {NETWORK} netmask {MASK} { default-lease-time 3600; option domain-name "domain.kiev.ua"; range {STARTIP} {ENDIP}; option subnet-mask {MASK}; option routers {ROUTERS}; include "/var/www/root/multinet/{HOSTS}"; }
nightfly Posted October 5, 2011 at 12:17 AM Author Posted October 5, 2011 at 12:17 AM Агааа, он оно как. Совсем забыл о рейнджах Есть еще такая проблема что {NETWORK} ну либо {STARTIP}, смотря что там используется в шаблоне после subnet, сейчас должен указываться только с нуля. Тобишь как-то так: Пока что ничего умнее не придумывается, хотя почкой ощущаю что решение находится где-то за гранью добра и зла. Ушло в мейнстрим
nightfly Posted October 8, 2011 at 11:23 AM Author Posted October 8, 2011 at 11:23 AM Все тихо? Никто кроме Keen, никаких ужасов не нашел? Можно релизиться?
nightfly Posted October 8, 2011 at 11:36 AM Author Posted October 8, 2011 at 11:36 AM Подождал 5 минут. Раз все молчат значит так... 0.1.6 rev 750 со следующим списочком изменений: * billing.ini: новый параметр KILL указывающий на путь к kill * billing.ini: новый параметр STGPID указывающий на путь к PID файлу stargazer * billing.ini: новый параметр STGNASHUP указывающий на потребность посылки SIGHUP к stargazer при изменении NAS-ов. * API Сетей - исправлена ошибка связанная с неверной обработкой id/netid. Спасибо Keen. * API Сетей - расширен набор макро для шаблонов подсетей * Исправлена работа предварительного просмотра dhcpd.conf в случае использования кастомных шаблонов подсетей * Модуль «Онлайн»: починен внезапно сломавшийся общий счетчик трафика * Кабинет пользователя: теперь кредит выставляется на сумму тарифа+стоимость кредитования * Кабинет пользователя: изменена модель подгрузки локализации, есть шансы сделать переключаемым язык * API Сетей: при изменении NAS-ов в remote_nas.conf в соответствии с опцией STGNASHUP будут перечитываться конфиги stargazer * Кабинет пользователя: черновой вариант самосмены тарифа * Кабинет пользователя: черновой вариант использования платежных карт * Кабинет пользователя: добавлено логирование денежных операций * Отчеты по платежам: добавлена трансляция карточек в человеко-читабельный вид * Кабинет пользователя: появилась возможность смены языка отображения на лету * Отчеты по платежам: добавлено поле IDENC * Расширен набор макросов шаблонов чеков * Модуль «Карточки»: добавлен просмотр попыток перебора карточек с возможностью разбана пользователей * Модуль «Експорт платежей»: добавлена обработка параметра CITY_DISPLAY при определении дома/квартиры пользователя * В умолчальном шаблоне subnets.template макрос {STARTIP} заменен на {NETWORK}. Еще раз спасибо Keen. Оффсайт со всякими ништячками: http://ubilling.net.ua/ Релиз качается по ссылке: http://ubilling.net.ua/ub.tgz Более менее свежая инструкция по установке: http://wiki.ubilling...id=setupfreebsd Демка на месте: http://ubilling.net....npages&pid=demo Рекомендации по обновлению с предыдущих версий я уже приводил где-то выше. Намекаю на то, что перед обновлением стоит внести все новые опции в соответствующие конфиги.
Keen Posted October 14, 2011 at 10:29 AM Posted October 14, 2011 at 10:29 AM ИМХО стоит добавить сортировку в выводе функций zb_AddressGetAptAllDataByBuild zb_AddressGetBuildAllDataByStreet Как-то так: $query="SELECT * from `apt` where `buildid`='".$buildid."' ORDER BY `apt`";
nightfly Posted October 14, 2011 at 11:28 AM Author Posted October 14, 2011 at 11:28 AM Правда ваша, так действительно значительно красивее. Добавил.
DarkSpider Posted October 14, 2011 at 01:59 PM Posted October 14, 2011 at 01:59 PM Среди всего есть (впрочем давно уже писал) несколько .... просьб (-: 1. Поиск пользователя: -Хочеться видеть поиск по адресу: --по улице; -- по улице, дому; 2. Модуль онлайн : -хочеться видеть поле стг - last activity; -и как вариант - последний пинг (арппинг); 3. Результаты поиска: -хочеться видеть поле стг - last activity; -иконку онлайн (через dn).
nightfly Posted October 14, 2011 at 02:11 PM Author Posted October 14, 2011 at 02:11 PM Начиная с 0.1.7 в профиле пользователя есть LAT. Поиск перелопачивать в ближайшее время здоровья пока что нету. Там проще все сломать и сделать с нуля. Сейчас пилю динамический шейпер.
nightfly Posted October 17, 2011 at 12:54 PM Author Posted October 17, 2011 at 12:54 PM Все, никто ничего не багрепортит? Можно релизить 0.1.7?
nightfly Posted October 17, 2011 at 02:17 PM Author Posted October 17, 2011 at 02:17 PM Ну раз никто никаких ужасов кроме уже исправленных и отрепорченых не нашел.... Релиз Ubilling 0.1.7 rev 810 * Новый модуль "Мастер отчетов": позволяющий вооружившись скиллами SQL создавать собственные отчеты * Кабинет пользователя: исправлена подгрузка локализации при первом заходе в пользовательскую статистику * Кабинет пользователя: добавлена поддержка опций CITY_DISPLAY и ZERO_TOLERANCE аналогичных alter.ini * Финансовый отчет: вернулась на место колонка ARPU * Модуль "Профиль пользователя": новое поле "последняя активность" * Модуль "редактирование кредита": убрана возможность выставить отрицательное значение * alter.ini: новая опция NMCHANGE включающая генерацию content/nmchange.sh при заходе в отчет по тарифам * Добавлены адекватные сортировки в селекторах домов и квартир. Спасибо [[]."]http://local.com.ua/...8-keen/|Keen]]. * Изменена структура БД: новая таблица dshaper_time (см. дамп). * Новый модуль "Динамический шейпер": позволяющий задавать для различных тарифов скорость в любые промежутки времени * Тестовый обработчик динамического шейпера лежит в docs/dshaper * Модуль "Финансовые операции": добавлены "фиктивные платежи" на случай если требуется отображение оплаты но не нужно изменение лицевого счета абонента. * Ликвидирована возможность регистрации нигде не живущего пользователя. Перед обновлением следует ткнуть следующий дамп в SQL консоль: CREATE TABLE `dshape_time` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `tariff` VARCHAR( 255 ) NOT NULL , `threshold1` TIME NOT NULL , `threshold2` TIME NOT NULL , `speed` INT NOT NULL ) ENGINE = MYISAM CHARSET=utf8; А также добавить новые параметры в конфиги указанные в чейнджлоге. Качать как всегда тут: http://ubilling.net.ua/ub.tgz Свежая демка: http://ubilling.net....npages&pid=demo
Maxaon Posted October 17, 2011 at 06:55 PM Posted October 17, 2011 at 06:55 PM (edited) Модуль карт. Если отсортировать таблицу и выбрать какую-либо карту, потом выбрать неактивные и нажать с отмеченными то выводит No cards selected Е еще, в кабинете пользователя. Если меню вылезает на две строки не совсем красиво получается. Edited October 17, 2011 at 07:35 PM by Maxaon
nightfly Posted October 19, 2011 at 12:46 PM Author Posted October 19, 2011 at 12:46 PM С сортировкой действительно лажа. Будем дебужить. Для кабинета пользователя буду выбирать, наверное другой умолчательный шаблон. Текущий выглядит.... как блог тринадцатилетней девочки что-ли. Еще раз спасибо за оперативность.
nightfly Posted October 22, 2011 at 11:38 AM Author Posted October 22, 2011 at 11:38 AM Внезапный багфикс релиз Ubilling 0.1.8 rev 815. - Починена внезапно сломавшаяся в 0.1.7 переключалка режима внесения средств - Исправлен просмотр событий по дате Ссылка для скачивания: http://ubilling.net.ua/ub.tgz Скрипт для автоматического обновления: был где-то выше.
Maxaon Posted October 22, 2011 at 09:22 PM Posted October 22, 2011 at 09:22 PM Файл api/libs/api.userdata.php Функцию zb_UserChangeRealName предлагаю изменить так, поскольку она учитывает, что до установки системы были учетные записи. function zb_UserChangeRealName($login,$realname) { $login=vf($login); $realname=mysql_real_escape_string($realname); $n_edited = simple_query("SELECT COUNT(*) as num FROM `realname` WHERE `login` = '$login'"); if ($n_edited['num'] == 0) $query = "INSERT INTO `realname` (`login`, `realname`) VALUES ('$login', '$realname');"; else $query = "UPDATE `realname` SET `realname` = '".$realname."' WHERE `login` = '".$login."' ;"; nr_query($query); log_register('CHANGE UserRealName '.$login.' '.$realname); } Еще можно сделать в БД поле stg.realname.login уникальным, тогда можно использовать REPLACE Остальные функции тоже править надо.
nightfly Posted October 22, 2011 at 10:05 PM Author Posted October 22, 2011 at 10:05 PM Там еще много чего есть чего может не быть при неполной конвертации. Для исправления таких артефактов и есть модуль проверки целостности. Если натыкать для всех юзеров автоматом пустых мыл/рилнеймов/телефонов не проблема то с данными нужными для multinet возникает совсем другая картина. $query = "INSERT INTO `realname` (`login`, `realname`) VALUES ('$login', '$realname');"; Кстати для таких штук предусмотретн букет функций вида zb_UserCreateRealName($login,$realname) чтобы в случае изменения структуры БД ничего не взорвалось. В целом идея действительно здравая, но подходить к таким штукам надо концептуально.
Keen Posted October 24, 2011 at 08:46 AM Posted October 24, 2011 at 08:46 AM Я предложил бы использование "ON DUPLICATE KEY UPDATE". Заменяет replace полностью, только логины надо бы сделать уникальными в базе.
Keen Posted October 31, 2011 at 05:20 PM Posted October 31, 2011 at 05:20 PM Вроде бага.... Не работает модуль userprofile для пользователей, у которых в логинах встречается дефис "-"
nightfly Posted October 31, 2011 at 06:31 PM Author Posted October 31, 2011 at 06:31 PM Это не бага - это "фича" которая должна проявляться и в других модулях из за того что $_GET['username'], как правило попадает в vf() который скипает всякие инжектоопасные штучки.
_Taurus_ Posted November 5, 2011 at 07:07 PM Posted November 5, 2011 at 07:07 PM c 01.09.11 использую Ubilling. Ubuntu 10.04 LTS Ядро 2.6.32-34-server stg-2.407-p1 mysql 5.1 в данный момент Ubilling 0.1.8 rev 815 до вчерашнего вечера все работало на "УРА" теперь не понятный глюк.... при регистрации нового пользователя не вносятся данные в таблицу "users", но в остальные таблицы все данные вносятся... также не изменяется у старых юзеров тариф, тоесть при изменении тарифа - тариф остается прежний. не вносятся деньги на счет юзера.... подскажите в чем может заключаться проблема.
nightfly Posted November 5, 2011 at 07:10 PM Author Posted November 5, 2011 at 07:10 PM Деньги тоже вестимо не вносяться? Проблема может быть только на уровне взаимодействия конфигураторов и старгейзера - данные в табличках users/tariffs изменяються только посредством конфигураторов указанных в billing.ini. Перезапуск старгейзера ефекта не дает? Виндовым конфигуратором вообще конектиться возможно?
_Taurus_ Posted November 5, 2011 at 07:13 PM Posted November 5, 2011 at 07:13 PM перезапуск ни чего не дает.... Виндовым конфигуратором конектится и все, что возможно сделать в виндовом конфигураторе работает. деньги возможно внести только виндовим конфигуратором...
nightfly Posted November 5, 2011 at 07:17 PM Author Posted November 5, 2011 at 07:17 PM Значит собака порылась в логинах/паролях/путях конфигураторов (искренне надеюсь что вы используете sgconf_xml). Можете попробовать переключиься скажем на sgconf и посмотреть на результат. Если он закончится тоже фейлом - руками пробовать позвать sgconf с параметрами указанными в billing.ini "Просто так" там взорваться нечему.
Recommended Posts