Revert "Catch HTTPExceptions in App::runFrontend()"

This reverts commit 58bd75f8f35f89fc275d5cd8e3ef40b9b18cb149.
This commit is contained in:
fabrixxm 2018-11-21 15:13:24 +01:00 committed by Hypolite Petovan
parent 07d358adc1
commit 75daf96590

View file

@ -9,7 +9,6 @@ use DOMDocument;
use DOMXPath; use DOMXPath;
use Exception; use Exception;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Network\HTTPException;
use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Network\HTTPException\InternalServerErrorException;
/** /**
@ -1719,73 +1718,63 @@ class App
} }
} }
$content = '';
// Initialize module that can set the current theme in the init() method, either directly or via App->profile_uid // Initialize module that can set the current theme in the init() method, either directly or via App->profile_uid
try { if ($this->module_loaded) {
$content = ''; $this->page['page_title'] = $this->module;
$placeholder = '';
// Initialize module that can set the current theme in the init() method, either directly or via App->profile_uid Core\Addon::callHooks($this->module . '_mod_init', $placeholder);
if ($this->module_loaded) {
$this->page['page_title'] = $this->module;
$placeholder = '';
Core\Addon::callHooks($this->module . '_mod_init', $placeholder); call_user_func([$this->module_class, 'init']);
call_user_func([$this->module_class, 'init']); // "rawContent" is especially meant for technical endpoints.
// This endpoint doesn't need any theme initialization or other comparable stuff.
// "rawContent" is especially meant for technical endpoints. if (!$this->error) {
// This endpoint doesn't need any theme initialization or other comparable stuff. call_user_func([$this->module_class, 'rawContent']);
if (!$this->error) {
call_user_func([$this->module_class, 'rawContent']);
}
} }
// Load current theme info after module has been initialized as theme could have been set in module
$theme_info_file = 'view/theme/' . $this->getCurrentTheme() . '/theme.php';
if (file_exists($theme_info_file)) {
require_once $theme_info_file;
}
if (function_exists(str_replace('-', '_', $this->getCurrentTheme()) . '_init')) {
$func = str_replace('-', '_', $this->getCurrentTheme()) . '_init';
$func($this);
}
if ($this->module_loaded) {
if (! $this->error && $_SERVER['REQUEST_METHOD'] === 'POST') {
Core\Addon::callHooks($this->module . '_mod_post', $_POST);
call_user_func([$this->module_class, 'post']);
}
if (! $this->error) {
Core\Addon::callHooks($this->module . '_mod_afterpost', $placeholder);
call_user_func([$this->module_class, 'afterpost']);
}
if (! $this->error) {
$arr = ['content' => $content];
Core\Addon::callHooks($this->module . '_mod_content', $arr);
$content = $arr['content'];
$arr = ['content' => call_user_func([$this->module_class, 'content'])];
Core\Addon::callHooks($this->module . '_mod_aftercontent', $arr);
$content .= $arr['content'];
}
}
// initialise content region
if ($this->getMode()->isNormal()) {
Core\Addon::callHooks('page_content_top', $this->page['content']);
}
$this->page['content'] .= $content;
} catch (HTTPException $e) {
header($_SERVER["SERVER_PROTOCOL"] . " " . $e->httpcode . " " . $e->httpdesc , true, $e->httpcode);
$error = ($e->getMessage() !== "" ? $e->getMessage() : $e->httpdesc);
$tpl = Core\Renderer::getMarkupTemplate("404.tpl");
$this->page['content'] = Core\Renderer::replaceMacros($tpl, [
'$message' => $error
]);
} }
// Load current theme info after module has been initialized as theme could have been set in module
$theme_info_file = 'view/theme/' . $this->getCurrentTheme() . '/theme.php';
if (file_exists($theme_info_file)) {
require_once $theme_info_file;
}
if (function_exists(str_replace('-', '_', $this->getCurrentTheme()) . '_init')) {
$func = str_replace('-', '_', $this->getCurrentTheme()) . '_init';
$func($this);
}
if ($this->module_loaded) {
if (! $this->error && $_SERVER['REQUEST_METHOD'] === 'POST') {
Core\Addon::callHooks($this->module . '_mod_post', $_POST);
call_user_func([$this->module_class, 'post']);
}
if (! $this->error) {
Core\Addon::callHooks($this->module . '_mod_afterpost', $placeholder);
call_user_func([$this->module_class, 'afterpost']);
}
if (! $this->error) {
$arr = ['content' => $content];
Core\Addon::callHooks($this->module . '_mod_content', $arr);
$content = $arr['content'];
$arr = ['content' => call_user_func([$this->module_class, 'content'])];
Core\Addon::callHooks($this->module . '_mod_aftercontent', $arr);
$content .= $arr['content'];
}
}
// initialise content region
if ($this->getMode()->isNormal()) {
Core\Addon::callHooks('page_content_top', $this->page['content']);
}
$this->page['content'] .= $content;
/* Create the page head after setting the language /* Create the page head after setting the language
* and getting any auth credentials. * and getting any auth credentials.
* *