%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/webservice.server/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/webservice.server/templates/.default/template.tester.php |
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if (!isset($arParams["WSDESCR"])) { echo GetMessage("BX_WSTMPL_ERROR_NOWSDESCR"); return; } $templateDataSource = $arParams["WSDESCR"]; $wsName = $arParams["WEBSERVICE_NAME"]; $wsClass = $arParams["WEBSERVICE_CLASS"]; $getclass = htmlspecialcharsEx($_GET["class"]); $getop = htmlspecialcharsEx($_GET["op"]); if (!isset($templateDataSource->classes[$getclass][$getop])) { ShowError(GetMessage("BX_WSTMPL_ERRSEC_NOOP")); return; } $opdecl = $templateDataSource->classes[$getclass][$getop]; $methodDeclared = "<h2>"; if (isset($opdecl["output"])) { foreach ($opdecl["output"] as $pname => $pparam) break; $methodDeclared .= "<i>{$pname}"; if (isset($pparam["arrType"])) $methodDeclared .= "[]"; $methodDeclared .= ":{$pparam[varType]}</i>"; $methodDeclared .= " "; } $methodDeclared .= $getop."("; if (isset($opdecl["input"]) and count($opdecl["input"])) { foreach ($opdecl["input"] as $pname => $pparam) { $varType = ""; if (isset($pparam["varType"])) $varType = $pparam["varType"]; $methodDeclared .= "<i>{$varType} {$pname}</i>"; if (isset($pparam["arrType"])) $methodDeclared .= "[]"; $methodDeclared .= ", "; } $methodDeclared = substr($methodDeclared, 0, strlen($methodDeclared) - 2); } $methodDeclared .= ");</h2>"; $methodDeclared .= "<br>"; $methodDescription = ""; if (isset($opdecl["description"])) { $methodDescription .= "<br><b>".GetMessage("BX_WSTMPL_DOC")."</b><br>"; $methodDescription .= $opdecl["description"]."<br>"; } ?> <html> <head> <title> <?= GetMessage("BX_WSTMPL_TITLE_PREFIX").$wsName; ?> </title> <style type="text/css"> BODY { color: #000000; background-color: white; font-family: Verdana; margin-left: 0px; margin-top: 0px; } #content { margin-left: 30px; font-size: .70em; padding-bottom: 2em; } A:link { color: #336699; font-weight: bold; text-decoration: underline; } A:visited { color: #6699cc; font-weight: bold; text-decoration: underline; } A:active { color: #336699; font-weight: bold; text-decoration: underline; } A:hover { color: cc3300; font-weight: bold; text-decoration: underline; } P { color: #000000; margin-top: 0px; margin-bottom: 12px; font-family: Verdana; } pre { background-color: #e5e5cc; padding: 5px; font-family: Courier New; font-size: x-small; margin-top: -5px; border: 1px #f0f0e0 solid; } td { color: #000000; font-family: Verdana; font-size: .7em; } h2 { font-size: 1.5em; font-weight: bold; margin-top: 25px; margin-bottom: 10px; border-top: 1px solid #003366; margin-left: -15px; color: #003366; } h3 { font-size: 1.1em; color: #000000; margin-left: -15px; margin-top: 10px; margin-bottom: 10px; } ul { margin-top: 10px; margin-left: 20px; } ol { margin-top: 10px; margin-left: 20px; } li { margin-top: 10px; color: #000000; } font.value { color: darkblue; font: bold; } font.key { color: darkgreen; font: bold; } font.error { color: darkred; font: bold; } .heading1 { color: #ffffff; font-family: Tahoma; font-size: 26px; font-weight: normal; background-color: #003366; margin-top: 0px; margin-bottom: 0px; margin-left: -30px; padding-top: 10px; padding-bottom: 3px; padding-left: 15px; width: 100%; } .button { background-color: #dcdcdc; font-family: Verdana; font-size: 1em; border-top: #cccccc 1px solid; border-bottom: #666666 1px solid; border-left: #cccccc 1px solid; border-right: #666666 1px solid; } .frmheader { color: #000000; background: #dcdcdc; font-family: Verdana; font-size: .7em; font-weight: normal; border-bottom: 1px solid #dcdcdc; padding-top: 2px; padding-bottom: 2px; } .frmtext { font-family: Verdana; font-size: .7em; margin-top: 8px; margin-bottom: 0px; margin-left: 32px; } .frmInput { font-family: Verdana; font-size: 1em; } .intro { margin-left: -15px; } </style> </head> <body> <div id="content"> <p class="heading1"><?=GetMessage("BX_WSTMPL_WEBSERVICE").$wsName;?></p><br> <span> <p class="intro"> <?=GetMessage("BX_WSTMPL_BACKPRE");?> <a href="?"><?=GetMessage("BX_WSTMPL_BACK");?></a> </p> </span> <table width="600px" border=1> <tr> <td><?=GetMessage("BX_WSTMPL_NAMESPACE");?></td> <td><?=$templateDataSource->wstargetns;?></td> </tr> <tr> <td><?=GetMessage("BX_WSTMPL_ENDPOINT");?></td> <td><?=$arParams["WSDESCR"]->wsendpoint;?></td> </tr> <tr> <td><?=GetMessage("BX_WSTMPL_BSTYLE");?></td> <td>document/literal only</td> </tr> </table><br> <? echo $methodDeclared; echo $methodDescription; echo "<br><b>".GetMessage("BX_WSTMPL_TEST")."</b><br>"; $input = array(); $request = array(); if (isset($opdecl["input"])) $input = $opdecl["input"]; if (!$input and !isset($opdecl["input"])) { echo GetMessage("BX_WSTMPL_ERROR_NOFORCOMPLEX"); echo "</body></hmtl>"; return; } $xsd_simple_type = array( "string"=>"string", "bool"=>"boolean", "boolean"=>"boolean", "int"=>"integer", "integer"=>"integer", "double"=>"double", "float"=>"float", "number"=>"float", "base64"=>"string", "base64Binary"=>"string" ); foreach ($input as $pname => $param) { if (!isset($param["varType"]) or !isset($xsd_simple_type[$param["varType"]])) { echo GetMessage("BX_WSTMPL_ERROR_NOFORCOMPLEX"); echo "</body></hmtl>"; return; } if (isset($_POST[$pname])) $request[] = htmlspecialcharsEx($_POST[$pname]); } echo " <form action=\"?class={$getclass}&op={$getop}&directcall=1\" method=\"POST\"> <table cellspacing=\"0\" cellpadding=\"4\" frame=\"box\" bordercolor=\"#dcdcdc\" rules=\"none\" style=\"border-collapse: collapse;\"> "; if (count($input)) echo " <tr> <td class=\"frmHeader\" background=\"#dcdcdc\" style=\"border-right: 2px solid white;\">".GetMessage("BX_WSTMPL_ERROR_PARAMETER")."</td> <td class=\"frmHeader\" background=\"#dcdcdc\">".GetMessage("BX_WSTMPL_ERROR_VALUE")."</td> </tr> "; foreach ($input as $pname => $param) { $value = ""; if (isset($_POST[$pname])) $value = htmlspecialcharsEx($_POST[$pname]); echo " <tr> <td class=\"frmText\" style=\"color: #000000; font-weight: normal;\">{$pname}:</td> <td><input value=\"$value\" class=\"frmInput\" type=\"text\" size=\"50\" name=\"{$pname}\"></td> </tr> "; } echo " <tr> <td></td> <td align=\"right\"><input type=\"submit\" value=\"".GetMessage("BX_WSTMPL_ERROR_SUBMIT")."\" class=\"button\"></td> </tr> "; echo "</table></form>"; if (isset($_GET["directcall"]) and count($request)<count($input)) { $request = array(); echo GetMessage("BX_WSTMPL_ERROR_NOTENOUGHTPARAMS"); } if (isset($_GET["directcall"])) { echo "<b>".GetMessage("BX_WSTMPL_RESULT")."</b><br>"; if (count($request)==count($input) and class_exists($getclass)) { $object = new $getclass; $result = call_user_func_array(array($object, $getop), $request); $xml = CXMLCreator::encodeValueLight("result", $result); $xml_str = $xml->getXML(); global $APPLICATION; $APPLICATION->RestartBuffer(); $payload = CXMLCreator::getXMLHeader().$xml_str; header("Pragma: no-cache"); header( "SOAPServer: BITRIX SOAP" ); header( "Content-Type: text/xml; charset=\"UTF-8\"" ); Header( "Content-Length: " . (defined('BX_UTF') && BX_UTF == 1 && function_exists('mb_strlen') ? mb_strlen($payload, 'latin1') : strlen($payload)) ); echo $payload; die(); } else { echo GetMessage("BX_WSTMPL_ERROR_UNKNOWN"); } } ?> </div> </body> </html>