+
+ function handler_kill_sessions($page)
+ {
+ kill_sessions();
+ }
+
+ function handler_bug($page)
+ {
+ global $globals;
+
+ if (empty($_SERVER['HTTP_REFERER'])) {
+ // We don't have a valid referer, we need to use the url
+ list($currentPage, $location) = explode('//', $_SERVER['REQUEST_URI'], 2);
+
+ $location = 'http'.(empty($_SERVER['HTTPS']) ? '' : 's').'://'.$_SERVER['SERVER_NAME'].'/'.$location;
+ } else {
+ $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 (Post::has('clear')) {
+ PlErrorReport::clear();
+ $page->trigSuccess("Erreurs effacées.");
+ }
+ $page->assign('errors', PlErrorReport::iterate());
+ }
+
+ function handler_embedded($page)
+ {
+ global $platal, $globals;
+ $allkeys = func_get_args();
+ $mode = $allkeys[1];
+ unset($allkeys[0]);
+ unset($allkeys[1]);
+ $_REQUEST['display'] = $mode;
+ $globals->baseurl .= '/embedded/' . $mode;
+ $platal->path = join('/', $allkeys);
+ $platal->run();
+ }