forum.bitel.ru http://forum.bitel.ru/ |
|
Проблема с отображением трафиков в клиенте http://forum.bitel.ru/viewtopic.php?f=5&t=3941 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 23 апр 2010, 13:38 ] |
Заголовок сообщения: | Проблема с отображением трафиков в клиенте |
В конфиге модуля dialup есть параметр traffics= В нем указывается список трафиков для отображения в статистике в клиенте и web-статистике. Сами трафики указываются в конфигах NAS-ов, причем для каждого realm-а они могут быть свои. Проблема в том, что число различных услуг растет, и все они должны отображаться в одну строку. Можно хотя бы в клиенте разнести строку с названиями трафиков и окошко с самими итоговыми трафиками по разным строкам? Очень неудобно выглядит. Вложение:
|
Автор: | snark [ 26 апр 2010, 18:01 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
если будет интересно могу рассказать как в вебе выводить трафики столбцами |
Автор: | focus [ 02 май 2010, 14:58 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
расскажи. |
Автор: | snark [ 03 май 2010, 20:20 ] | ||||
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте | ||||
чтобы сессии логина выглядели так: а наработка по логинам выглядела так: надо: - распаковать dialup_web_add.zip в корень веба - в dialup.xsl изменить шаблон ShowSessions приведя его к виду: Код: <!-- сессии логина --> <xsl:template name="ShowSessions"> <form method="post" action="{$WEBEXECUTER}#idDivReport" name="sessions"> <xsl:variable name="module" select="/data/@module" /> <xsl:call-template name="action" /> <xsl:call-template name="error" /> <xsl:call-template name="sessionFilter" /> </form> <form method="post" action="{$WEBEXECUTER}"> <xsl:call-template name="action" /> <input type="hidden" name="createDetail" id="createDetailId" value="0" /> <div style="display:none"> <xsl:call-template name="sessionFilter" /> </div> <xsl:call-template name="AddReportReferences" /> <xsl:call-template name="report"> <xsl:with-param name="node" select="sessions" /> <xsl:with-param name="data"> <script language="JavaScript" type="text/javascript" src="./sorttable.js"></script> <table cellspacing="1" id="idTableDialUpSessions" class="sortable"> <col class="col2" /> <col class="col3" /> <col class="col4" /> <col class="col5" /> <xsl:call-template name="split_col"> <xsl:with-param name="list"><xsl:value-of select="sessions/@traffics_title" /></xsl:with-param> <xsl:with-param name="delimiter">/</xsl:with-param> </xsl:call-template> <col class="col7" /> <thead> <tr> <td>Время входа</td> <td>Время выхода</td> <td>Длительность</td> <td>Сумма, руб.</td> <xsl:call-template name="split_td"> <xsl:with-param name="list"><xsl:value-of select="sessions/@traffics_title" /></xsl:with-param> <xsl:with-param name="delimiter">/</xsl:with-param> <xsl:with-param name="text">, MB</xsl:with-param> </xsl:call-template> <td style="background-color: #ffffff;" class="sorttable_nosort"></td> </tr> </thead> <tbody> <xsl:for-each select="sessions/row"> <tr style="text-align: right;"> <td style="text-align: left;"><xsl:value-of select="@f0" /></td> <td style="text-align: left;"><xsl:value-of select="@f1" /></td> <td><xsl:value-of select="normalize-space(substring-before(@f2, '['))" /></td> <td><xsl:value-of select="format-number(translate(@f3, ' ', ''), '#0.00')" /></td> <xsl:for-each select="traffic"> <td><xsl:value-of select="format-number((. div 1048576), '#0.000')" /></td> </xsl:for-each> <td style="text-align: center;"><input type="radio" name="session_id" value="{@id}" style="margin:0px; padding:0px;" /></td> </tr> </xsl:for-each> </tbody> <tfoot> <tr style="text-align: right;"> <td colspan="2" style="text-align: center;">Итого:</td> <td><xsl:value-of select="normalize-space(substring-before(sessions/@time_amount, '['))" /></td> <td><xsl:value-of select="format-number(sessions/@money_amount, '#0.00')" /></td> <xsl:for-each select="sessions/traffic"> <td><xsl:value-of select="format-number((. div 1048576), '#0.000')" /></td> </xsl:for-each> <td></td> </tr> </tfoot> </table> </xsl:with-param> </xsl:call-template> <xsl:choose> <xsl:when test="not(sessions/row)"></xsl:when> <xsl:when test="createDetail/@created='1'"> <table cellspacing="0" class="filter"> <tr> <th>Отправка детализации поставлена в очередь.</th> </tr> </table> </xsl:when> <xsl:otherwise> <table cellspacing="0" class="filter" id="idTableDialupCreateDetail"> <tr> <th>Выслать детализацию для выбранной сессии на e-mail: <input name="mail" type="text" size="30"></input></th> <th> <xsl:call-template name="button"> <xsl:with-param name="title">Выслать</xsl:with-param> <xsl:with-param name="onclick">document.getElementById("createDetailId").value=1; setPage(<xsl:value-of select="sessions/@pageIndex" />, this);</xsl:with-param> </xsl:call-template> </th> </tr> </table> </xsl:otherwise> </xsl:choose> </form> </xsl:template> для сессий и изменить шаблон ShowLoginsBalance приведя его к виду: Код: <!-- наработка по логинам --> <xsl:template name="ShowLoginsBalance"> <form method="post" action="{$WEBEXECUTER}#idDivReport" name="sessions"> <xsl:variable name="module" select="/data/@module" /> <xsl:call-template name="action" /> <input type="hidden" name="pageIndex" value="1" /> <xsl:call-template name="periodFilter" /> <script language="JavaScript" type="text/javascript" src="./sorttable.js"></script> <div class="report" id="idDivReportTable"> <table cellspacing="1" id="idTableDialUpLoginsBalance" class="sortable"> <thead> <tr> <td>Логин</td> <td>Количество сессий</td> <td>Время</td> <td>Стоимость</td> <xsl:if test="$module='dialup'"> <xsl:call-template name="split_td"> <xsl:with-param name="list"><xsl:value-of select="amounts/@traffics_title" /></xsl:with-param> <xsl:with-param name="delimiter">/</xsl:with-param> <xsl:with-param name="text">, MB</xsl:with-param> </xsl:call-template> </xsl:if> </tr> </thead> <tbody> <xsl:for-each select="amounts/row"> <tr style="text-align: right;"> <td style="text-align: left;"><xsl:value-of select="normalize-space(substring-before(substring-after(@f0, '['), ']'))" /></td> <td><xsl:value-of select="@f1" /></td> <td><xsl:value-of select="normalize-space(substring-before(@f2, '['))" /></td> <td><xsl:value-of select="@f3" /></td> <xsl:if test="$module='dialup'"> <xsl:for-each select="traffic"> <td><xsl:value-of select="format-number((. div 1048576), '#0.000')" /></td> </xsl:for-each> </xsl:if> </tr> </xsl:for-each> </tbody> <tfoot> <tr style="text-align: right;"> <td>Итого:</td> <td><xsl:value-of select="amounts/@count_amount" /></td> <td><xsl:value-of select="normalize-space(substring-before(amounts/@time_amount, '['))" /></td> <td><xsl:value-of select="amounts/@money_amount" /></td> <xsl:if test="$module='dialup'"> <xsl:for-each select="amounts/traffic"> <td><xsl:value-of select="format-number((. div 1048576), '#0.000')" /></td> </xsl:for-each> </xsl:if> </tr> </tfoot> </table> </div> </form> </xsl:template> для нарабоки ... основной момент всего этого безобразия - это Код: <xsl:call-template name="split_col"> <xsl:with-param name="list"><xsl:value-of select="sessions/@traffics_title" /></xsl:with-param> <xsl:with-param name="delimiter">/</xsl:with-param> </xsl:call-template> рисующее тег "<col />", тобишь колонку для трафиков, и Код: <xsl:call-template name="split_td"> <xsl:with-param name="list"><xsl:value-of select="sessions/@traffics_title" /></xsl:with-param> <xsl:with-param name="delimiter">/</xsl:with-param> <xsl:with-param name="text">, MB</xsl:with-param> </xsl:call-template> рисующее тег "<td>данные</td>", тобишь ячейку таблицы с собсно данными о трафике конструкция: Код: <xsl:value-of select="normalize-space(substring-before(@f2, '['))" /> используется для того чтобы не рисовать время в секундах при выводе времени, т.е. будут видны только часы:минуты:секунды, а конструкция Код: <xsl:value-of select="normalize-space(substring-before(substring-after(@f0, '['), ']'))" /> используется чтобы не выводить, на мой взгляд не нужный пользователю, ID логина, т.е. пользовтель видит только свой алиас строчка Код: <script language="JavaScript" type="text/javascript" src="./sorttable.js"></script> служит для того чтобы выводимые данные можно было сортировать нажимая на заголовок, т.е. пользователь жмет на любой заголовок и вся таблица сортируется по выбранному заголовку BTW, это все работает в 4.6, но под 5.х переделать не составит особого труда ... жаль только что этого нет в стандартной поставке ![]()
|
Автор: | Администратор [ 06 май 2010, 18:42 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
Цитата: жаль только что этого нет в стандартной поставке Сделали для 5.1 |
Автор: | tj.anton [ 03 июн 2010, 15:01 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
Доброго дня. Пытаемся изменить файл, после замены выдает чистый лист.... по коду ничего нету сверхъестественного, вопрос, что может быть, отличие есть в скобках, у нас ' у вас " имеет ли это значение, или что может быть!? |
Автор: | snark [ 04 июн 2010, 18:23 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
tj.anton писал(а): у нас ' у вас " имеет ли это значение имеет и причем самое непосредственное! Код: ' и Код: " для xml/xsl, впрочем как и везде, это принципиально разные скобки!
|
Автор: | skyb [ 04 июн 2010, 19:17 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
tj.anton писал(а): Доброго дня. Пытаемся изменить файл, после замены выдает чистый лист.... по коду ничего нету сверхъестественного, вопрос, что может быть, отличие есть в скобках, у нас ' у вас " имеет ли это значение, или что может быть!? чистый лист потомучто что то неправильно выставленно, я день убил чтоб подстроить как нужно. |
Автор: | snark [ 04 июн 2010, 19:35 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
неправильно выставлено ... что? |
Автор: | philyuchkoff [ 13 июл 2010, 08:43 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
У меня тоже в итоге чистый лист выдаёт, в server.out: Цитата: /layout.xsl; line 9, column 34: Указанный шаблон не найден: main Буду сейчас искать, что не так. |
Автор: | skyb [ 13 июл 2010, 08:45 ] |
Заголовок сообщения: | Re: Проблема с отображением трафиков в клиенте |
Попробуйте править по одному параметру, поймете что нужно и будет проще ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |