diff --git a/src/Module/Admin/Summary.php b/src/Module/Admin/Summary.php index 4aaeaaec0..4d30f8ebf 100644 --- a/src/Module/Admin/Summary.php +++ b/src/Module/Admin/Summary.php @@ -31,7 +31,9 @@ use Friendica\Database\DBStructure; use Friendica\DI; use Friendica\Model\Register; use Friendica\Module\BaseAdmin; +use Friendica\Module\Update\Profile; use Friendica\Network\HTTPException\InternalServerErrorException; +use Friendica\Render\FriendicaSmarty; use Friendica\Util\ConfigFileLoader; use Friendica\Util\DateTimeFormat; use Friendica\Util\Network; @@ -46,6 +48,14 @@ class Summary extends BaseAdmin // are there MyISAM tables in the DB? If so, trigger a warning message $warningtext = []; + + $templateEngine = Renderer::getTemplateEngine(); + $errors = []; + $templateEngine->testInstall($errors); + foreach ($errors as $error) { + $warningtext[] = DI::l10n()->t('Template engine (%s) error: %s', $templateEngine::$name, $error); + } + if (DBA::count(['information_schema' => 'tables'], ['engine' => 'myisam', 'table_schema' => DBA::databaseName()])) { $warningtext[] = DI::l10n()->t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html'); } @@ -136,7 +146,6 @@ class Summary extends BaseAdmin throw new InternalServerErrorException('Stream is null.'); } } - } catch (\Throwable $exception) { $warningtext[] = DI::l10n()->t('The debug logfile \'%s\' is not usable. No logging possible (error: \'%s\')', $file, $exception->getMessage()); } diff --git a/src/Render/FriendicaSmartyEngine.php b/src/Render/FriendicaSmartyEngine.php index 668b91ea5..6884364c2 100644 --- a/src/Render/FriendicaSmartyEngine.php +++ b/src/Render/FriendicaSmartyEngine.php @@ -53,6 +53,14 @@ final class FriendicaSmartyEngine extends TemplateEngine } } + /** + * @inheritDoc + */ + public function testInstall(array &$errors = null) + { + $this->smarty->testInstall($errors); + } + /** * @inheritDoc */ diff --git a/src/Render/TemplateEngine.php b/src/Render/TemplateEngine.php index 40fbfea6c..34ce03c5d 100644 --- a/src/Render/TemplateEngine.php +++ b/src/Render/TemplateEngine.php @@ -40,6 +40,14 @@ abstract class TemplateEngine */ abstract public function __construct(string $theme, array $theme_info); + /** + * Checks the template engine is correctly installed and configured and reports error messages in the provided + * parameter or displays them directly if it's null. + * + * @param array|null $errors + */ + abstract public function testInstall(array &$errors = null); + /** * Returns the rendered template output from the template string and variables *