+ $location = $_SERVER['HTTP_REFERER'];
+ }
+
+ $page->coreTpl('bug.tpl', SIMPLE);
+ $page->assign('location', $location);
+ $page->addJsLink('close_on_esc.js');
+
+ if (Env::has('send') && trim(Env::v('detailed_desc'))) {
+ S::assert_xsrf_token();
+
+ $body = wordwrap(Env::v('detailed_desc'), 78) . "\n\n"
+ . "----------------------------\n"
+ . "Page : " . Env::v('page') . "\n\n"
+ . "Utilisateur : " . S::user()->login() . "\n"
+ . "Navigateur : " . $_SERVER['HTTP_USER_AGENT'] . "\n"
+ . "Skin : " . S::v('skin') . "\n";
+ $page->assign('bug_sent', 1);
+ $page->trigSuccess('Ton message a bien été envoyé au support de ' . $globals->core->sitename
+ . ', tu devrais en recevoir une copie d\'ici quelques minutes. Nous allons '
+ . 'le traiter et y répondre dans les plus brefs délais.');
+ $mymail = new PlMailer();
+ $mymail->setFrom(sprintf('"%s" <%s>', S::user()->fullName(), S::user()->bestEmail()));
+ $mymail->addCc(sprintf('"%s" <%s>', S::user()->fullName(), S::user()->bestEmail()));
+ $mymail->addTo('support+platal@' . $globals->mail->domain);
+ $mymail->setSubject('Plat/al '.Env::v('task_type').' : '.Env::v('item_summary'));
+ $mymail->setTxtBody($body);
+ $mymail->send();
+ } elseif (Env::has('send')) {
+ $page->trigError("Merci de remplir une explication du problème rencontré.");
+ }
+ }
+
+ function handler_wiki_help($page, $action = 'title')
+ {
+ $page->coreTpl('wiki.help.tpl', SIMPLE);
+ $page->assign('wiki_help', MiniWiki::help($action == 'title'));
+ }
+
+ /// Shared handler for wiki syntax result preview
+ function handler_wiki_preview($page, $action = 'title')
+ {
+ pl_content_headers("text/html");
+ $text = Env::v('text');
+ echo MiniWiki::wikiToHtml($text, $action == 'title');
+ exit;
+ }
+
+ 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'));