forum.bitel.ru http://forum.bitel.ru/ |
|
web меню, использование переменных. http://forum.bitel.ru/viewtopic.php?f=22&t=10507 |
Страница 1 из 1 |
Автор: | Galkov [ 13 май 2015, 14:30 ] |
Заголовок сообщения: | web меню, использование переменных. |
В web-меню хочу внести изменения. В менюопции ContractLimit(contractlimit.jsp) (понижение лимита) хочу добавить цифры из баланса абонента. Простое использование переменных из менюопции GetBalance(balance.jsp) не срабатывает - переменные возращают пустоту. Например (${dataMap['summa2']}, ${dataMap['summa5']}). поверхностный просмотр обоих файлов, файла меню слева не помогает понять как зацепить в dataMap нужные данные и вытащить их в contractlimit.jsp помогите пожалуйста как вытащить данные о размере баланса при исполнении contractlimit.jsp. Смысл задачи - переписать "понижение лимита" в "обещанный платёж" в размере баланса. т.е. если у абонента минус - он заходит, обещает заплатить свой минус и работает N дней. |
Автор: | vkulakov [ 13 май 2015, 16:03 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
Все переменные, которые используются в JSP жестко задаются в соответствующем экшене, лишнего там, обычно, нет. В экшене ContractLimit переменных для баланса нет, поэтому вытащить баланс никак не получится. Без написания своего экшена в динамическом коде не обойтись. Как более простой вариант - обернуть стандартный экшен ContractLimit своим экшеном, и в своём экшене добавить недостающие переменные. Подробнее здесь |
Автор: | skn [ 13 май 2015, 18:29 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
или использовать виджет баланса, см. страницы платежных систем |
Автор: | vkulakov [ 13 май 2015, 19:04 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
skn писал(а): виджет баланса Это модуль дополнительный нужен? У меня виджет такой, вроде, есть, но по адресу widget/contract/balanceInformer.jsp 404-я ошибка. |
Автор: | skn [ 14 май 2015, 03:33 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
Для использования виджета на страницу нужно добавить: Код: <div class="bgBalanceInformerWidget"></div>
|
Автор: | vkulakov [ 14 май 2015, 12:06 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
Да, но этот виджет пытается выполнить запрос на адрес http://x.x.x.x/bgbilling/widget/contrac ... former.jsp и в ответ получает 404-ю ошибку. Нужно что-то ещё установить или дополнительно настроить, чтобы заработал этот виджет? |
Автор: | skn [ 14 май 2015, 17:41 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
нужно обновиться минимум до 6.1 |
Автор: | Galkov [ 15 май 2015, 12:23 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
а где хранится кусок кода, который генерит мессагу на эту страницу: "Сумма должна быть в пределах от -X до Y"? простой поиск типа grep -rl 'Сумма должна быть в пределах от' /bgbilling-path что-то не находит её вообще.. |
Автор: | vkulakov [ 15 май 2015, 12:42 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
Если искать TotalCommander'ом в либах биллинга внутри архивов в кодировке UTF8, то находит ActionContractLimit в kernel.jar. Т. е. подобные сообщения жёстко прописаны внутри кода экшена, ответственного за обработку данной страницы в ЛК. |
Автор: | Galkov [ 15 май 2015, 12:55 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
не, это явно не то. мне нужно тот кусок, что добавляет в страницу <div class="errorMessage"> удивительно то, что казалось бы за это отвечает /include/error.jsp, однако редактирование его не приводит к нужным изменениям (например замене надписи) |
Автор: | Galkov [ 15 май 2015, 13:26 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
нашёл. если кому надо потом. ещё один вывод ошибки происходит через jspf/layout/webexecuter.jsp |
Автор: | vkulakov [ 15 май 2015, 17:04 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
Изначально вопрос был про баланс - вы смогли его получить на странице управления лимитом? Интересен сам способ получения. |
Автор: | Galkov [ 19 май 2015, 13:19 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
vkulakov писал(а): Изначально вопрос был про баланс - вы смогли его получить на странице управления лимитом? Интересен сам способ получения. изначальный вопрос не решён. так как надо переписывать много такого, что обновления потом перетрут. я не хочу это делать. |
Автор: | Galkov [ 19 май 2015, 13:25 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
У меня в процессе переписывания contractlimit.jsp возникли проблемы. похоже по нажатии кнопки post (Понизить) не передаются переменные серверу на исполнение. я добавил в страницу вот это - <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['month']}"/> <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['year']}"/> <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['action']}"/> <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['mid']}"/> на месте, где должны быть значения - пустота. даже action, хотя как оно тогда вызвало нужную страницу?!? я полностью переписал WEB-INF назад из бэкапа оригинальных файлов и удалил сожержимое /opt/bgbilling/tmp не помогает. Кнопка "Понизить" отрабатывает не передавая перемнные. Виджет bgMonthAndYearWidget кстати тоже не получает значения. ничего больше я не правил (только закоментил мессагу об ощибке в webexecuter.jsp и contractlimit.jsp ) ![]() куда хоть посмотреть? ![]() |
Автор: | skn [ 19 май 2015, 14:09 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
сервер биллинга ребутали после замены? |
Автор: | Galkov [ 19 май 2015, 14:19 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
skn писал(а): сервер биллинга ребутали после замены? это тоже не всегда помогает(перезапись файлов+ рестарт, а в браузер выдаётся старый динамически генерируемый контент). помогает обновление дат создания файлов *.jsp но тут "заклинило" какой-то файл, который я не знаю. поэтому дату не могу обновить.. |
Автор: | skn [ 19 май 2015, 14:28 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
попробуйте почистить папку tmp в каталоге биллинга |
Автор: | skn [ 19 май 2015, 18:41 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
а как проверяете что данные не передаются при посте? |
Автор: | Galkov [ 20 май 2015, 11:50 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
skn писал(а): а как проверяете что данные не передаются при посте? я скрин же показал выше - в нём контент сгенерирован та, как будто данные, посылаемые формой игнорируются. этот скрин выходит при назначении размера понижения из диапазона в конфиге и нажатии кнопки "Понизить" (Лимит). дополнительно, я пробовал, как писал выше, смотреть содержимое в так: <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['month']}"/> <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['year']}"/> <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['action']}"/> <fmt:formatNumber type="number" pattern="###,###,##0" value="${dataMap['mid']}"/> размещая этот код в contractlimit.jsp. - пусто. |
Автор: | skn [ 20 май 2015, 13:00 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
т.е. вы в браузере не смотрели запрос который передается (у вас получается как проверить, что автомат не работает, если пули в цель не попали, значит из автомата они не вылетали...) |
Автор: | Galkov [ 20 май 2015, 19:15 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
skn писал(а): т.е. вы в браузере не смотрели запрос который передается (у вас получается как проверить, что автомат не работает, если пули в цель не попали, значит из автомата они не вылетали...) в браузере в верхней строчке? там присутствует часть переменных. с правильными значениями. никаких аномалий. я имею ввиду те, которые *.jsp вынимает из dataMap[*] - там ничего нет. переходя на аналогию с автоматом - у меня автомат по нажатию курка работает, затвор летает, но ни гильз ни пуль не летит. |
Автор: | skn [ 20 май 2015, 19:20 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
если запрос передается методом POST то параметры в адресной строке не выводятся нужно в браузере переключиться в отладочный режим и посмотреть какой реально запрос уходит из браузера. (передача параметров в запросе и их наличие в dataMap не связанные вещи). |
Автор: | Galkov [ 25 май 2015, 11:56 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
браузер нормально всё отправляет. |
Автор: | skn [ 25 май 2015, 12:18 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
при клике по кнопке "Понизить" отрабатывает форма Код: <form method="post" action=""> <input type="hidden" name="action" value="ContractLimit" /> <table class="filter"> <tr> <td>Понизить лимит на сумму:</td> <td><input type="text" name="summ" size="6"/></td> <td>сроком на </td> <td> <c:set var="map" value="${dataMap['dMap']}" /> <select name="days"><c:forEach var="item" begin="${dataMap['contractLimitParameters'].minDays}" end="${dataMap['contractLimitParameters'].maxDays}"><option value="${item}">${item} ${map[item]}</option></c:forEach></select> </td> <td><input type="submit" value="Понизить" style="margin-left: 15px;"></td> </tr> </table> </form> из этой формы видно, что передаются три параметра Код: action=ContractLimit
summ=введенная_сумма days=количество_дней |
Автор: | Galkov [ 29 май 2015, 15:11 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
skn писал(а): из этой формы видно, что передаются три параметра Код: action=ContractLimit summ=введенная_сумма days=количество_дней Так конечно, но судя по ответу - "ContractLimit" отрабатывается, так как возвращает ту же страницу, а вот summ, days - отбрасываются, так как (см скриншот). Главное что я переписал весь каталог всё из бэкапа, когда ещё работало.. |
Автор: | skn [ 29 май 2015, 16:52 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
у вас правильно в конфиге настроены параметры управления понижением лимита? покажите конфиг... |
Автор: | Galkov [ 03 июн 2015, 17:23 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
#http://bgbilling.ru/v6.1/doc/ch01s18s07.html # Запрет установки договору лимита без указания периода в случае наличия заданий на автоматическое изменение лимита, 1 - включение запрета #reject.limit.update=0 reject.limit.update=1 # сообщения при изменении лимита limit.max.current.msg=Вы не можете в данный момент. limit.max.nopayed.msg=Превышено максимально количество просроченных использований услуги. Возможность использования услуги "Обещаный платёж" заблокирована. # Коды групп договоров, для которых действует данная настройка, через ',' (чтобы узнать код группы нажмите Ctrl+i в справочнике # групп при выбранной строке таблицы) #contract.limit.1.groups=0,1,2,3,4,5,7,56,38,62,24,23,61,19,57,58,20 contract.limit.1.groups=23,57,58,5,62 # Максимальное количество не оплаченных (не возвратившихся) понижений, # при котором клиенту будет доступно понижение, при 0 клиент не сможет выполнять # понижение до тех пор пока будет хотя бы одно не оплаченное contract.limit.1.maxnotpayoffed=3 # Максимальное количество частично оплаченных понижений, # при котором клиенту будет доступно понижение (0-1, частично оплаченное понижение # может быть только одно) contract.limit.1.maxpartialpayoffed=1 # Количество просроченных платежей после последней разблокировки, # после которых доступ к понижению будет заблокирован, 1 - не блокировать при любом количестве contract.limit.1.maxexpiredforblock=3 # Дни от до contract.limit.1.mindays=3 contract.limit.1.maxdays=7 # Сумма от до contract.limit.1.minsumm=-100 contract.limit.1.maxsumm=-900 # Нижний порог лимита при понижении клиентом (по умолчанию -100), # т.е ниже этого порога клиент понизить не сможет contract.limit.1.minlimit=-900 --------------------------------------------------- договор, которым проверяю в группе 62. (contract.limit.1.groups) |
Автор: | skn [ 03 июн 2015, 18:23 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
что то мне не нравятся параметры, в доке они положительные, а у вас отрицательные Код: # Сумма от до
contract.limit.1.minsumm=100 contract.limit.1.maxsumm=200 |
Автор: | Galkov [ 04 июн 2015, 19:57 ] |
Заголовок сообщения: | Re: web меню, использование переменных. |
да. дело в этом. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |