BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 июн 2025, 22:13

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Обновление с 4.6 до 5.0, вопросы по API
СообщениеДобавлено: 16 сен 2010, 16:50 
Обновился на тестовом биллинге с 4.6 до 5.0
Перестал корректно работать метод setErrorStatus() в моем классе, то есть вместо сообщений выводится пустой лист.
В layout.xsl template "error" остался прежним, или в 5.0 поменялся механизм вывода сообщений пользователю в кабинет?


Вернуться к началу
  
 
СообщениеДобавлено: 16 сен 2010, 18:13 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
сравните xml ответов в 4.6. и 5.0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 сен 2010, 19:05 
Ответы выглядят одинаково:
Цитата:
<data action="Mail" balance_mode="1"
comment="Иванов Иван Иванович" contract="343" fc="0"
id="3119" mid="contract" module="contract" status="error" title="343">
<menu>
<item action="ShowSessions" mid="2" module="dialup" title="Просмотр Ваших соединений"/>
<item action="ShowLoginsBalance" mid="2" module="dialup" title="Затраты на Интернет"/>
<item action="ChangeLoginPassword" mid="2" module="dialup" title="Cмена пароля для соединения"/>
<item action="TrayInfo" mid="5" module="trayinfo" title="Параметры программы просмотра баланса"/>
<item action="MPS" mid="9" module="mps" title="Платежные системы"/>
<item action="WM" mid="10" module="wm" title="Оплата через WebMoney"/>
<item action="HelpDeskTable" mid="0"
module="ru.bitel.bgbilling.plugins.helpdesk" title="HelpDesk"/>
<item action="DocumentsTable" mid="0"
module="ru.bitel.bgbilling.plugins.documents" title="Документы"/>
</menu>Имя ящика 'testtest' уже занято, пожалуйста, выберите другое имя.<contract_data>
<contract balance_rest="111.00" cid="3119"
comment="Иванов Иван Иванович" date1="24.03.2009"
date2="" fc="0" firm="1" gr="1" limit="0.00" mode="1"
param_group="2" pswd="pass" status="0" status_date=""
time="16.09.2010 18:59" title="343">
<tariff date1="24.03.2009" date2="" tariff_plan="Сотрудник" tpid="16"/>
</contract>


В 5.0 надписи которая выделена красным не видно в кабинете пользователя. Это сообщение выводится методом setErrorStatus() в исключительной ситуации.


Вернуться к началу
  
 
СообщениеДобавлено: 16 сен 2010, 20:16 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
попробуйте сравнить xsl-файлы


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 сен 2010, 20:21 
какой именно xsl-файл посоветуете смотреть?
через какой template выводятся сообщения метода setErrorStatus() ?

ps
есть патчи, сделанные через diff


Вернуться к началу
  
 
СообщениеДобавлено: 17 сен 2010, 13:01 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
через то же шаблон error и выводится...

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 сен 2010, 13:01 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
какой именно xsl-файл посоветуете смотреть?
ваш шаблон, где вы ожидаете вывод получить. он у вас собственный или как? давайте его сюда покажите...

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 сен 2010, 14:26 
вот код из класса при исключительной ситуации

Код:
        if((mail_login.length() < 5) || (mail_login.length() > 20)) {
             System.out.print("Ошибка: длина логина неверна, " + mail_login.length() + " символов (допускается от 5 до 20).");
             setErrorStatus("Ошибка: длина логина неверна, " + mail_login.length() + " символов (допускается от 5 до 20).");
             return;
        }


вот код шаблона

Код:
<xsl:template name="chacc">
                        <form method='post' action='{$WEBEXECUTER}'>
                        <xsl:call-template name="error"/>
                        <input type="hidden" name="action" value="AstraMail"/>
                        <input type="hidden" name="param_add" value="1"/>

                <div class="report">
                        <table cellspacing='1'>
                        <col class="col1"/>
                        <col class="col2"/>
                        <tbody>
                          <tr>
                                <th>Имя ящика:</th>
                                <td><input type='edit' name='param_login' size='20' maxlength='20'/></td>
                          </tr>
                          <tr>
                                <th>Пароль:</th>
                                <td><input type='edit' name='param_pass' size='20' maxlength='20'/></td>
                          </tr>
                         </tbody>
                         <tfoot>
                          <tr><td colspan='2'>

                                <xsl:call-template name="submit">
                                        <xsl:with-param name="title" select="'Создать почтовый ящик'"/>
                                </xsl:call-template>

                          </td></tr>
                         </tfoot>
                        </table>
                </div>
                        </form>
</xsl:template>


Так вот при исключительной ситуации в логах запись вижу, а в кабинете белый лист (на версии 4.6 все норм)
еще раз повторюсь что template "error" в файле layout.xsl в 4.6 и в 5.0 одинаков, xml-ответы тоже


Вернуться к началу
  
 
СообщениеДобавлено: 17 сен 2010, 14:39 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
если белый лист, значит ошибка при трансформации xml в html, см. логи на предмет ошибок


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 сен 2010, 15:11 
1) Поиск в xsl, находясь в webroot/xsl версии 5.0

Цитата:
bill xsl # grep 'xsl:template name="error"' /usr/local/BGBillingServer.old/webroot/xsl/* | grep -v bak | grep -v orig | grep -v new
/usr/local/BGBillingServer.old/webroot/xsl/layout.xsl: <xsl:template name="error">
/usr/local/BGBillingServer.old/webroot/xsl/ru.bitel.bgbilling.plugins.helpdesk.xsl: <xsl:template name="error">

bill xsl # grep 'xsl:template name="error"' * | grep -v bak | grep -v orig | grep -v new
layout.xsl: <xsl:template name="error">
ru.bitel.bgbilling.plugins.helpdesk.xsl: <xsl:template name="error">




2) при включенном DEBUG в log4
server.error.log пустой

вот строки после выполнения action

server.log писал(а):
09-17/15:12:17 DEBUG [http-8443-4] server - Web auth modes:
09-17/15:12:17 DEBUG [http-8443-4] server - 0 => 1
09-17/15:12:17 DEBUG [http-8443-4] server - 5 => 1
09-17/15:12:17 DEBUG [http-8443-4] server - clid=39
09-17/15:12:17 INFO [http-8443-4] LoggingPrintStream - Ошибка: длина логина неверна, 1 символов (допускается от 5 до 20).


то есть System.out.print срабатывает

может есть возможность заменить метод setErrorStatus() на какой-нибудь подобный?


Вернуться к началу
  
 
СообщениеДобавлено: 17 сен 2010, 16:00 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
да не, если вас белый лист то причём тут шаблон error? это что-то с xsl у вас, при попытке трансформации он падает.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 сен 2010, 16:34 
dimOn писал(а):
да не, если вас белый лист то причём тут шаблон error? это что-то с xsl у вас, при попытке трансформации он падает.


после обновления в файлы xsl я внес изменения, то есть добавил свой template в main.xsl
но не выводится текстовое сообщение методом setErrorStatus()
если сделать ошибку, допустим в смене пароля через кабинет статистики, то ошибка выводится нормально в красной рамке, но тогда почему не выводится ошибочное сообщение с моем классе (код темплейта выложен ранее)?


Вернуться к началу
  
 
СообщениеДобавлено: 17 сен 2010, 16:43 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
я не понял что вы там сделали. что, куда и зачем добавили. зачем в main.xsl нужен этот template? он в лаяуте был всегда. короче, ничего не понятно что было, что стало и что именно не работает.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 сен 2010, 16:59 
ок
давайте по порядку

какой template и из какого файла xsl выдает сообщение метода setErrorStatus()?


Вернуться к началу
  
 
СообщениеДобавлено: 18 сен 2010, 21:31 
Итак проблема в следующем:

После обновления с 4.6 на 5.0 не видны сообщения в кабинете, отправляемые методом setErrorStatus() из класса, находящегося в bitel/billing/server/contract.
Вместо сообщения белый лист.

XML-ответы одинаковы для 4.6 и 5.0 (&ct=xml), то есть в исходниках XML-ответа сообщение видно.
Шаблоны "error" в файлах layout.xsl одинаковы.
Мои шаблоны работают корректно.

Код класса работает корректно, определяя исключительную ситуацию
Код:
        if((mail_login.length() < 5) || (mail_login.length() > 20)) {
             System.out.print("Ошибка: длина логина неверна, " + mail_login.length() + " символов (допускается от 5 до 20).");
             setErrorStatus("Ошибка: длина логина неверна, " + mail_login.length() + " символов (допускается от 5 до 20).");
             return;
        }

Сообщение от System.out.print вижу в логе.
Сообщение от setErrorStatus вижу в XML-ответе, но не в html-ответе.

В чем решение?


Вернуться к началу
  
 
СообщениеДобавлено: 19 сен 2010, 22:17 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
попробуйте откатить xsl на оригинальные, при них ошибку выводит?

то что у вас белый лист говорит о том что происходит сбой при трансформации, а в трансформации не только темплейт error участвует, возможно другая темплейт виноват.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 сен 2010, 23:51 
ок
попробую - завтра отпишусь


Вернуться к началу
  
 
СообщениеДобавлено: 20 сен 2010, 11:10 
поднял бекап директории BGBillingServer версии 4.6
обновил согласно документации до 5.0
результат тот же, даже без добавления моих шаблонов

создал тестовый класс WebAction_TTT

Код:
package bitel.billing.server.contract;

import bitel.billing.server.contract.action.ActionBase;

public final class WebAction_TTT extends ActionBase
{
    public void doAction()
        {
             System.out.print("Test: тест");
             setErrorStatus("Test: тест");
        }
};


скомпилировал его как bitel/billing/server/contract/WebAction_TTT.class
упаковал в ttt.jar и закинул его в lib/
перезапустил BG

обратился напрямую по адресу https ://bill.server.com:8443/bgbilling/webexecuter?action=TTT&ct=xml
в xml-ответе

Цитата:
<data action="TTT" balance_mode="1" comment="test"
contract="111" fc="0" id="39" mid="contract" module="contract"
status="error" title="111">
<menu>
<item action="ShowSessions" mid="2" module="dialup" title="Просмотр Ваших соединений"/>
<item action="ShowLoginsBalance" mid="2" module="dialup" title="Затраты на Интернет"/>
<item action="ChangeLoginPassword" mid="2" module="dialup" title="Cмена пароля для соединения"/>
<item action="TrayInfo" mid="5" module="trayinfo" title="Параметры программы просмотра баланса"/>
<item action="MPS" mid="9" module="mps" title="Платежные системы"/>
<item action="WM" mid="10" module="wm" title="Оплата через WebMoney"/>
<item action="Card" mid="11" module="card" title="Оплата по картам"/>
<item action="HelpDeskTable" mid="0"
module="ru.bitel.bgbilling.plugins.helpdesk" title="HelpDesk"/>
<item action="DocumentsTable" mid="0"
module="ru.bitel.bgbilling.plugins.documents" title="Документы"/>
</menu>Test: тест<contract_data>
<contract balance_rest="40.00" cid="39"
comment="test" date1="11.01.2009"
date2="" fc="0" firm="1" gr="1" limit="0.00" mode="1"
param_group="2" pswd="rrrr" status="0" status_date=""
time="20.09.2010 10:58" title="111">
<tariff date1="01.12.2008" date2="" tariff_plan="Сотрудник" tpid="16"/>
</contract>


в html так же белый лист

осталось сравнить через diff все xls файлы из бекапа и из обновленной директории webroot/xsl, после сравнения опишусь


Вернуться к началу
  
 
СообщениеДобавлено: 20 сен 2010, 16:28 
Вот разница шаблонов (не вывел только register_print_task_order.xsl.patch, думаю он не играет важной роли)

common.xsl писал(а):
--- /tmp/common.xsl.old 2010-09-20 16:09:00.000000000 +0600
+++ /tmp/common.xsl.new 2010-09-20 16:09:00.000000000 +0600
@@ -35,15 +35,15 @@
</xsl:if>
<tr>
<th><img src="img/strelki.gif"/></th>
- <td><a href="?action=AdditionalAction&amp;mid=contract">Дополнительные действия</a></td>
- </tr>

+ <td><a href="?action=ContractStatus&amp;mid=contract">Управление статусом</a></td>
+ </tr>

<tr>
<th><img src="img/strelki.gif"/></th>
- <td><a href="?action=MemoTable&amp;mid=contract">Примечания</a></td>
+ <td><a href="?action=AdditionalAction&amp;mid=contract">Дополнительные действия</a></td>
</tr>
<tr>
<th><img src="img/strelki.gif"/></th>
- <td><a href="?action=AstraMail_main">Почта</a></td>
+ <td><a href="?action=MemoTable&amp;mid=contract">Примечания</a></td>
</tr>
</xsl:template>
<!--
@@ -312,7 +312,8 @@
<xsl:variable name="selected">
<xsl:choose>
<xsl:when test="/data/date/@month"><xsl:value-of select="/data/date/@month"/></xsl:when>
- <!-- новый --><xsl:when test="/data/common:result/attributes/item[@key='date1']/value/@month"><xsl:value-of select="/data/common:result/attributes/item[@key='date1']/value/@month"/></xsl:when>
+ <!-- новый <xsl:when test="/data/common:result/attributes/item[@key='date1']/value/@month"><xsl:value-of select="/data/common:result/attributes/item[@key='date1']/value/@month"/></xsl:when>-->
+ <!-- новый --><xsl:when test="/data/common:result/attributes/item[@key='date1']/value"><xsl:value-of select="/data/common:result/attributes/item[@key='date1']/value/text()"/></xsl:when>

<xsl:when test="/data/date/@selected_month"><xsl:value-of select="number(/data/date/@selected_month)+1"/></xsl:when>
<xsl:otherwise><xsl:value-of select="number(/data/date/@curr_month)+1"/></xsl:otherwise>
</xsl:choose>
@@ -440,4 +441,4 @@
</xsl:for-each>
</xsl:template>

-</xsl:stylesheet>
+</xsl:stylesheet>


dialup.xsl писал(а):
--- /tmp/dialup.xsl.old 2010-09-20 16:09:00.000000000 +0600
+++ /tmp/dialup.xsl.new 2010-09-20 16:09:00.000000000 +0600
@@ -12,7 +12,7 @@
<xsl:when test="data/@action = 'DispatchDirect'">Рассылка отчета по направлениям</xsl:when>
<xsl:when test="data/@action = 'ShowPeriods'">Учетные периоды</xsl:when>
<xsl:when test="data/@action = 'DynDnsChange'">Управление динамическим ДНС</xsl:when>
- <xsl:when test="data/@action = 'test'">TEST</xsl:when>
+
</xsl:choose>
</xsl:template>

@@ -42,9 +42,7 @@
<xsl:when test="@action = 'DynDnsChange'">
<xsl:call-template name="DynDnsChange"/>
</xsl:when>
- <xsl:when test="@action = 'test'">
- <xsl:call-template name="Test"/>
- </xsl:when>

+
</xsl:choose>
</xsl:template>

@@ -712,15 +710,6 @@

</xsl:template>

-<xsl:template name="Test">
- <select name="test">
- <option value="-1">---</option>
- <xsl:for-each select="/data/test/table/row">
- <option value="{@id}"><xsl:value-of select="@title"/></option>
- </xsl:for-each>
- </select>
-</xsl:template>
-

<xsl:template name="AddReportReferences">
<div id="idDivPhoneReportSave">
Отчет в виде:
@@ -730,4 +719,4 @@
<a title="HTML/ZIP" href="{$WEBEXECUTER}?module=dialup&amp;mid={/data/@mid}&amp;action=ShowSessions&amp;login={/data/logins/@id}&amp;month={/data/date/@month}&amp;year={/data/date/@year}&amp;day_from={/data/date/@day_from}&amp;day_to={/data/date/@day_to}&amp;file=1&amp;output=html&amp;zip=1">HTML/ZIP</a>(После изменения фильтра сначала нажмите "Вывести")
</div>
</xsl:template>
-</xsl:stylesheet>
+</xsl:stylesheet>


ipn.xsl писал(а):
--- /tmp/ipn.xsl.old 2010-09-20 16:09:00.000000000 +0600
+++ /tmp/ipn.xsl.new 2010-09-20 16:09:00.000000000 +0600
@@ -29,7 +29,25 @@
<table class="filter" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">
- <xsl:call-template name="dayFilterForm"/>
+ <table>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th>Ед. измерения </th>
+ <td>
+ <select name='unit'>
+ <xsl:call-template name="unit_list"/>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <xsl:call-template name="dayFilterForm"/>
+ </td>
+ </tr>
+ </table>

</td>
</tr>
<tr>
@@ -94,35 +112,45 @@
</tfoot>
</table>

-
+ <xsl:variable name="unit" select="/data/unit/@unit"/>
<!-- нижняя табличка -->
- <strong>Итого: <xsl:value-of select="format-number( stat/@all, '### ### ### ##0', 'summa')"/>&#160;(&#160;<xsl:value-of select="format-number( stat/@all div 1048576, '### ### ### ##0', 'summa')"/>&#160;Мбайт&#160;)</strong>
+ <strong>Итого: <xsl:value-of select="format-number( stat/@all div $unit, '### ### ### ##0.#', 'summa')"/>
+ &#160;
+ <xsl:call-template name="unit_title">
+ <xsl:with-param name="unit" select="$unit"/>
+ </xsl:call-template>
+ </strong>

<table id="idIpnStatTable" cellspacing="1" class="table">
<tbody>

<xsl:call-template name="addStatRow">
<xsl:with-param name="from_pos" select="0"/>
<xsl:with-param name="to_pos" select="7"/>
+ <xsl:with-param name="unit" select="$unit"/>
</xsl:call-template>

<xsl:call-template name="addStatRow">
<xsl:with-param name="from_pos" select="6"/>
<xsl:with-param name="to_pos" select="13"/>
+ <xsl:with-param name="unit" select="$unit"/>
</xsl:call-template>

<xsl:call-template name="addStatRow">
<xsl:with-param name="from_pos" select="12"/>
<xsl:with-param name="to_pos" select="19"/>
+ <xsl:with-param name="unit" select="$unit"/>
</xsl:call-template>

<xsl:call-template name="addStatRow">
<xsl:with-param name="from_pos" select="18"/>
<xsl:with-param name="to_pos" select="25"/>
+ <xsl:with-param name="unit" select="$unit"/>
</xsl:call-template>

<xsl:call-template name="addStatRow">
<xsl:with-param name="from_pos" select="24"/>
<xsl:with-param name="to_pos" select="31"/>
+ <xsl:with-param name="unit" select="$unit"/>
</xsl:call-template>

<xsl:for-each select="labels/label">
@@ -311,6 +339,7 @@
<xsl:template name="addStatRow">
<xsl:param name="to_pos"/>
<xsl:param name="from_pos"/>
+<xsl:param name="unit"/>
<tr>
<xsl:for-each select="labels/label">
<xsl:if test='position() &lt; $to_pos and position() &gt; $from_pos'>
@@ -324,7 +353,7 @@
<xsl:variable name="id" select="@id"/>
<xsl:variable name="value" select="/data/stat/item[@id = $id]/@value"/>
<td>
- <xsl:if test="$value"><xsl:value-of select="format-number( $value, '### ### ### ##0', 'summa')"/></xsl:if>
+ <xsl:if test="$value"><xsl:value-of select="format-number( $value div $unit, '### ### ### ##0.#', 'summa')"/></xsl:if>
<xsl:if test="not( $value )">0</xsl:if>
</td>
</xsl:if>


layout.xsl писал(а):
--- /tmp/layout.xsl.old 2010-09-20 16:09:00.000000000 +0600
+++ /tmp/layout.xsl.new 2010-09-20 16:09:00.000000000 +0600
@@ -191,7 +191,7 @@
<td class="line"><div></div></td>
</tr>
<tr>
- <td height="45" align="right" id="idTdFooter">© 2007-2009 <a href="http://www.bitel.ru/" style="color: white;">BiTel, Ltd.</a></td>
+ <td height="45" align="right" id="idTdFooter">© 2007-2010 <a href="http://www.bitel.ru/" style="color: white;">BiTel, Ltd.</a></td>
</tr>
</table>
</body>
@@ -206,7 +206,8 @@
<xsl:choose>
<xsl:when test="$text"><div class="errorMessage"><xsl:value-of select="$text"/></div></xsl:when>
<xsl:when test="@status = 'error'">
- <div class="errorMessage"><b>Ошибка:</b>&#160;<xsl:value-of select="/data/text()"/></div>
+ <!-- <div class="errorMessage"><b>Ошибка:</b>&#160;<xsl:value-of select="/data/text()"/></div> -->
+ <div class="errorMessage"><b>Ошибка:</b>&#160;<pre><xsl:value-of select="/data/text()"/></pre></div>

</xsl:when>
<!-- Это неверный способ передачи сообщения об ошибке. Постепенно убрать везде где используется в Web акшенах. -->
<xsl:otherwise>
@@ -559,4 +560,37 @@

<xsl:template name="head">
</xsl:template>
+
+ <xsl:template name="unit_list">
+ <option>
+ <xsl:if test="/data/unit/@unit='1'"><xsl:attribute name="selected">1</xsl:attribute></xsl:if>
+ <xsl:attribute name="value">1</xsl:attribute>
+ байт
+ </option>
+ <option>
+ <xsl:if test="/data/unit/@unit='1024'"><xsl:attribute name="selected">1</xsl:attribute></xsl:if>
+ <xsl:attribute name="value">1024</xsl:attribute>
+ Кб.
+ </option>
+ <option>
+ <xsl:if test="/data/unit/@unit='1048576'"><xsl:attribute name="selected">1</xsl:attribute></xsl:if>
+ <xsl:attribute name="value">1048576</xsl:attribute>
+ Мб.
+ </option>
+ <option>
+ <xsl:if test="/data/unit/@unit='1073741824'"><xsl:attribute name="selected">1</xsl:attribute></xsl:if>
+ <xsl:attribute name="value">1073741824</xsl:attribute>
+ Гб.
+ </option>
+ </xsl:template>
+
+ <xsl:template name="unit_title">
+ <xsl:param name="unit"/>
+ <xsl:choose>
+ <xsl:when test="$unit=1">байт</xsl:when>
+ <xsl:when test="$unit=1024">Кб.</xsl:when>
+ <xsl:when test="$unit=1048576">Мб.</xsl:when>
+ <xsl:when test="$unit=1073741824">Гб.</xsl:when>
+ </xsl:choose>
+ </xsl:template>

</xsl:stylesheet>


login.xsl писал(а):
--- /tmp/login.xsl.old 2010-09-20 16:09:00.000000000 +0600
+++ /tmp/login.xsl.new 2010-09-20 16:09:00.000000000 +0600
@@ -44,7 +44,7 @@
</form>

<!--
-<form method="post" action="webex ecuter">
+<form method="post" action="webexecuter">
<input type="hidden" name="midAuth" value="21"/>
<table align="center" width="300px" class="filter" style="margin-top:20px;">
<tr>


main.xsl писал(а):
--- /tmp/main.xsl.old 2010-09-20 16:09:00.000000000 +0600
+++ /tmp/main.xsl.new 2010-09-20 16:09:00.000000000 +0600
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="windows-1251"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
->

+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:common="http://common.bitel.ru">
<xsl:import href="layout.xsl"/>

<xsl:template name="title">
@@ -12,10 +10,11 @@
<xsl:when test="data/@action = 'Subscription'">Подписка на рассылки</xsl:when>
<xsl:when test="data/@action = 'DispatchBalance'">Рассылка баланса</xsl:when>
<xsl:when test="data/@action = 'ChangeTariff'">Управление тарифными планами</xsl:when>
+ <xsl:when test="data/@action = 'TariffOption'">Тарифные опции</xsl:when>
<xsl:when test="data/@action = 'ContractLimit'">Управление лимитом</xsl:when>
<xsl:when test="data/@action = 'AdditionalAction'">Дополнительные действия</xsl:when>
- <xsl:when test="data/@action = 'AdditionalAction' and not(data/@module = 'speed') and not(data/@module = 'bonus') and not(data/@module = 'unlim')">Дополнительные действия</xsl:when>
<xsl:when test="data/@action = 'MemoTable' or data/@action = 'Memo'">ПРИМЕЧАНИЯ</xsl:when>
+ <xsl:when test="data/@action = 'ContractStatus'">Управление статусом</xsl:when>
<xsl:otherwise>НОВОСТИ</xsl:otherwise>
</xsl:choose>
</xsl:template>
@@ -46,12 +45,18 @@
<xsl:when test="@action = 'ContractLimit'">
<xsl:call-template name="ContractLimit"/>
</xsl:when>
+ <xsl:when test="@action = 'TariffOption'">
+ <xsl:call-template name="TariffOption"/>
+ </xsl:when>

<xsl:when test="@action = 'AdditionalAction'">
<xsl:call-template name="AdditionalAction"/>
</xsl:when>
<xsl:when test="@action = 'MemoTable' or @action = 'Memo'">
<xsl:call-template name="Memo"/>
</xsl:when>
+ <xsl:when test="@action = 'ContractStatus'">
+ <xsl:call-template name="ContractStatus" />
+ </xsl:when>

<xsl:otherwise>
<xsl:call-template name="news"/>
</xsl:otherwise>
@@ -177,6 +182,10 @@
</div>
</form>

+ <xsl:for-each select="/data/messages/message">
+ <br/><xsl:value-of select="@text"/>
+ </xsl:for-each>
+

<xsl:if test="/data/@has_independent_subs=1">
<form method='post' action='{$WEBEXECUTER}'>
<xsl:call-template name="module"/>
@@ -198,14 +207,7 @@

<input type="hidden" name="commit" value="1"></input>

- <xsl:for-each select="/data/error">
- <br/>
- <div class="errorMessage">
- <xsl:for-each select="row">
- <xsl:value-of select="@text"/> <br/>
- </xsl:for-each>
- </div>
- </xsl:for-each>

+ <xsl:call-template name="error"/>

<table border='0' cellspacing="0" class="filter">
<tr>
@@ -324,23 +326,144 @@
<font size="-2" color="#8e8e8e">Серым</font><font size="-2"> цветом выделены неактивные тарифные планы.</font>
</div>

- <xsl:for-each select="/data/error">
- <br/>
- <div class="errorMessage">
- <xsl:for-each select="row">
- <xsl:value-of select="@text"/> <br/>
- </xsl:for-each>
- </div>
- </xsl:for-each>

+ <xsl:call-template name="error"/>
+</xsl:template>
+
+<!-- тарифные опции -->
+<xsl:template name="TariffOption">
+
+ <form id="show_form" method="post" action="{$WEBEXECUTER}">
+ <xsl:call-template name="action"/>
+ <input type="hidden" id="operation" name="operation"/>
+ </form>
+
+ <table class="filter">
+ <tr>
+ <xsl:choose>
+ <xsl:when test="/data/@operation = 'history'">
+ <th style="padding-right:5pt;"><a href="#" onclick="$('operation').value='execute';$('show_form').submit();">Текущие опции</a></th>
+ <th>История опций</th>
+ </xsl:when>
+ <xsl:otherwise>
+ <th style="padding-right:5pt;">Текущие опции</th>
+ <th><a href="#" onclick="$('operation').value='history';$('show_form').submit();">История опций</a></th>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ </table>
+
+ <div class="report">
+
+ <table cellspacing='1' class="table800" style="margin-top:5pt">
+ <thead>
+ <tr>
+ <td>Опция</td>
+ <td>Начало</td>
+ <td>Окончание</td>
+ <td>Стоимость активации*</td>
+ </tr>
+ </thead>
+ <tbody>
+ <xsl:for-each select="common:result/data/item">
+ <tr>
+ <td><xsl:value-of select="@optionTitle"/></td>
+ <td><xsl:value-of select="@timeFrom"/></td>
+ <td>
+
+ <xsl:choose>
+ <xsl:when test="@timeTo and string-length(@timeTo) &gt; 0">
+ <xsl:value-of select="@timeTo"/>
+
+ <xsl:variable name="optionId" select="@optionId"/>
+ <xsl:variable name="activatedMode" select="@activatedMode"/>
+ <xsl:if test="/data/common:result/attributes/item[@key='options']/value/item[@id=$optionId]/activateModeList[@id=$activatedMode]/@reactivationMode = 1">
+ <xsl:call-template name="button">
+ <xsl:with-param name="align" select="'center'"/>
+ <xsl:with-param name="onclick">if( confirm( &quot;Вы уверены, что хотите реактивировать опцию?&quot; ) ){ $('reactivate_form').id.value='<xsl:value-of select="@id"/>';$('reactivate_form').submit(); }</xsl:with-param>
+ <xsl:with-param name="title" select="'Реактивировать'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="button">
+ <xsl:with-param name="align" select="'center'"/>
+ <xsl:with-param name="onclick">if( confirm( &quot;Вы уверены, что хотите деактивировать опцию?&quot; ) ){ $('deactivate_form').id.value='<xsl:value-of select="@id"/>';$('deactivate_form').submit(); }</xsl:with-param>
+ <xsl:with-param name="title" select="'Деактивировать'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td><xsl:value-of select="@summa"/></td>
+ </tr>
+ </xsl:for-each>
+ </tbody>
+ </table>
+
+ <em class="comment">*Стоимость активации - сумма, снимаемая в момент активации опции и
+ не отражает периодической платы за пользование, если таковая предусмотрена в тарифном плане.</em>
+
+ <form id="deactivate_form" method="post" action="{$WEBEXECUTER}">
+ <xsl:call-template name="action"/>
+ <input type="hidden" name="operation" value="deactivate"/>
+ <input type="hidden" id="contractTariffOptionId" name="id"/>
+ </form>
+
+ <form id="reactivate_form" method="post" action="{$WEBEXECUTER}">
+ <xsl:call-template name="action"/>
+ <input type="hidden" name="operation" value="reactivate"/>
+ <input type="hidden" name="id"/>
+ </form>
+ </div>


- <xsl:for-each select="/data/message">
- <br/>
- <div class="infoMessage">
- <xsl:for-each select="row">
- <xsl:value-of select="@text"/> <br/>
- </xsl:for-each>
- </div>
- </xsl:for-each>

+ <xsl:if test="/data/@operation != 'history'">
+
+ <br/>
+
+ <form id="activate_form" method="post" action="{$WEBEXECUTER}">
+ <xsl:call-template name="action"/>
+ <input type="hidden" name="operation" value="activate"/>
+
+ <table cellspacing="0" class="filter">
+ <tr>
+ <th>Активировать опцию:</th>
+ <td>
+ <select name="option_id" onChange="$('activate_form').operation.value='execute';$('activate_form').submit();">
+ <xsl:for-each select="common:result/attributes/item[@key='available_options']/value/item">
+ <option value="{@id}">
+ <xsl:if test="@id=/data/common:result/attributes/item[@key='option_id']/value"><xsl:attribute name="selected">1</xsl:attribute></xsl:if>
+ <xsl:value-of select="@title" />
+ </option>
+ </xsl:for-each>
+ </select>
+ </td>
+ <td>
+ <select name="mode_id">
+ <xsl:for-each select="common:result/attributes/item[@key='available_modes']/value/item">
+ <option value="{@id}">
+ <xsl:if test="@id=/data/common:result/attributes/item[@key='mode_id']/value"><xsl:attribute name="selected">1</xsl:attribute></xsl:if>
+ <xsl:value-of select="@modeTitle" />
+ </option>
+ </xsl:for-each>
+ </select>
+ </td>
+ <td>
+ <!--
+ <xsl:call-template name="submit">
+ <xsl:with-param name="title" select="'Активировать'"/>
+ </xsl:call-template>
+ -->
+ <xsl:call-template name="button">
+ <xsl:with-param name="onclick">if( confirm( &quot;Вы уверены, что хотите активировать опцию?&quot; ) ){ $('activate_form').submit(); }</xsl:with-param>
+ <xsl:with-param name="title" select="'Активировать'"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </table>
+ </form>
+
+ </xsl:if>
+
+ <xsl:call-template name="error"/>

</xsl:template>


@@ -541,7 +664,6 @@

<form method="post" action="{$WEBEXECUTER}">
<xsl:call-template name="action"/>
- <xsl:call-template name="error"/>
<xsl:call-template name="monthFilterForm"/>

<div class="report">
@@ -628,85 +750,6 @@
</xsl:choose>
</xsl:template>

-<!-- AdditionalAction -->
-<xsl:template name="AdditionalAction">
- <form method="post" action="{$WEBEXECUTER}">
- <xsl:call-template name="action"/>
- <xsl:call-template name="error"/>
-
- <table cellspacing="0" width="90%">
- <tr>
- <td style="font-size:14px;">
-
-
-В этой вкладке Вы можете выбрать дополнительные услуги.<br />
-
- тескт услуг
- </td>
- </tr>
- </table>
- <br /><br />
-
-
- <table cellspacing="0" class="filter">
- <tr>
- <th>Выполнить действие:</th>
- <td>
- <select name="action_id" id="action_id">
- <xsl:for-each select="/data/list/action">
- <xsl:if test="@id &lt; 100">
- <option>
- <xsl:attribute name="value"><xsl:value-of select="@id"/></xsl:attribute>
- <xsl:value-of select="@title"/>
- </option>
- </xsl:if>
- </xsl:for-each>
- </select>
- </td>
- <td>
- <xsl:call-template name="submitConfirmAddAction"><xsl:with-param name="title" select="'Выполнить'"/></xsl:call-template>
- </td>
- </tr>
- <xsl:if test="/data/report or /data/html">
- <tr>
- <th colspan="2" align="left">Отчет:</th>
- </tr>
- </xsl:if>
- </table>
-
- <div class="report">
- <table cellspacing="0">
- <xsl:for-each select="/data/report">
- <tr>
- <td><div class="infoMessage">
- <xsl:for-each select="row">
- <xsl:value-of select="@text"/><br/>
- </xsl:for-each>
- </div></td>
- </tr>
- </xsl:for-each>
-
- <xsl:for-each select="/data/html">
- <tr>
- <td>
- <xsl:copy-of select="*|text()"/>
- </td>
- </tr>
- </xsl:for-each>
- </table>
- </div>
- </form>
-</xsl:template>
-
-<!--

<xsl:template name="AdditionalAction">
<form method="post" action="{$WEBEXECUTER}">
<xsl:call-template name="action"/>
@@ -735,7 +778,6 @@
</tr>
</xsl:if>
</table>
- -->

<!--
поменял, см ниже
@@ -762,7 +804,6 @@
</div>
-->

- <!--
<div class="report">
<table cellspacing="0">
<xsl:for-each select="/data/report">
@@ -787,7 +828,6 @@

</form>
</xsl:template>
--->

<xsl:template name="submitConfirmTariff">
<xsl:param name="title"/>
@@ -806,4 +846,118 @@
</xsl:call-template>
</xsl:template>

+<xsl:template name="ContractStatus">
+
+ <xsl:call-template name="error"/>
+
+ <form method="post" action="{$WEBEXECUTER}">
+ <xsl:call-template name="action"/>
+
+ <div class="report">
+ <table cellspacing="1" class="table800">
+ <thead>
+ <tr>
+ <td>Период</td>
+ <td>Статус</td>
+ <td>Комментарий</td>
+ </tr>
+ </thead>
+ <tbody>
+ <xsl:for-each select="statuses/status">
+ <tr>
+ <td><xsl:value-of select="@period"/></td>
+ <td><xsl:value-of select="@status"/></td>
+ <td><xsl:value-of select="@comment"/></td>
+ </tr>
+ </xsl:for-each>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td colspan="3" style="text-align: left;">Текущий статус: <xsl:value-of select="/data/@statusstr"/></td>
+ </tr>
+ </tfoot>
+ </table>
+ <em class="comment">
+ Здесь можно приостановить или активировать договор. Приостановить договор можно
+ не ранее завтрашнего числа. Активировать можно начиная с сегодняшнего.
+ </em>
+ </div>
+ </form>
+
+ <br/>
+
+ <xsl:choose>
+ <!-- если canchange=1 -->
+ <xsl:when test="/data/@canchange=1">
+ <form method="post" action="{$WEBEXECUTER}">
+ <xsl:call-template name="module"/>
+ <input type="hidden" name="action" value="ContractStatus" />
+ <input type="hidden" name="command" value="Change" />
+ <table cellspacing="0" class="filter">
+ <tr>
+ <th>
+ <xsl:choose>
+ <!-- CONTRACT_STATUS_ACTIVE -->
+ <xsl:when test="/data/@statusint=0">
+ Заблокировать
+ <input type="hidden" name="status" value="4" />
+ </xsl:when>
+ <!-- CONTRACT_STATUS_SUSPENDED -->
+ <xsl:when test="/data/@statusint=4">
+ Активировать
+ <input type="hidden" name="status" value="0" />
+ </xsl:when>
+ </xsl:choose>
+ договор с
+ </th>
+ <td>
+ <!-- если есть список дат, то он рисуется, иначе рисуются поля для ручного ввода даты -->
+ <xsl:choose>
+ <xsl:when test="/data/date_list">
+ <td>
+ <select name="from_date" >
+ <xsl:for-each select="/data/date_list/item">
+ <option value="{@value}"><xsl:value-of select="@value"/></option>
+ </xsl:for-each>
+ </select>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>
+ <select name="day">
+ <option value='0'><xsl:if test="/data/date/@day = '0'"><xsl:attribute name="selected">1</xsl:attribute></xsl:if>--</option>
+ <xsl:call-template name="day_list"/>
+ </select>
+ </td>
+ <td>
+ <select name="month">
+ <xsl:call-template name="month_list"/>
+ </select>
+ </td>
+ <td>
+ <select name="year">
+ <option value="{/data/date/@year}"><xsl:value-of select="/data/date/@year"/></option>
+ <option value="{/data/date/@year + 1}"><xsl:value-of select="/data/date/@year + 1"/></option>
+ </select>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:call-template name="submit">
+ <xsl:with-param name="title" select="'Выполнить'"/>
+ <xsl:with-param name="guid" select="'_set'"/>
+ </xsl:call-template>
+ </td>
+ </tr>
+ </table>
+ </form>
+ </xsl:when>
+ <xsl:otherwise>
+ Статус нельзя изменить.
+ </xsl:otherwise>
+ </xsl:choose>
+
+</xsl:template>
+

</xsl:stylesheet>


trayinfo.xsl писал(а):
--- /tmp/trayinfo.xsl.old 2010-09-20 16:09:01.000000000 +0600
+++ /tmp/trayinfo.xsl.new 2010-09-20 16:09:01.000000000 +0600
@@ -56,7 +56,9 @@
<xsl:for-each select="types/type">
<option><xsl:attribute name="value"><xsl:value-of select="@id"/></xsl:attribute>
<xsl:value-of select="@title"/>
- ( на <xsl:value-of select="@days"/> дней за <xsl:value-of select="@cost"/> руб. )
+ ( на <xsl:if test="@days='0'">бесконечный срок</xsl:if>
+ <xsl:if test="@days!='0'"> <xsl:value-of select="@days"/> дней </xsl:if>
+ за <xsl:value-of select="@cost"/> руб. )

</option>
</xsl:for-each>
</select>


Вернуться к началу
  
 
СообщениеДобавлено: 20 сен 2010, 16:35 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
сохраните xml ответ в отдельный файл и положите его в каталог с xsl
и попробуйте вызвать его через браузер
в xml должна быть корректная ссылка (путь) на xsl-ки
браузер попытается их обработать и если есть ошибки то их должен показать


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2010, 17:22 
Сохранил xml-ответ на запрос _https://bill.server.com:8443/bgbilling/webexecuter?action=TTT&ct=xml
в файл test.xml и поместил в webroot/xsl
затем обратился браузером по ссылке
_https://bill.server.com:8443/bgbilling/xsl/test.xml

увидел надпись
Цитата:
Test: тест

то есть работает как надо

а если запросить вот так _https://bill.server.com:8443/bgbilling/webexecuter?action=TTT&ct=xml
то опять белый лист


Вернуться к началу
  
 
СообщениеДобавлено: 20 сен 2010, 18:45 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Вы поймите, что если у вас белый лист - это ошибка где-то вне шаблона, либо же это ошибка самого шаблона (синтаксиса). Вывод стандартный ошибок тут непричём. Я так и не понял что именно ВЫ сделали того, после чего всё перестало работать. Что куда добавили? До того, как ВЫ что-то трогали всё везде работало? Или что-то не работает из стандартного? Что именно сделали после? Где именно? Если это ваше - то если не выводите ошибки через setErrorStatus то всё работает? Или перестаёт только после того как вы делаете setErrorStatus?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2010, 18:50 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
То есть вы делаете свой класс, и в стандартных xsl уже не выводит ошибок?
Выводят ли ошибки любые другие стандартные классы? Выходит, что и они не выводят?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2010, 18:54 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
То есть вопрос вот в чём: у вас вообще ЧТО-НИБУДЬ работает? Пусть даже без вывода ошибок? Вот вы сделали экшен свой с названием TTT, он вызывается типа. Потом вы показываете вывод xml, всё отлично. Потом показываете свой шаблон. И вот после этого я вообще ничего не понимаю - у вас вообще показывается ваша страница?? Почему вы всё время твердите про "не выводятся сообщения об ошибке", если раз десять упомянули, что у вас БЕЛЫЙ ЛИСТ? Белый лист это не с сообщениями об ошибке проблема, причём тут вообще они, если у вас не работает вообще всё в целом. Или я не понял чего-то :facepalm:

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2010, 21:05 
В общем все просто
Я написал свой класс месяца 3 назад и все работало все корректно до обновления до 5.0.

После обновления все функции и шаблоны работают нормально, кроме вывода сообщений при использовании моего класса.
То что работает нормально
То есть если попытаться сменить пароль через кабинет и намеренно сделать там допустим, разными новый пароль и его подтверждение - сообщение об ошибке отобразится корректно, как положено в красной рамке.

То что работает некорректно
Выше я указал простой класс TTT, в нему я обращаюсь браузером напрямую по ссылке
_https://bill.server.com:8443/bgbilling/webexecuter?action=TTT
Во фрейме я вижу белый лист. То есть сообщение не выводится в формате html, а в формате xml я его вижу, если сделаю запрос типа _https://bill.server.com:8443/bgbilling/webexecuter?action=TTT&ct=xml
То есть не происходит преобразование в html
При этом не используется никаких моих шаблонов и преобразований. Я не перехватываю этот экшен в шаблонах вообще.

Насколько я понимал до недавнего времени, за трансформацию сообщений метода setErrorStatus() из xml в html отвечал шаблон "error", который в layout.xls, но он не менялся это видно из сравнений xls, которые я приводил выше.

То есть итого:
Есть мой класс который работает не совсем корректно, так как он не может ничего написать пользователю в случае ошибки (вернее он пишет, но в кабинете, работающем естественно в режиме html - не видно сообщения).
Мой класс естественно отличается от класса TTT, но метод тот же. TTT это просто мой класс из которого я убрал все кроме интересующего меня метода.
PS
Что касается моих шаблонов, они работают, отображают нужные окошки и кнопки, но я их не указываю, чтоб и так не вносить путаницу.


Вернуться к началу
  
 
СообщениеДобавлено: 21 сен 2010, 01:09 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
покажите содержимое вашего класса, может проблема в нем. (можно в личку или на мыло)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 сен 2010, 04:20 
Достаточно проверить упрощенный класс, который я описывал ранее.

WebAction_TTT.java писал(а):
package bitel.billing.server.contract;

import bitel.billing.server.contract.action.ActionBase;

public final class WebAction_TTT extends ActionBase
{
public void doAction()
{
System.out.print("Test: тест");
setErrorStatus("Test: тест");
}
};


класс расположен в bitel/billing/server/contract с именем WebAction_TTT.class
архив в директории lib с именем ttt.jar

При вызове этого экшена напрямую по ссылке webexecuter?action=TTT должно выполнятся 2 вещи:

1) Запись в server.log
2) Вывод пользователю в кабинет

1 пункт работает корректно
2 пункт не работает полностью, сообщение видно только в xml-ответе, в html-ответе его не видно


Вернуться к началу
  
 
СообщениеДобавлено: 21 сен 2010, 09:11 
заработало после указания связки
Цитата:
<xsl:when test="@action = 'TTT'">
<xsl:call-template name="error"/>
</xsl:when>

в main.xsl

всем спасибо за участие :)


Вернуться к началу
  
 
СообщениеДобавлено: 21 сен 2010, 13:36 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Не, ну это как-то уж совсем. И причём тут setErrorStatus :D

Ну, если вы НЕ писали в своём классе setErrorStatus("Test: тест"); то есть класс был бы такой:

Код:
package bitel.billing.server.contract;

import bitel.billing.server.contract.action.ActionBase;

public final class WebAction_TTT extends ActionBase
{
public void doAction()
{
System.out.print("Test: тест");
}
};


то что, у вас что-нибудь рисуется? думаю. что нет :roll: Мы так и не поняли откуда вы решили, что проблема в шаблоне error.

А если у вас после

Код:
<xsl:when test="@action = 'TTT'">
<xsl:call-template name="error"/>
</xsl:when>
заработало, то дело вообще совсем в другом, у вас даже если бы из шаблона формировался результат, то справа было бы пусто, потому что соответствующего подшаблона в main нету. Шаблончик error вообще бы нигде не выполнялся просто-напросто. У вас так и в 4.6 без этого (ну, или без какого-то подвключения из другого валидного по пути подшаблона) точно не могло бы работать. Зуб даю! :idea:

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 сен 2010, 13:50 
dimOn писал(а):
заработало, то дело вообще совсем в другом, у вас даже если бы из шаблона формировался результат, то справа было бы пусто, потому что соответствующего подшаблона в main нету. Шаблончик error вообще бы нигде не выполнялся просто-напросто. У вас так и в 4.6 без этого (ну, или без какого-то подвключения из другого валидного по пути подшаблона) точно не могло бы работать. Зуб даю!


Работало в 4.6 без подшаблона, так как указан был шаблон "error" из layout.xsl

Причина ясна, спасибо за участие :D

ps
вообще обновляюсь не первый раз и львиную долю времени отнимает правка шаблонов xsl
понимаю, что не в праве критиковать, но разобраться в множестве файлов xsl, с множеством шаблонов не просто. Если по API есть документация, то по шаблонам приходится доходить через поиск,консультации на форуме или самому.


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.059s | 43 Queries | GZIP : On ]