Improved the ajax controller.

This commit is contained in:
2021-08-31 16:00:12 +02:00
parent 1651d4358c
commit 5651d3dca8
15 changed files with 307 additions and 153 deletions

View File

@ -29,20 +29,29 @@ class ###Component###ControllerAjax extends JControllerLegacy
parent::__construct($config);
// make sure all json stuff are set
JFactory::getDocument()->setMimeEncoding( 'application/json' );
JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"');
JResponse::setHeader("Access-Control-Allow-Origin", "*");
// get the application
$app = JFactory::getApplication();
$app->setHeader('Content-Disposition','attachment;filename="getajax.json"');
$app->setHeader('Access-Control-Allow-Origin', '*');
// load the tasks ###REGISTER_AJAX_TASK###
}
public function ajax()
{
// get the user for later use
$user = JFactory::getUser();
// get the input values
$jinput = JFactory::getApplication()->input;
// check if we should return raw
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
// return to a callback function
$callback = $jinput->get('callback', null, 'CMD');
// Check Token!
$token = JSession::getFormToken();
$call_token = $jinput->get('token', 0, 'ALNUM');
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
{
// get the task
$task = $this->getTask();
switch($task)
{###AJAX_INPUT_RETURN###
@ -50,10 +59,15 @@ class ###Component###ControllerAjax extends JControllerLegacy
}
else
{
if($callback = $jinput->get('callback', null, 'CMD'))
// return to a callback function
if($callback)
{
echo $callback."(".json_encode(false).");";
}
elseif($returnRaw)
{
echo json_encode(false);
}
else
{
echo "(".json_encode(false).");";

View File

@ -29,20 +29,29 @@ class ###Component###ControllerAjax extends JControllerLegacy
parent::__construct($config);
// make sure all json stuff are set
JFactory::getDocument()->setMimeEncoding( 'application/json' );
JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"');
JResponse::setHeader("Access-Control-Allow-Origin", "*");
// get the application
$app = JFactory::getApplication();
$app->setHeader('Content-Disposition','attachment;filename="getajax.json"');
$app->setHeader('Access-Control-Allow-Origin', '*');
// load the tasks ###REGISTER_SITE_AJAX_TASK###
}
public function ajax()
{
// get the user for later use
$user = JFactory::getUser();
// get the input values
$jinput = JFactory::getApplication()->input;
// check if we should return raw
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
// return to a callback function
$callback = $jinput->get('callback', null, 'CMD');
// Check Token!
$token = JSession::getFormToken();
$call_token = $jinput->get('token', 0, 'ALNUM');
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
{
// get the task
$task = $this->getTask();
switch($task)
{###AJAX_SITE_INPUT_RETURN###
@ -50,10 +59,16 @@ class ###Component###ControllerAjax extends JControllerLegacy
}
else
{
if($callback = $jinput->get('callback', null, 'CMD'))
// return to a callback function
if($callback)
{
echo $callback."(".json_encode(false).");";
}
// return raw
elseif($returnRaw)
{
echo json_encode(false);
}
else
{
echo "(".json_encode(false).");";

View File

@ -27,8 +27,8 @@ class ###Component###ControllerAjax extends JControllerLegacy
parent::__construct($config);
// make sure all json stuff are set
JFactory::getDocument()->setMimeEncoding( 'application/json' );
JResponse::setHeader('Content-Disposition','attachment;filename="getajax.json"');
JResponse::setHeader("Access-Control-Allow-Origin", "*");
JFactory::getApplication()->setHeader('Content-Disposition','attachment;filename="getajax.json"');
JFactory::getApplication()->setHeader("Access-Control-Allow-Origin", "*");
// load the tasks
$this->registerTask('fieldRequired', 'ajax');
}

View File

@ -60,7 +60,7 @@ class ###Component###ModelAjax extends JModelList
$fields = array($name);
}
}
// load the remaining values to seesion
// load the remaining values to session
if(###Component###Helper::checkArray($fields))
{
$session->set($form.'_requiredFieldFix', $fields);