define('PL_FORBIDDEN', 403);
define('PL_NOT_FOUND', 404);
define('PL_WIKI', 500);
+define('PL_JSON', 501);
abstract class PlHook
{
}
}
-
abstract class Platal
{
private $mods;
try {
$page->assign('platal', $this);
- switch ($this->call_hook($page)) {
+ $res = $this->call_hook($page);
+ switch ($res) {
case PL_FORBIDDEN:
$this->mods['core']->handler_403($page);
break;
}
} catch (Exception $e) {
header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error');
-
- $file = fopen(self::globals()->spoolroot . '/spool/tmp/site_errors', 'a');
- fwrite($file, '<pre>' . date('Y-m-d G:i:s') . '</pre>'
- . '<pre>' . pl_entities("" . $e) . '</pre>'
- . '------------------------------------------------------------------' . "\n");
- fclose($file);
-
+ PlErrorReport::report($e);
if (self::globals()->debug) {
$page->kill(pl_entities($e->getMessage())
. '<pre>' . pl_entities("" . $e) . '</pre>');
}
$page->assign('platal', $this);
- $page->run();
+ if ($res == PL_JSON) {
+ $page->runJSon();
+ } else {
+ $page->run();
+ }
}
public function error403()