1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-27 20:10:18 +02:00

[ticket/14933] Make "route not found" more user-friendly

PHPBB3-14933
This commit is contained in:
Oliver Schramm
2017-09-09 17:08:27 +02:00
parent 16da17a4ba
commit a29048abd6
3 changed files with 17 additions and 2 deletions

View File

@@ -16,12 +16,20 @@ namespace phpbb\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpFoundation\Response;
class kernel_exception_subscriber implements EventSubscriberInterface
{
/**
* Set to true to show full exception messages
*
* @var bool
*/
protected $debug;
/**
* Template object
*
@@ -45,8 +53,9 @@ class kernel_exception_subscriber implements EventSubscriberInterface
* @param \phpbb\template\template $template Template object
* @param \phpbb\language\language $language Language object
*/
public function __construct(\phpbb\template\template $template, \phpbb\language\language $language)
public function __construct(\phpbb\template\template $template, \phpbb\language\language $language, $debug = false)
{
$this->debug = $debug || defined('DEBUG');
$this->template = $template;
$this->language = $language;
$this->type_caster = new \phpbb\request\type_cast_helper();
@@ -69,6 +78,10 @@ class kernel_exception_subscriber implements EventSubscriberInterface
{
$message = $this->language->lang_array($message, $exception->get_parameters());
}
else if (!$this->debug && $exception instanceof NotFoundHttpException)
{
$message = $this->language->lang('PAGE_NOT_FOUND');
}
// Show <strong> text in bold
$message = preg_replace('#&lt;(/?strong)&gt;#i', '<$1>', $message);
@@ -99,7 +112,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface
$data['message'] = $message;
}
if (defined('DEBUG'))
if ($this->debug)
{
$data['trace'] = $exception->getTrace();
}