com_release_checking/admin/controllers/ajax.json.php

159 lines
3.6 KiB
PHP
Raw Normal View History

<?php
2022-09-21 10:55:59 +00:00
/**
* @package Joomla.CMS
* @maintainer Llewellyn van der Merwe <https://git.vdm.dev/Llewellyn>
*
* @created 29th July, 2020
* @copyright (C) 2020 Open Source Matters, Inc. <http://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
2021-03-08 23:41:06 +00:00
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
2022-09-21 10:55:59 +00:00
use Joomla\CMS\MVC\Controller\BaseController;
2021-03-08 23:41:06 +00:00
use Joomla\Utilities\ArrayHelper;
/**
2022-09-21 10:55:59 +00:00
* Release_checking Ajax Base Controller
2021-03-08 23:41:06 +00:00
*/
2022-09-21 10:55:59 +00:00
class Release_checkingControllerAjax extends BaseController
2021-03-08 23:41:06 +00:00
{
public function __construct($config)
{
parent::__construct($config);
// make sure all json stuff are set
JFactory::getDocument()->setMimeEncoding( 'application/json' );
2022-09-21 10:55:59 +00:00
// get the application
$app = JFactory::getApplication();
$app->setHeader('Content-Disposition','attachment;filename="getajax.json"');
$app->setHeader('Access-Control-Allow-Origin', '*');
// load the tasks
$this->registerTask('getAction', 'ajax');
2021-03-08 23:41:06 +00:00
$this->registerTask('getActionDescription', 'ajax');
}
public function ajax()
{
2022-09-21 10:55:59 +00:00
// get the user for later use
2021-03-08 23:41:06 +00:00
$user = JFactory::getUser();
2022-09-21 10:55:59 +00:00
// get the input values
2021-03-08 23:41:06 +00:00
$jinput = JFactory::getApplication()->input;
2022-09-21 10:55:59 +00:00
// check if we should return raw
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
// return to a callback function
$callback = $jinput->get('callback', null, 'CMD');
2021-03-08 23:41:06 +00:00
// Check Token!
$token = JSession::getFormToken();
$call_token = $jinput->get('token', 0, 'ALNUM');
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
{
2022-09-21 10:55:59 +00:00
// get the task
2021-03-08 23:41:06 +00:00
$task = $this->getTask();
switch($task)
{
case 'getAction':
try
{
$contextValue = $jinput->get('context', NULL, 'INT');
$joomla_versionValue = $jinput->get('joomla_version', NULL, 'INT');
$current_idValue = $jinput->get('current_id', NULL, 'INT');
if($contextValue && $user->id != 0 && $joomla_versionValue)
{
$result = $this->getModel('ajax')->getAction($contextValue, $joomla_versionValue, $current_idValue);
}
else
{
$result = false;
}
2022-09-21 10:55:59 +00:00
if($callback)
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
2022-09-21 10:55:59 +00:00
if($callback)
{
echo $callback."(".json_encode($e).");";
}
2022-09-21 10:55:59 +00:00
elseif($returnRaw)
{
echo json_encode($e);
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'getActionDescription':
try
{
$actionValue = $jinput->get('action', NULL, 'INT');
if($actionValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getActionDescription($actionValue);
}
else
{
$result = false;
}
2022-09-21 10:55:59 +00:00
if($callback)
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
2022-09-21 10:55:59 +00:00
if($callback)
{
echo $callback."(".json_encode($e).");";
}
2022-09-21 10:55:59 +00:00
elseif($returnRaw)
{
echo json_encode($e);
}
else
{
echo "(".json_encode($e).");";
}
}
2021-03-08 23:41:06 +00:00
break;
}
}
else
{
2022-09-21 10:55:59 +00:00
// return to a callback function
if($callback)
2021-03-08 23:41:06 +00:00
{
echo $callback."(".json_encode(false).");";
}
2022-09-21 10:55:59 +00:00
elseif($returnRaw)
{
echo json_encode(false);
}
2021-03-08 23:41:06 +00:00
else
{
echo "(".json_encode(false).");";
}
}
}
}