diff --git a/src/Render/FriendicaSmarty.php b/src/Render/FriendicaSmarty.php index 50282c38eb..13ff6234e2 100644 --- a/src/Render/FriendicaSmarty.php +++ b/src/Render/FriendicaSmarty.php @@ -33,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(); @@ -64,7 +64,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($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); 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, ], ];