Files
2024-07-15 11:28:08 +02:00

65 lines
1.3 KiB
PHP

<?php
/**
* @package solo
* @copyright Copyright (c)2014-2019 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU GPL version 3 or later
*/
namespace Solo\Controller;
class Json extends ControllerDefault
{
/**
* Always execute the 'json' task
*
* @param string $task
*
* @return boolean|null
*/
public function execute($task)
{
$this->input->set('task', 'json');
$task = 'json';
return parent::execute($task);
}
/**
* Handles API calls
*/
public function json()
{
// Use the model to parse the JSON message
if (function_exists('ob_start'))
{
@ob_start();
}
$sourceJSON = $this->input->get('json', null, 'raw');
// On some !@#$%^& servers where magic_quotes_gpc is On we might get extra slashes added
if (function_exists('get_magic_quotes_gpc'))
{
if (get_magic_quotes_gpc())
{
$sourceJSON = stripslashes($sourceJSON);
}
}
/** @var \Solo\Model\Json $model */
$model = $this->getModel();
$json = $model->execute($sourceJSON);
if (function_exists('ob_end_clean'))
{
@ob_end_clean();
}
// Just dump the JSON and tear down the application, without plugins executing
header('Content-type: text/plain');
header('Connection: close');
echo $json;
$this->container->application->close();
}
}