]> git.mxchange.org Git - friendica.git/commitdiff
Add new TemplateEngine->testInstall method
authorHypolite Petovan <hypolite@mrpetovan.com>
Mon, 18 May 2020 05:19:30 +0000 (01:19 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Mon, 18 May 2020 05:20:47 +0000 (01:20 -0400)
- Add admin summary template engine error messages

src/Module/Admin/Summary.php
src/Render/FriendicaSmartyEngine.php
src/Render/TemplateEngine.php

index 4aaeaaec0005fa68703dfaeb386ee7fbc5ab0a40..4d30f8ebf322f108b86da9ed8a6c19f851945622 100644 (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());
                        }
index 668b91ea5b5745c409d0f8b3a7919a4e16d73d44..6884364c2678ae14f93b68e497e38e284b5858ca 100644 (file)
@@ -53,6 +53,14 @@ final class FriendicaSmartyEngine extends TemplateEngine
                }
        }
 
+       /**
+        * @inheritDoc
+        */
+       public function testInstall(array &$errors = null)
+       {
+               $this->smarty->testInstall($errors);
+       }
+
        /**
         * @inheritDoc
         */
index 40fbfea6cac98f65102c97dac6e32714055abdfc..34ce03c5d290b11688c4dc1ddeeb6504c398f979 100644 (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
         *