nightfly Posted October 4, 2011 Author Posted October 4, 2011 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 Posted October 4, 2011 Как пожелание, я б еще добавил пару строк: $templatedata['{ENDIP}']=$netdata['endip']; $templatedata['{NETWORK}']=$templatedata['{CIDR}'][0];
nightfly Posted October 4, 2011 Author Posted October 4, 2011 Эммм, ничего не имею против. А можно посмотреть на примере subnets.template как это используется? Просто всегда я исхожу только из своей специфики, и могу быть абсолютно не в курсе всяких модных веяний.
Keen Posted October 5, 2011 Posted October 5, 2011 приблизительно следующее: 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 Author Posted October 5, 2011 Агааа, он оно как. Совсем забыл о рейнджах Есть еще такая проблема что {NETWORK} ну либо {STARTIP}, смотря что там используется в шаблоне после subnet, сейчас должен указываться только с нуля. Тобишь как-то так: Пока что ничего умнее не придумывается, хотя почкой ощущаю что решение находится где-то за гранью добра и зла. Ушло в мейнстрим
nightfly Posted October 8, 2011 Author Posted October 8, 2011 Все тихо? Никто кроме Keen, никаких ужасов не нашел? Можно релизиться?
nightfly Posted October 8, 2011 Author Posted October 8, 2011 Подождал 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 Posted October 14, 2011 ИМХО стоит добавить сортировку в выводе функций zb_AddressGetAptAllDataByBuild zb_AddressGetBuildAllDataByStreet Как-то так: $query="SELECT * from `apt` where `buildid`='".$buildid."' ORDER BY `apt`";
nightfly Posted October 14, 2011 Author Posted October 14, 2011 Правда ваша, так действительно значительно красивее. Добавил.
DarkSpider Posted October 14, 2011 Posted October 14, 2011 Среди всего есть (впрочем давно уже писал) несколько .... просьб (-: 1. Поиск пользователя: -Хочеться видеть поиск по адресу: --по улице; -- по улице, дому; 2. Модуль онлайн : -хочеться видеть поле стг - last activity; -и как вариант - последний пинг (арппинг); 3. Результаты поиска: -хочеться видеть поле стг - last activity; -иконку онлайн (через dn).
nightfly Posted October 14, 2011 Author Posted October 14, 2011 Начиная с 0.1.7 в профиле пользователя есть LAT. Поиск перелопачивать в ближайшее время здоровья пока что нету. Там проще все сломать и сделать с нуля. Сейчас пилю динамический шейпер.
nightfly Posted October 17, 2011 Author Posted October 17, 2011 Все, никто ничего не багрепортит? Можно релизить 0.1.7?
nightfly Posted October 17, 2011 Author Posted October 17, 2011 Ну раз никто никаких ужасов кроме уже исправленных и отрепорченых не нашел.... Релиз 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 Posted October 17, 2011 (edited) Модуль карт. Если отсортировать таблицу и выбрать какую-либо карту, потом выбрать неактивные и нажать с отмеченными то выводит No cards selected Е еще, в кабинете пользователя. Если меню вылезает на две строки не совсем красиво получается. Edited October 17, 2011 by Maxaon
nightfly Posted October 19, 2011 Author Posted October 19, 2011 С сортировкой действительно лажа. Будем дебужить. Для кабинета пользователя буду выбирать, наверное другой умолчательный шаблон. Текущий выглядит.... как блог тринадцатилетней девочки что-ли. Еще раз спасибо за оперативность.
nightfly Posted October 22, 2011 Author Posted October 22, 2011 Внезапный багфикс релиз Ubilling 0.1.8 rev 815. - Починена внезапно сломавшаяся в 0.1.7 переключалка режима внесения средств - Исправлен просмотр событий по дате Ссылка для скачивания: http://ubilling.net.ua/ub.tgz Скрипт для автоматического обновления: был где-то выше.
Maxaon Posted October 22, 2011 Posted October 22, 2011 Файл 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 Author Posted October 22, 2011 Там еще много чего есть чего может не быть при неполной конвертации. Для исправления таких артефактов и есть модуль проверки целостности. Если натыкать для всех юзеров автоматом пустых мыл/рилнеймов/телефонов не проблема то с данными нужными для multinet возникает совсем другая картина. $query = "INSERT INTO `realname` (`login`, `realname`) VALUES ('$login', '$realname');"; Кстати для таких штук предусмотретн букет функций вида zb_UserCreateRealName($login,$realname) чтобы в случае изменения структуры БД ничего не взорвалось. В целом идея действительно здравая, но подходить к таким штукам надо концептуально.
Keen Posted October 24, 2011 Posted October 24, 2011 Я предложил бы использование "ON DUPLICATE KEY UPDATE". Заменяет replace полностью, только логины надо бы сделать уникальными в базе.
Keen Posted October 31, 2011 Posted October 31, 2011 Вроде бага.... Не работает модуль userprofile для пользователей, у которых в логинах встречается дефис "-"
nightfly Posted October 31, 2011 Author Posted October 31, 2011 Это не бага - это "фича" которая должна проявляться и в других модулях из за того что $_GET['username'], как правило попадает в vf() который скипает всякие инжектоопасные штучки.
_Taurus_ Posted November 5, 2011 Posted November 5, 2011 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 Author Posted November 5, 2011 Деньги тоже вестимо не вносяться? Проблема может быть только на уровне взаимодействия конфигураторов и старгейзера - данные в табличках users/tariffs изменяються только посредством конфигураторов указанных в billing.ini. Перезапуск старгейзера ефекта не дает? Виндовым конфигуратором вообще конектиться возможно?
_Taurus_ Posted November 5, 2011 Posted November 5, 2011 перезапуск ни чего не дает.... Виндовым конфигуратором конектится и все, что возможно сделать в виндовом конфигураторе работает. деньги возможно внести только виндовим конфигуратором...
nightfly Posted November 5, 2011 Author Posted November 5, 2011 Значит собака порылась в логинах/паролях/путях конфигураторов (искренне надеюсь что вы используете sgconf_xml). Можете попробовать переключиься скажем на sgconf и посмотреть на результат. Если он закончится тоже фейлом - руками пробовать позвать sgconf с параметрами указанными в billing.ini "Просто так" там взорваться нечему.
Recommended Posts