Add new TemplateEngine->testInstall method

- Add admin summary template engine error messages
This commit is contained in:
Hypolite Petovan 2020-05-18 01:19:30 -04:00
parent c6ba92c43d
commit 346f99b877
3 changed files with 26 additions and 1 deletions

View file

@ -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 <a href="%s">here</a> for a guide that may be helpful converting the table engines. You may also use the command <tt>php bin/console.php dbstructure toinnodb</tt> of your Friendica installation for an automatic conversion.<br />', '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());
}

View file

@ -53,6 +53,14 @@ final class FriendicaSmartyEngine extends TemplateEngine
}
}
/**
* @inheritDoc
*/
public function testInstall(array &$errors = null)
{
$this->smarty->testInstall($errors);
}
/**
* @inheritDoc
*/

View file

@ -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
*