'sql_errors' => $this->make_hook('siteerror', AUTH_COOKIE, 'admin'),
'assert_errors' => $this->make_hook('siteerror', AUTH_COOKIE, 'admin'),
'site_errors' => $this->make_hook('siteerror', AUTH_COOKIE, 'admin'),
+ 'site_errors/rss' => $this->make_token_hook('siteerror_rss', AUTH_COOKIE, 'admin'),
+ 'site_errors/register' => $this->make_hook('register_error', AUTH_PUBLIC),
'embedded' => $this->make_hook('embedded', AUTH_PUBLIC),
exit;
}
- function handler_400(PlPage& $page)
+ function handler_400(PlPage $page)
{
header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request');
$page->coreTpl('40x.tpl');
$page->trigError('Ta requête est invalide.');
}
- function handler_403(PlPage& $page)
+ function handler_403(PlPage $page)
{
header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
$page->coreTpl('40x.tpl');
$page->trigError('Tu n\'as pas les permissions nécessaires pour accéder à cette page.');
}
- function handler_404(PlPage& $page)
+ function handler_404(PlPage $page)
{
global $platal;
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
exit;
}
- function handler_siteerror($page) {
+ function handler_siteerror($page)
+ {
global $globals;
$page->coreTpl('site_errors.tpl');
+ if (!empty(S::user()->token)) {
+ $page->setRssLink('Polytechnique.org :: Erreurs',
+ 'site_errors/rss/' . S::v('hruid') . '/' . S::user()->token . '/rss.xml');
+ }
if (Post::has('clear')) {
PlErrorReport::clear();
$page->trigSuccess("Erreurs effacées.");
$page->assign('errors', PlErrorReport::iterate());
}
+ function handler_register_error($page)
+ {
+ if (S::has_xsrf_token() && Post::has('error') && Post::has('url')) {
+ PlErrorReport::report("Client error on " . Post::s('url') . ":\n\n" . Post::s('error'));
+ }
+ exit;
+ }
+
+ function handler_siteerror_rss(PlPage $page, PlUser $user)
+ {
+ return PlErrorReport::feed($page, $user);
+ }
+
function handler_embedded($page)
{
global $platal, $globals;
$mode = $allkeys[1];
unset($allkeys[0]);
unset($allkeys[1]);
- $_REQUEST['display'] = $mode;
+ Env::set('display', $mode);
$globals->baseurl .= '/embedded/' . $mode;
$platal->path = join('/', $allkeys);
$platal->run();
}
}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
?>