From ff677a1b275c372bab4274efa13316e1e87cce81 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 8 Sep 2022 05:10:26 +0000 Subject: [PATCH 1/2] Smarty: Configuration added to store without sub directories --- src/Render/FriendicaSmarty.php | 3 ++- static/defaults.config.php | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Render/FriendicaSmarty.php b/src/Render/FriendicaSmarty.php index 50282c38eb..b5217a49d1 100644 --- a/src/Render/FriendicaSmarty.php +++ b/src/Render/FriendicaSmarty.php @@ -23,6 +23,7 @@ namespace Friendica\Render; use Smarty; use Friendica\Core\Renderer; +use Friendica\DI; /** * Friendica extension of the Smarty3 template engine @@ -64,7 +65,7 @@ class FriendicaSmarty extends Smarty * RAM available + have enabled caching inode tables (aka. * "descriptors"). Still it won't hurt you. */ - $this->setUseSubDirs(true); + $this->setUseSubDirs(DI::config()->get('smarty3', 'use_sub_dirs')); $this->left_delimiter = Renderer::getTemplateLeftDelimiter(); $this->right_delimiter = Renderer::getTemplateRightDelimiter(); diff --git a/static/defaults.config.php b/static/defaults.config.php index 7625de0bd4..adffad8967 100644 --- a/static/defaults.config.php +++ b/static/defaults.config.php @@ -714,5 +714,10 @@ return [ // config_dir (String) // Base working directory for the templating engine, must be writeable by the webserver user 'config_dir' => 'view/smarty3', + + // use_sub_dirs (Boolean) + // By default the template cache is stored in several sub directories. + // + 'use_sub_dirs' => true, ], ]; From 63e1ad7dba93187286ec9852c7321a38e3e8a9b2 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 8 Sep 2022 06:21:16 +0000 Subject: [PATCH 2/2] Read the config at another place --- src/Render/FriendicaSmarty.php | 5 ++--- src/Render/FriendicaSmartyEngine.php | 9 ++++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Render/FriendicaSmarty.php b/src/Render/FriendicaSmarty.php index b5217a49d1..13ff6234e2 100644 --- a/src/Render/FriendicaSmarty.php +++ b/src/Render/FriendicaSmarty.php @@ -23,7 +23,6 @@ namespace Friendica\Render; use Smarty; use Friendica\Core\Renderer; -use Friendica\DI; /** * Friendica extension of the Smarty3 template engine @@ -34,7 +33,7 @@ class FriendicaSmarty extends Smarty public $filename; - public function __construct(string $theme, array $theme_info, string $work_dir) + public function __construct(string $theme, array $theme_info, string $work_dir, bool $use_sub_dirs) { parent::__construct(); @@ -65,7 +64,7 @@ class FriendicaSmarty extends Smarty * RAM available + have enabled caching inode tables (aka. * "descriptors"). Still it won't hurt you. */ - $this->setUseSubDirs(DI::config()->get('smarty3', 'use_sub_dirs')); + $this->setUseSubDirs($use_sub_dirs); $this->left_delimiter = Renderer::getTemplateLeftDelimiter(); $this->right_delimiter = Renderer::getTemplateRightDelimiter(); diff --git a/src/Render/FriendicaSmartyEngine.php b/src/Render/FriendicaSmartyEngine.php index 1f766ec65d..5ea01166fd 100644 --- a/src/Render/FriendicaSmartyEngine.php +++ b/src/Render/FriendicaSmartyEngine.php @@ -44,10 +44,13 @@ final class FriendicaSmartyEngine extends TemplateEngine */ public function __construct(string $theme, array $theme_info) { - $this->theme = $theme; + $this->theme = $theme; $this->theme_info = $theme_info; - $work_dir = DI::config()->get('smarty3', 'config_dir'); - $this->smarty = new FriendicaSmarty($this->theme, $this->theme_info, $work_dir); + + $work_dir = DI::config()->get('smarty3', 'config_dir'); + $use_sub_dirs = DI::config()->get('smarty3', 'use_sub_dirs'); + + $this->smarty = new FriendicaSmarty($this->theme, $this->theme_info, $work_dir, $use_sub_dirs); if (!is_writable($work_dir)) { $admin_message = DI::l10n()->t('The folder %s must be writable by webserver.', $work_dir);