docker-tmserver/tmserver/RemoteControlExamples/PhpRemote/ListMethods.php

69 lines
1.5 KiB
PHP

<?php
header('Content-Type: text/html; charset=utf-8');
require('GbxRemote.inc.php');
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
echo "<HTML>\n<HEAD>\n";
echo "\t<TITLE>Trackmania methods</TITLE>\n";
echo "</HEAD>\n<BODY>\n";
echo "<h1>Available methods:</h1>\n";
$client = new IXR_Client_Gbx;
if (!$client->Init(5000)) {
die('An error occurred - ' . $client->getErrorCode() . ':' . $client->getErrorMessage());
}
if (!$client->query('system.listMethods')) {
die('An error occurred - ' . $client->getErrorCode() . ':' . $client->getErrorMessage());
}
$methods = $client->getResponse();
print '<ul>';
foreach ($methods as $m) {
print '<li><b>' . $m . "</b><br/>\n";
if ($client->query('system.methodSignature', $m)) {
$signatures = $client->getResponse();
} else {
print "<font color='red'>{error in signature}</font><br/>\n";
$signatures = array();
}
if ($client->query('system.methodHelp', $m)) {
$help = $client->getResponse();
} else {
$help = "<font color='red'>{no help}</font>";
}
foreach ($signatures as $sig) {
$is_retval = 1;
$is_firstarg = 1;
foreach ($sig as $argtype) {
if ($is_retval) {
print $argtype . ' ' . $m . '(';
$is_retval = 0;
} else {
if (!$is_firstarg) {
print ', ';
}
print $argtype;
$is_firstarg = 0;
}
}
print ")<br/>\n";
}
print "<font color='0x113355'>";
print $help;
print "</font></li>\n";
}
print '</ul>';
$client->Terminate();
echo "\n</BODY>\n</HTML>\n";
flush();
?>