@@ -1,5 +1,5 @@ |
||
1 | 1 | <?php |
2 | -require_once __DIR__ . "/_prepend.php"; |
|
2 | +require_once __DIR__."/_prepend.php"; |
|
3 | 3 | |
4 | 4 | output('<html lang="en"> |
5 | 5 | <head><title>phpxmlrpc - Proxy demo</title></head> |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -require_once __DIR__ . "/_prepend.php"; |
|
2 | +require_once __DIR__."/_prepend.php"; |
|
3 | 3 | |
4 | 4 | output('<html lang="en"> |
5 | 5 | <head><title>phpxmlrpc - Agesort demo</title></head> |
@@ -17,21 +17,21 @@ discard block |
||
17 | 17 | |
18 | 18 | $inAr = array( |
19 | 19 | array('name' => 'Dave', 'age' => 24), |
20 | - array('name' => 'Edd', 'age' => 45), |
|
21 | - array('name' => 'Joe', 'age' => 37), |
|
20 | + array('name' => 'Edd', 'age' => 45), |
|
21 | + array('name' => 'Joe', 'age' => 37), |
|
22 | 22 | array('name' => 'Fred', 'age' => 27), |
23 | 23 | ); |
24 | 24 | |
25 | 25 | output('This is the input data:<br/><pre>'); |
26 | 26 | foreach ($inAr as $val) { |
27 | - output($val['name'] . ", " . $val['age'] . "\n"); |
|
27 | + output($val['name'].", ".$val['age']."\n"); |
|
28 | 28 | } |
29 | 29 | output('</pre>'); |
30 | 30 | |
31 | 31 | // Create xml-rpc parameters from the input array: an array of structs |
32 | 32 | $encoder = new Encoder(); |
33 | 33 | $v = $encoder->encode($inAr); |
34 | -output("Encoded into xml-rpc format it looks like this: <pre>\n" . htmlentities($v->serialize()) . "</pre>\n"); |
|
34 | +output("Encoded into xml-rpc format it looks like this: <pre>\n".htmlentities($v->serialize())."</pre>\n"); |
|
35 | 35 | |
36 | 36 | // create client and request objects |
37 | 37 | $req = new Request('examples.sortByAge', array($v)); |
@@ -51,15 +51,15 @@ discard block |
||
51 | 51 | $value = $resp->value(); |
52 | 52 | foreach ($encoder->decode($value) as $struct) { |
53 | 53 | // note: here we are trusting the server's response to have the expected format |
54 | - output(htmlspecialchars($struct['name']) . ", " . htmlspecialchars($struct['age']) . "\n"); |
|
54 | + output(htmlspecialchars($struct['name']).", ".htmlspecialchars($struct['age'])."\n"); |
|
55 | 55 | } |
56 | 56 | |
57 | - output('</pre><hr/>For nerds: I got this value back<br/><pre>' . |
|
58 | - htmlentities($resp->serialize()) . "</pre><hr/>\n"); |
|
57 | + output('</pre><hr/>For nerds: I got this value back<br/><pre>'. |
|
58 | + htmlentities($resp->serialize())."</pre><hr/>\n"); |
|
59 | 59 | } else { |
60 | 60 | output('An error occurred:<pre>'); |
61 | - output('Code: ' . htmlspecialchars($resp->faultCode()) . |
|
62 | - "\nReason: '" . htmlspecialchars($resp->faultString()) . "'</pre><hr/>"); |
|
61 | + output('Code: '.htmlspecialchars($resp->faultCode()). |
|
62 | + "\nReason: '".htmlspecialchars($resp->faultString())."'</pre><hr/>"); |
|
63 | 63 | } |
64 | 64 | |
65 | 65 | output("</body></html>\n"); |
@@ -91,7 +91,7 @@ |
||
91 | 91 | |
92 | 92 | // Greek word 'kosme'. NB: NOT a valid ISO8859 string! |
93 | 93 | // NB: we can only register this when setting internal encoding to UTF-8, or it will break system.listMethods |
94 | - "tests.utf8methodname." . 'κόσμε' => array( |
|
94 | + "tests.utf8methodname.".'κόσμε' => array( |
|
95 | 95 | "function" => "exampleMethods::stringEcho", |
96 | 96 | "signature" => exampleMethods::$stringecho_sig, |
97 | 97 | "docstring" => exampleMethods::$stringecho_doc, |
@@ -69,11 +69,12 @@ |
||
69 | 69 | $a = $req->getParam(0); |
70 | 70 | $b = $req->getParam(1); |
71 | 71 | |
72 | - if ($a->scalarTyp() == Value::$xmlrpcNull) |
|
73 | - return new Response(new Value(plain_findstate($b->scalarVal()))); |
|
74 | - else |
|
75 | - return new Response(new Value(plain_findstate($a->scalarVal()))); |
|
76 | -} |
|
72 | + if ($a->scalarTyp() == Value::$xmlrpcNull) { |
|
73 | + return new Response(new Value(plain_findstate($b->scalarVal()))); |
|
74 | + } else { |
|
75 | + return new Response(new Value(plain_findstate($a->scalarVal()))); |
|
76 | + } |
|
77 | + } |
|
77 | 78 | |
78 | 79 | return array( |
79 | 80 | "tests.getallheaders" => array( |
@@ -26,7 +26,7 @@ |
||
26 | 26 | */ |
27 | 27 | function plain_findstate($stateNo) |
28 | 28 | { |
29 | - if (isset(exampleMethods::$stateNames[$stateNo - 1])) { |
|
29 | + if (isset(exampleMethods::$stateNames[$stateNo - 1])) { |
|
30 | 30 | return exampleMethods::$stateNames[$stateNo - 1]; |
31 | 31 | } else { |
32 | 32 | // not, there so complain |
@@ -26,11 +26,11 @@ discard block |
||
26 | 26 | */ |
27 | 27 | function plain_findstate($stateNo) |
28 | 28 | { |
29 | - if (isset(exampleMethods::$stateNames[$stateNo - 1])) { |
|
30 | - return exampleMethods::$stateNames[$stateNo - 1]; |
|
29 | + if (isset(exampleMethods::$stateNames[$stateNo-1])) { |
|
30 | + return exampleMethods::$stateNames[$stateNo-1]; |
|
31 | 31 | } else { |
32 | 32 | // not, there so complain |
33 | - throw new Exception("I don't have a state for the index '" . $stateNo . "'", PhpXmlRpc\PhpXmlRpc::$xmlrpcerruser); |
|
33 | + throw new Exception("I don't have a state for the index '".$stateNo."'", PhpXmlRpc\PhpXmlRpc::$xmlrpcerruser); |
|
34 | 34 | } |
35 | 35 | } |
36 | 36 | |
@@ -69,7 +69,7 @@ discard block |
||
69 | 69 | if ($req->getNumParams()) { |
70 | 70 | $p1 = $req->getParam(0); |
71 | 71 | if ($p1->kindOf() === 'scalar') { |
72 | - $errNum = (int)$p1->scalarVal(); |
|
72 | + $errNum = (int) $p1->scalarVal(); |
|
73 | 73 | } |
74 | 74 | } |
75 | 75 | throw new Exception("it's just a test", $errNum); |
@@ -141,13 +141,13 @@ discard block |
||
141 | 141 | |
142 | 142 | $findstate10_sig = array( |
143 | 143 | /// @todo add a demo and test with closure usage |
144 | - "function" => function ($req) { return exampleMethods::findState($req); }, |
|
144 | + "function" => function($req) { return exampleMethods::findState($req); }, |
|
145 | 145 | "signature" => array(array(Value::$xmlrpcString, Value::$xmlrpcInt)), |
146 | - "docstring" => 'When passed an integer between 1 and 51 returns the name of a US state, where the integer is the ' . |
|
146 | + "docstring" => 'When passed an integer between 1 and 51 returns the name of a US state, where the integer is the '. |
|
147 | 147 | 'index of that state name in an alphabetic order.', |
148 | 148 | ); |
149 | 149 | |
150 | -$findstate11_sig = $wrapper->wrapPhpFunction(function ($stateNo) { return plain_findstate($stateNo); }); |
|
150 | +$findstate11_sig = $wrapper->wrapPhpFunction(function($stateNo) { return plain_findstate($stateNo); }); |
|
151 | 151 | |
152 | 152 | /// @todo do we really need a new instance ? |
153 | 153 | $c = new handlersContainer(); |
@@ -156,7 +156,7 @@ discard block |
||
156 | 156 | |
157 | 157 | $namespaceSignatures = $wrapper->wrapPhpClass($c, array('prefix' => 'namespacetest.', 'replace_class_name' => true, 'method_filter' => '/^findState$/', 'method_type' => 'static')); |
158 | 158 | |
159 | -$returnObj_sig = $wrapper->wrapPhpFunction(array($c, 'returnObject'), '', array('encode_php_objs' => true)); |
|
159 | +$returnObj_sig = $wrapper->wrapPhpFunction(array($c, 'returnObject'), '', array('encode_php_objs' => true)); |
|
160 | 160 | |
161 | 161 | return array_merge( |
162 | 162 | array( |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -require_once __DIR__ . "/_prepend.php"; |
|
2 | +require_once __DIR__."/_prepend.php"; |
|
3 | 3 | |
4 | 4 | /** |
5 | 5 | * Demoing the code-generation capabilities of the library: create a client class which exposes a bunch of methods |
@@ -21,12 +21,12 @@ discard block |
||
21 | 21 | ); |
22 | 22 | |
23 | 23 | // the generated code does not have an autoloader included - we need to add in one |
24 | -$autoloader = __DIR__ . "/_prepend.php"; |
|
24 | +$autoloader = __DIR__."/_prepend.php"; |
|
25 | 25 | |
26 | 26 | $targetFile = '/tmp/MyClient.php'; |
27 | 27 | $generated = file_put_contents($targetFile, |
28 | - "<?php\n\n" . |
|
29 | - "require_once '$autoloader';\n\n" . |
|
28 | + "<?php\n\n". |
|
29 | + "require_once '$autoloader';\n\n". |
|
30 | 30 | $code['code'] |
31 | 31 | ); |
32 | 32 | |
@@ -46,8 +46,8 @@ discard block |
||
46 | 46 | $client = new MyClient(); |
47 | 47 | $sorted = $client->examples_sortByAge(array( |
48 | 48 | array('name' => 'Dave', 'age' => 24), |
49 | - array('name' => 'Edd', 'age' => 45), |
|
50 | - array('name' => 'Joe', 'age' => 37), |
|
49 | + array('name' => 'Edd', 'age' => 45), |
|
50 | + array('name' => 'Joe', 'age' => 37), |
|
51 | 51 | array('name' => 'Fred', 'age' => 27), |
52 | 52 | )); |
53 | 53 |
@@ -8,5 +8,5 @@ |
||
8 | 8 | } |
9 | 9 | |
10 | 10 | // Use the custom class autoloader. These two lines are not needed when the phpxmlrpc library is installed using Composer |
11 | -include_once __DIR__ . '/../../src/Autoloader.php'; |
|
11 | +include_once __DIR__.'/../../src/Autoloader.php'; |
|
12 | 12 | PhpXmlRpc\Autoloader::register(); |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | * `$functions_parameters_type` and `$exception_handling` |
9 | 9 | */ |
10 | 10 | |
11 | -require_once __DIR__ . "/_prepend.php"; |
|
11 | +require_once __DIR__."/_prepend.php"; |
|
12 | 12 | |
13 | 13 | require_once __DIR__.'/methodProviders/CommentManager.php'; |
14 | 14 | |
@@ -19,12 +19,12 @@ discard block |
||
19 | 19 | |
20 | 20 | $addComment_sig = array(array(Value::$xmlrpcInt, Value::$xmlrpcString, Value::$xmlrpcString, Value::$xmlrpcString)); |
21 | 21 | |
22 | -$addComment_doc = 'Adds a comment to an item. The first parameter is the item ID, the second the name of the commenter, ' . |
|
22 | +$addComment_doc = 'Adds a comment to an item. The first parameter is the item ID, the second the name of the commenter, '. |
|
23 | 23 | 'and the third is the comment itself. Returns the number of comments against that ID.'; |
24 | 24 | |
25 | 25 | $getComments_sig = array(array(Value::$xmlrpcArray, Value::$xmlrpcString)); |
26 | 26 | |
27 | -$getComments_doc = 'Returns an array of comments for a given ID, which is the sole argument. Each array item is a struct ' . |
|
27 | +$getComments_doc = 'Returns an array of comments for a given ID, which is the sole argument. Each array item is a struct '. |
|
28 | 28 | 'containing name and comment text.'; |
29 | 29 | |
30 | 30 | $srv = new Server(); |
@@ -1,5 +1,5 @@ |
||
1 | 1 | <?php |
2 | -require_once __DIR__ . "/_prepend.php"; |
|
2 | +require_once __DIR__."/_prepend.php"; |
|
3 | 3 | |
4 | 4 | /** |
5 | 5 | * Demoing the charset conversion of the library: create a client class which uses data in the CP-1252 character set, |
@@ -17,7 +17,7 @@ discard block |
||
17 | 17 | // Make sure we set the correct charset type for output, so that we can display all characters |
18 | 18 | header('Content-Type: text/html; charset=utf-8'); |
19 | 19 | |
20 | -include __DIR__ . '/common.php'; |
|
20 | +include __DIR__.'/common.php'; |
|
21 | 21 | if ($action == '') { |
22 | 22 | $action = 'list'; |
23 | 23 | } |
@@ -33,30 +33,30 @@ discard block |
||
33 | 33 | /// @const JSXMLRPC_PATH Path to the visual xml-rpc editing dialog's containing folder. Can be absolute, or |
34 | 34 | /// relative to this debugger's folder. |
35 | 35 | if (defined('JSXMLRPC_PATH')) { |
36 | - $editorpaths = array(JSXMLRPC_PATH[0] === '/' ? JSXMLRPC_PATH : (__DIR__ . '/' . JSXMLRPC_PATH)); |
|
36 | + $editorpaths = array(JSXMLRPC_PATH[0] === '/' ? JSXMLRPC_PATH : (__DIR__.'/'.JSXMLRPC_PATH)); |
|
37 | 37 | } else { |
38 | 38 | $editorpaths = array( |
39 | - __DIR__ . '/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via taskfile |
|
40 | - __DIR__ . '/vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via composer inside the debugger |
|
41 | - __DIR__ . '/node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via npm inside the debugger |
|
42 | - __DIR__ . '/../vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via composer |
|
43 | - __DIR__ . '/../node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via npm |
|
44 | - __DIR__ . '/../../jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc too |
|
45 | - __DIR__ . '/../../../../debugger/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level via taskfile (ie. jsonrpc) |
|
46 | - __DIR__ . '/../../../../debugger/vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level debugger via composer |
|
47 | - __DIR__ . '/../../../../debugger/node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level debugger via npm |
|
48 | - __DIR__ . '/../../../../node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed via npm in the top-level project |
|
39 | + __DIR__.'/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via taskfile |
|
40 | + __DIR__.'/vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via composer inside the debugger |
|
41 | + __DIR__.'/node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via npm inside the debugger |
|
42 | + __DIR__.'/../vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via composer |
|
43 | + __DIR__.'/../node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is top-level, jsxmlrpc installed via npm |
|
44 | + __DIR__.'/../../jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc too |
|
45 | + __DIR__.'/../../../../debugger/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level via taskfile (ie. jsonrpc) |
|
46 | + __DIR__.'/../../../../debugger/vendor/phpxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level debugger via composer |
|
47 | + __DIR__.'/../../../../debugger/node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed in the top-level debugger via npm |
|
48 | + __DIR__.'/../../../../node_modules/@jsxmlrpc/jsxmlrpc/debugger/', // this package is a composer dependency, jsxmlrpc installed via npm in the top-level project |
|
49 | 49 | ); |
50 | 50 | } |
51 | - foreach($editorpaths as $editorpath) { |
|
52 | - if (is_file(realpath($editorpath . 'visualeditor.html'))) { |
|
51 | + foreach ($editorpaths as $editorpath) { |
|
52 | + if (is_file(realpath($editorpath.'visualeditor.html'))) { |
|
53 | 53 | $haseditor = true; |
54 | 54 | break; |
55 | 55 | } |
56 | 56 | } |
57 | 57 | if ($haseditor) { |
58 | - $controllerRootUrl = str_replace('/controller.php', '', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); |
|
59 | - $editorurlpath = $controllerRootUrl . '/' . preg_replace('|^' . preg_quote(__DIR__, '|') .'|', '', $editorpath); |
|
58 | + $controllerRootUrl = str_replace('/controller.php', '', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); |
|
59 | + $editorurlpath = $controllerRootUrl.'/'.preg_replace('|^'.preg_quote(__DIR__, '|').'|', '', $editorpath); |
|
60 | 60 | /// @todo for cases above 4 and up, look at $controllerRootUrl and check if the web root is not pointing directly |
61 | 61 | /// at this folder, as in that case the link to the visualeditor will not |
62 | 62 | /// work, as it will be in the form http(s)://domain/../../jsxmlrpc/debugger/visualeditor.html |
@@ -233,7 +233,7 @@ discard block |
||
233 | 233 | } |
234 | 234 | |
235 | 235 | function activateeditor() { |
236 | - var url = '<?php echo $editorurlpath; ?>visualeditor.html?params=<?php echo str_replace(array("\\", "'"), array( "\\\\", "\\'"), $alt_payload); ?>'; |
|
236 | + var url = '<?php echo $editorurlpath; ?>visualeditor.html?params=<?php echo str_replace(array("\\", "'"), array("\\\\", "\\'"), $alt_payload); ?>'; |
|
237 | 237 | if (document.frmaction.wstype.value == "1") |
238 | 238 | url += '&type=jsonrpc'; |
239 | 239 | var wnd = window.open(url, '_blank', 'width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=1'); |
@@ -278,7 +278,7 @@ discard block |
||
278 | 278 | JSON-RPC'; |
279 | 279 | } ?> |
280 | 280 | Debugger</h1><h3>(based on <a href="https://gggeek.github.io/phpxmlrpc/">PHPXMLRPC</a>, ver. <?php echo htmlspecialchars(\PhpXmlRpc\PhpXmlRpc::$xmlrpcVersion)?> |
281 | -<?php if (class_exists('\PhpXmlRpc\JsonRpc\PhpJsonRpc')) echo ' and <a href="https://gggeek.github.io/phpxmlrpc-jsonrpc/">PHPJOSNRPC</a>, ver. ' . htmlspecialchars(\PhpXmlRpc\JsonRpc\PhpJsonRpc::$jsonrpcVersion); ?>)</h3> |
|
281 | +<?php if (class_exists('\PhpXmlRpc\JsonRpc\PhpJsonRpc')) echo ' and <a href="https://gggeek.github.io/phpxmlrpc-jsonrpc/">PHPJOSNRPC</a>, ver. '.htmlspecialchars(\PhpXmlRpc\JsonRpc\PhpJsonRpc::$jsonrpcVersion); ?>)</h3> |
|
282 | 282 | <form name="frmaction" method="get" action="action.php" target="frmaction" onSubmit="switchFormMethod();"> |
283 | 283 | |
284 | 284 | <table id="serverblock"> |
@@ -339,7 +339,7 @@ discard block |
||
339 | 339 | </select> |
340 | 340 | </td> |
341 | 341 | <td class="labelcell">Timeout:</td> |
342 | - <td><input type="text" name="timeout" size="3" value="<?php if ($timeout > 0) { echo $timeout; } ?>"/></td> |
|
342 | + <td><input type="text" name="timeout" size="3" value="<?php if ($timeout>0) { echo $timeout; } ?>"/></td> |
|
343 | 343 | <td></td> |
344 | 344 | <td></td> |
345 | 345 | </tr> |
@@ -66,7 +66,12 @@ discard block |
||
66 | 66 | <html lang="en"> |
67 | 67 | <head> |
68 | 68 | <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico"> |
69 | - <title><?php if (defined('DEFAULT_WSTYPE') && DEFAULT_WSTYPE == 1) echo 'JSON-RPC'; else echo 'XML-RPC'; ?> Debugger</title> |
|
69 | + <title><?php if (defined('DEFAULT_WSTYPE') && DEFAULT_WSTYPE == 1) { |
|
70 | + echo 'JSON-RPC'; |
|
71 | +} else { |
|
72 | + echo 'XML-RPC'; |
|
73 | +} |
|
74 | +?> Debugger</title> |
|
70 | 75 | <meta name="robots" content="index,nofollow"/> |
71 | 76 | <script type="text/javascript" language="Javascript"> |
72 | 77 | if (window.name != 'frmcontroller') |
@@ -266,19 +271,26 @@ discard block |
||
266 | 271 | </script> |
267 | 272 | </head> |
268 | 273 | <body |
269 | - onload="<?php if ($hasjsonrpcclient) echo "switchtransport($wstype); " ?>switchaction(); switchssl(); switchauth(); swicthcainfo();<?php if ($run) { |
|
274 | + onload="<?php if ($hasjsonrpcclient) { |
|
275 | + echo "switchtransport($wstype); " ?>switchaction(); switchssl(); switchauth(); swicthcainfo();<?php if ($run) { |
|
270 | 276 | echo ' document.frmaction.submit();'; |
277 | +} |
|
271 | 278 | } ?>"> |
272 | 279 | <h1>XML-RPC |
273 | 280 | <?php if ($hasjsonrpcclient) { |
274 | 281 | echo '<form name="frmxmlrpc" style="display: inline;" action="."><input name="yes" type="radio" onclick="switchtransport(0);"'; |
275 | 282 | // q: does this if make sense at all? |
276 | - if (!class_exists('\PhpXmlRpc\Client')) echo ' disabled="disabled"'; |
|
283 | + if (!class_exists('\PhpXmlRpc\Client')) { |
|
284 | + echo ' disabled="disabled"'; |
|
285 | + } |
|
277 | 286 | echo ' /></form> / <form name="frmjsonrpc" style="display: inline;" action="."><input name="yes" type="radio" onclick="switchtransport(1);"/></form> |
278 | 287 | JSON-RPC'; |
279 | 288 | } ?> |
280 | 289 | Debugger</h1><h3>(based on <a href="https://gggeek.github.io/phpxmlrpc/">PHPXMLRPC</a>, ver. <?php echo htmlspecialchars(\PhpXmlRpc\PhpXmlRpc::$xmlrpcVersion)?> |
281 | -<?php if (class_exists('\PhpXmlRpc\JsonRpc\PhpJsonRpc')) echo ' and <a href="https://gggeek.github.io/phpxmlrpc-jsonrpc/">PHPJOSNRPC</a>, ver. ' . htmlspecialchars(\PhpXmlRpc\JsonRpc\PhpJsonRpc::$jsonrpcVersion); ?>)</h3> |
|
290 | +<?php if (class_exists('\PhpXmlRpc\JsonRpc\PhpJsonRpc')) { |
|
291 | + echo ' and <a href="https://gggeek.github.io/phpxmlrpc-jsonrpc/">PHPJOSNRPC</a>, ver. ' . htmlspecialchars(\PhpXmlRpc\JsonRpc\PhpJsonRpc::$jsonrpcVersion); |
|
292 | +} |
|
293 | +?>)</h3> |
|
282 | 294 | <form name="frmaction" method="get" action="action.php" target="frmaction" onSubmit="switchFormMethod();"> |
283 | 295 | |
284 | 296 | <table id="serverblock"> |