Merge pull request #3601 from nickvergessen/ticket/13827

[ticket/13827] Correctly return JSON instead of HTML when valled from AJAX
This commit is contained in:
Nicofuma 2015-05-17 20:01:18 +02:00
commit 309a6b9313

View file

@ -13,6 +13,7 @@
namespace phpbb\controller; namespace phpbb\controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGenerator; use Symfony\Component\Routing\Generator\UrlGenerator;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
@ -212,12 +213,31 @@ class helper
public function message($message, array $parameters = array(), $title = 'INFORMATION', $code = 200) public function message($message, array $parameters = array(), $title = 'INFORMATION', $code = 200)
{ {
array_unshift($parameters, $message); array_unshift($parameters, $message);
$message_text = call_user_func_array(array($this->user, 'lang'), $parameters);
$message_title = $this->user->lang($title);
if ($this->request->is_ajax())
{
global $refresh_data;
return new JsonResponse(
array(
'MESSAGE_TITLE' => $message_title,
'MESSAGE_TEXT' => $message_text,
'S_USER_WARNING' => false,
'S_USER_NOTICE' => false,
'REFRESH_DATA' => (!empty($refresh_data)) ? $refresh_data : null
),
$code
);
}
$this->template->assign_vars(array( $this->template->assign_vars(array(
'MESSAGE_TEXT' => call_user_func_array(array($this->user, 'lang'), $parameters), 'MESSAGE_TEXT' => $message_text,
'MESSAGE_TITLE' => $this->user->lang($title), 'MESSAGE_TITLE' => $message_title,
)); ));
return $this->render('message_body.html', $this->user->lang($title), $code); return $this->render('message_body.html', $message_title, $code);
} }
/** /**