X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FRenderer.php;h=ad1717ae83f422495425179620632d673ed867b7;hb=fa55928ea3978e96bf1cc21f3759f5607f3ef503;hp=4dab3184c77eb956c8e20830b25b85aad56746d6;hpb=c6ba92c43d664430d2471a0ce7ad727126199d80;p=friendica.git diff --git a/src/Core/Renderer.php b/src/Core/Renderer.php index 4dab3184c7..ad1717ae83 100644 --- a/src/Core/Renderer.php +++ b/src/Core/Renderer.php @@ -1,6 +1,6 @@ '', 'videowidth' => 425, 'videoheight' => 350, - 'force_max_items' => 0, 'stylesheet' => '', 'template_engine' => 'smarty3', ]; @@ -70,10 +69,11 @@ class Renderer * @param string $template * @param array $vars * @return string + * @throws InternalServerErrorException */ - public static function replaceMacros(string $template, array $vars) + public static function replaceMacros(string $template, array $vars = []) { - $stamp1 = microtime(true); + DI::profiler()->startRecording('rendering'); // pass $baseurl to all templates if it isn't set $vars = array_merge(['$baseurl' => DI::baseUrl()->get(), '$APP' => DI::app()], $vars); @@ -83,11 +83,14 @@ class Renderer try { $output = $t->replaceMacros($template, $vars); } catch (Exception $e) { - echo "
" . __FUNCTION__ . ": " . $e->getMessage() . "
"; - exit(); + DI::logger()->critical($e->getMessage(), ['template' => $template, 'vars' => $vars]); + $message = is_site_admin() ? + $e->getMessage() : + DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator.'); + throw new InternalServerErrorException($message); } - DI::profiler()->saveTimestamp($stamp1, "rendering", System::callstack()); + DI::profiler()->stopRecording(); return $output; } @@ -99,21 +102,24 @@ class Renderer * @param string $subDir Subdirectory (Optional) * * @return string template. - * @throws Exception + * @throws InternalServerErrorException */ public static function getMarkupTemplate($file, $subDir = '') { - $stamp1 = microtime(true); + DI::profiler()->startRecording('file'); $t = self::getTemplateEngine(); try { $template = $t->getTemplateFile($file, $subDir); } catch (Exception $e) { - echo "
" . __FUNCTION__ . ": " . $e->getMessage() . "
"; - exit(); + DI::logger()->critical($e->getMessage(), ['file' => $file, 'subDir' => $subDir]); + $message = is_site_admin() ? + $e->getMessage() : + DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator.'); + throw new InternalServerErrorException($message); } - DI::profiler()->saveTimestamp($stamp1, "file", System::callstack()); + DI::profiler()->stopRecording(); return $template; } @@ -122,6 +128,7 @@ class Renderer * Register template engine class * * @param string $class + * @throws InternalServerErrorException */ public static function registerTemplateEngine($class) { @@ -131,8 +138,12 @@ class Renderer $name = $v['name']; self::$template_engines[$name] = $class; } else { - echo "template engine $class cannot be registered without a name.\n"; - die(); + $admin_message = DI::l10n()->t('template engine cannot be registered without a name.'); + DI::logger()->critical($admin_message, ['class' => $class]); + $message = is_site_admin() ? + $admin_message : + DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator.'); + throw new InternalServerErrorException($message); } } @@ -143,6 +154,7 @@ class Renderer * or default * * @return TemplateEngine Template Engine instance + * @throws InternalServerErrorException */ public static function getTemplateEngine() { @@ -154,14 +166,18 @@ class Renderer } else { $a = DI::app(); $class = self::$template_engines[$template_engine]; - $obj = new $class($a->getCurrentTheme(), $a->theme_info); + $obj = new $class($a->getCurrentTheme(), $a->getThemeInfo()); self::$template_engine_instance[$template_engine] = $obj; return $obj; } } - echo "template engine $template_engine is not registered!\n"; - exit(); + $admin_message = DI::l10n()->t('template engine is not registered!'); + DI::logger()->critical($admin_message, ['template_engine' => $template_engine]); + $message = is_site_admin() ? + $admin_message : + DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator.'); + throw new InternalServerErrorException($message); } /**