<?php
/***************************************************************************
- * Copyright (C) 2003-2010 Polytechnique.org *
+ * Copyright (C) 2003-2011 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
'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),
'wiki_help' => $this->make_hook('wiki_help', AUTH_PUBLIC),
'wiki_preview' => $this->make_hook('wiki_preview', AUTH_COOKIE, 'user', NO_AUTH),
+ 'validator' => $this->make_hook('validator', AUTH_PUBLIC),
'valid.html' => $this->make_hook('valid', AUTH_PUBLIC),
'favicon.ico' => $this->make_hook('favicon', AUTH_PUBLIC),
'robots.txt' => $this->make_hook('robotstxt', AUTH_PUBLIC, 'user', NO_HTTPS),
exit;
}
- function handler_400(PlPage& $page)
+ function handler_validator($page)
+ {
+ global $globals;
+ exec($globals->spoolroot."/bin/devel/xhtml.validate.pl ".$page->compile_dir."/valid.html", $val);
+ $url = "<a href='http://validator.w3.org/check?uri={$globals->baseurl}/valid.html&ss=1#result'>";
+ $replc = '<span style="color: #080;">HTML OK</span>';
+ foreach ($val as $h) {
+ if (preg_match("/^X-W3C-Validator-Errors: (\d+)$/", $h, $m)) {
+ if ($m[1]) {
+ $replc = "<span class='erreur'>$url{$m[1]} ERREUR(S) !!!</a></span>";
+ }
+ break;
+ }
+ }
+ echo $replc;
+ exit;
+ }
+
+ 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:
?>