Merge pull request #3 from mt-site front-page...
Merge pull request #3 from mt-site front-page Remove "Community" page link and replace MTVN ad.

File last commit:

6c602be266b6
b3f392803e49 merge
Show More
mtapi.php
78 lines | 1.7 KiB | text/x-php | PhpLexer
<?php
require_once('external.php');
function toXML($data)
{
$xml = new XmlWriter();
$xml->openMemory();
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement('root');
function write(XMLWriter $xml, $data)
{
foreach($data as $key => $value)
{
if(is_array($value))
{
echo "$key\n";
$xml->startElement($key);
write($xml, $value);
$xml->endElement();
continue;
}
$xml->writeElement($key, $value);
}
}
write($xml, $data);
$xml->endElement();
return $xml->outputMemory(true);
}
$API = new ReflectionClass('MTAPIi');
if( $API->hasMethod($_GET['method']) ) {
$method = $API->getMethod($_GET['method']);
$parameters = $method->getParameters();
$method_parameters = Array();
foreach($parameters as $parameter) {
$param = (Array) $parameter;
$parameter_name = reset($param);
if(isset( $_GET[$parameter_name] ))
array_push($method_parameters, $_GET[$parameter_name]);
elseif( 'xml' == $parameter->getName() && 'xml' == $_GET['output-type'] )
array_push($method_parameters, true);
elseif( $parameter->isOptional() )
{ /* empty */ }
else {
header('HTTP/1.0 400 Bad Request');
printf( 'Parameter %s is required but not supplied', $parameter_name );
}
}
$result = $method->invokeArgs($API, $method_parameters);
switch($_GET['output-type']) {
case 'json':
$result = json_encode($result);
header('Content-Type: application/json');
echo $result;
break;
case 'xml':
header('Content-Type: application/xml');
echo $result;
break;
default:
header('HTTP/1.0 400 Bad Request');
header('Content-Type: text/plain');
print_r($result);
break;
}
} else {
header('HTTP/1.0 404 Not Found');
echo 'There is no such method in the MT API.';
}
?>