[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Доработка формы заказа для BILLmanager
phper
Всем привет!
В php я новичок, как в общем-то и в других языках, поэтому пишу здесь.
Я приобрел BillManager от ispsystem, оказалось, что для моих нужд требуется динамически изменять форму. Описание форм реализовано при помощи XML.
Для начала нужно описать обработчик при помощи того же XML:

<?xml version="1.0" encoding="UTF-8"?>

<mgrdata>
<handler
name="websoft.php" type="xml">
<event
after="yes">uniservice.order.param</event>
</handler>


Используем событие "after".

Далее пишем сам обработчик "websoft.php":


setXml();


function setXml()
{
$xml = getXml();
$sx = new SimpleXMLElement($xml);
$rez = $sx->xpath("//field[@name='domainlevel']")[0]->addChild("desc name='domainlevel_desc'");
echo $sx->asXml();
}
function getXml()
{
$xml = "";
$stdin = fopen("php://stdin","r");
while(!feof($stdin))
{
$buffer = fgets($stdin,1000);
$xml .= $buffer;
}
fclose($stdin);
return $xml;
}


Скрипт ловит xml поток, ищет тэг "field" с атрибутом name='domainlevel' и добавляет дочерний элемент desc name='domainlevel_desc.

Вроде бы всё хорошо, при открытии формы, всё сработало верно, НО
при нажатии кнопки далее - ошибка.

Выяснилось, что при событии event after обработчик запускается, и при открытии формы, и при закрытии, т.е. нажатии на кнопку далее.
Соответственно, при нажатии кнопки далее, нужно передать обратно неизменный XML. Отличить закрытие формы от открытия, можно по наличию тэга <sok>ok</sok> в XML потоке. Т.Е. при закрытии он есть, а при открытии - нет.
Добавляю условие в обработчик:

$xml_string = file_get_contents("php://stdin");
$doc = simplexml_load_string($xml_string);
$sok = $doc->params->sok;
if ($sok == "") {
setXml() //открытие формы
} else {
echo $doc->asXML(); //закрытие формы
}


Итог: При закрытии формы условие срабатывает верно, а при открытии setXml() не срабатывает.

Помогите, пожалуйста, разобраться.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.