Красивые графики статистики в модуле IPN
Материал из BiTel WiKi
(Различия между версиями)
Admin (Обсуждение | вклад) (Новая: Версия биллинга - 4.4. С помощью модификации исходного шаблона ipn.xsl Возможно получение следующего вида...) |
Admin (Обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
С помощью модификации исходного шаблона ipn.xsl Возможно получение следующего вида отчета по трафику. | С помощью модификации исходного шаблона ipn.xsl Возможно получение следующего вида отчета по трафику. | ||
- | Следует учитывать, что хост charts.google.com должен быть открыт для заблокированных клиентов тоже, | + | Следует учитывать, что хост http://charts.apis.google.com должен быть открыт для заблокированных клиентов тоже, |
если требуется отображение для них статистики. | если требуется отображение для них статистики. | ||
Строка 10: | Строка 10: | ||
|} | |} | ||
- | + | Шаблон '''webroot/ipn.xsl''' модифицируется следующим образом: | |
+ | |||
+ | <code lang="xml"> | ||
<!-- столбики значений --> | <!-- столбики значений --> | ||
<img width="600" height="200"> | <img width="600" height="200"> | ||
Строка 37: | Строка 39: | ||
</xsl:attribute> | </xsl:attribute> | ||
</img> | </img> | ||
- | + | </code> | |
Модифицированный ipn.xsl и diff файл: | Модифицированный ipn.xsl и diff файл: | ||
[[Медиа:ipn_good_stat.zip]] | [[Медиа:ipn_good_stat.zip]] |
Версия 06:20, 22 сентября 2008
Версия биллинга - 4.4.
С помощью модификации исходного шаблона ipn.xsl Возможно получение следующего вида отчета по трафику. Следует учитывать, что хост http://charts.apis.google.com должен быть открыт для заблокированных клиентов тоже, если требуется отображение для них статистики.
Шаблон webroot/ipn.xsl модифицируется следующим образом:
<img width="600" height="200"> <xsl:attribute name="src"> <xsl:text>http://chart.apis.google.com/chart?cht=lc&chs=600x200&chd=t:</xsl:text> <xsl:for-each select="labels/label"> <xsl:if test="position() > 1"><xsl:text>,</xsl:text></xsl:if> <xsl:variable name="id" select="@id"/> <xsl:variable name="value" select="round(/data/stat/item[@id=$id]/@value * 1000 div /data/stat/@max) div 10"/> <xsl:choose> <xsl:when test="$value"><xsl:value-of select="$value"/></xsl:when> <xsl:otherwise><xsl:text>-300</xsl:text></xsl:otherwise> </xsl:choose> </xsl:for-each> <xsl:text>&chxl=0:</xsl:text> <xsl:for-each select="labels/label"> <xsl:text>|</xsl:text><xsl:value-of select="@text"/> </xsl:for-each> <xsl:variable name="yaxis" select="/data/stat/@max div 1024 div 1024"/> <xsl:if test="$yaxis > 1024*2"><xsl:variable name="yaxis" select="$yaxis div 1024"/></xsl:if> <xsl:if test="$yaxis > 1024*2"><xsl:variable name="yaxis" select="$yaxis div 1024"/></xsl:if> <xsl:text>&chxt=x,y</xsl:text> <xsl:text>&chxr=1,0,</xsl:text><xsl:value-of select="$yaxis"/> <xsl:text>&chls=3,1,0</xsl:text> <xsl:text>&chg=</xsl:text><xsl:value-of select="200.0 div (count(labels/label)-1)"/><xsl:text>,</xsl:text><xsl:value-of select="20"/> </xsl:attribute> </img>
Модифицированный ipn.xsl и diff файл: Медиа:ipn_good_stat.zip