strict_variables: "%kernel.debug%"
form_themes:
- "LexikFormFilterBundle:Form:form_div_layout.html.twig"
+ exception_controller: wallabag_core.exception_controller:showAction
# Doctrine Configuration
doctrine:
--- /dev/null
+<?php
+
+namespace Wallabag\CoreBundle\Controller;
+
+use Symfony\Bundle\TwigBundle\Controller\ExceptionController as BaseExceptionController;
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * This controller allow us to customize the error template.
+ * The only modified line from the parent template is for "WallabagCoreBundle".
+ */
+class ExceptionController extends BaseExceptionController
+{
+ protected function findTemplate(Request $request, $format, $code, $showException)
+ {
+ $name = $showException ? 'exception' : 'error';
+ if ($showException && 'html' == $format) {
+ $name = 'exception_full';
+ }
+
+ // For error pages, try to find a template for the specific HTTP status code and format
+ if (!$showException) {
+ $template = sprintf('WallabagCoreBundle:Exception:%s.%s.twig', $name, $format);
+ if ($this->templateExists($template)) {
+ return $template;
+ }
+ }
+
+ // try to find a template for the given format
+ $template = sprintf('@Twig/Exception/%s.%s.twig', $name, $format);
+ if ($this->templateExists($template)) {
+ return $template;
+ }
+
+ // default to a generic HTML exception
+ $request->setRequestFormat('html');
+
+ return sprintf('@Twig/Exception/%s.html.twig', $showException ? 'exception_full' : $name);
+ }
+}
$em = $this->registry->getManagerForClass($configuration->getClass());
// Check, if class name is what we need
- if ('Wallabag\UserBundle\Entity\User' !== $em->getClassMetadata($configuration->getClass())->getName()) {
+ if (null !== $em && 'Wallabag\UserBundle\Entity\User' !== $em->getClassMetadata($configuration->getClass())->getName()) {
return false;
}
$username = $request->attributes->get('username');
$rssToken = $request->attributes->get('token');
- // Check, if route attributes exists
- if (null === $username || null === $rssToken) {
- throw new \InvalidArgumentException('Route attribute is missing');
+ if (!$request->attributes->has('username') || !$request->attributes->has('token')) {
+ return false;
}
// Get actual entity manager for class
host: '%redis_host%'
port: '%redis_port%'
schema: tcp
+
+ wallabag_core.exception_controller:
+ class: Wallabag\CoreBundle\Controller\ExceptionController
+ arguments:
+ - '@twig'
+ - '%kernel.debug%'
--- /dev/null
+{% extends "WallabagCoreBundle::layout.html.twig" %}
+
+{% block title %}{{ 'error.page_title'|trans }}{% endblock %}
+
+{% block body_class %}login{% endblock %}
+
+{% block menu %}{% endblock %}
+{% block messages %}{% endblock %}
+{% block header %}{% endblock %}
+
+{% block content %}
+<main class="valign-wrapper">
+ <div class="valign row">
+ <div class="card sw">
+ <div class="center"><img src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-w.png') }}" alt="wallabag logo" /></div>
+ <h2>{{ status_code }}: {{ status_text }}</h2>
+ <p>{{ exception.message }}</p>
+ </div>
+ </div>
+</main>
+{% endblock %}
+
+{% block footer %}
+{% endblock %}
--- /dev/null
+{% extends "WallabagCoreBundle::layout.html.twig" %}
+
+{% block title %}{{ 'error.page_title'|trans }}{% endblock %}
+
+{% block body_class %}login{% endblock %}
+
+{% block menu %}{% endblock %}
+{% block messages %}{% endblock %}
+
+{% block content %}
+<main class="valign-wrapper">
+ <div class="valign row">
+ <div class="card sw">
+ <div class="center"><img src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-other_themes.png') }}" alt="wallabag logo" /></div>
+ <div class="card-content">
+ <div class="row">
+ <h5>{{ status_code }}: {{ status_text }}</h5>
+ <p>{{ exception.message }}</p>
+ {# {% for trace in exception.trace %}
+ <p>{{ trace.class }} - {{ trace.type }} - {{ trace.file }} - {{ trace.line }}</p>
+ {% endfor %} #}
+ </div>
+ </div>
+ </div>
+ </div>
+</main>
+{% endblock %}
+
+{% block footer %}
+{% endblock %}
$this->assertTrue($converter->supports($params));
}
- /**
- * @expectedException InvalidArgumentException
- * @expectedExceptionMessage Route attribute is missing
- */
public function testApplyEmptyRequest()
{
$params = new ParamConverter([]);
$converter = new UsernameRssTokenConverter();
- $converter->apply(new Request(), $params);
+ $res = $converter->apply(new Request(), $params);
+
+ $this->assertFalse($res);
}
/**