diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index 3c7bec292f..22eda7e24b 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -170,6 +170,7 @@
[Fix] Copy poll options properly when copying topic. (Bug #39065)
[Fix] Preserve newlines in template files (one newline had been always dropped after a template variable due to PHP's handling of closing tags)
[Fix] Be less strict with FTP daemons when getting directory filelists. (Bug #46295)
+ [Fix] Fix set_custom_template for database-stored styles (Bug #40515 - Patch by nickvergessen)
[Change] Change the data format of the default file ACM to be more secure from tampering and have better performance.
[Change] Add index on log_time to the log table to prevent slowdown on boards with many log entries. (Bug #44665 - Patch by bantu)
[Change] Template engine now permits to a limited extent variable includes.
diff --git a/phpBB/includes/template.php b/phpBB/includes/template.php
index 7cf865072f..fa7cf437fd 100644
--- a/phpBB/includes/template.php
+++ b/phpBB/includes/template.php
@@ -39,6 +39,8 @@ class template
var $files_inherit = array();
var $files_template = array();
var $inherit_root = '';
+ var $orig_tpl_storedb = 'undefined';
+ var $orig_tpl_inherits_id = 'undefined';
// this will hash handle names to the compiled/uncompiled code for that handle.
var $compiled_code = array();
@@ -55,6 +57,16 @@ class template
{
$this->root = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template';
$this->cachepath = $phpbb_root_path . 'cache/tpl_' . str_replace('_', '-', $user->theme['template_path']) . '_';
+ if ($this->orig_tpl_storedb == 'undefined')
+ {
+ $this->orig_tpl_storedb = $user->theme['template_storedb'];
+ }
+ if ($this->orig_tpl_inherits_id == 'undefined')
+ {
+ $this->orig_tpl_inherits_id = $user->theme['template_inherits_id'];
+ }
+ $user->theme['template_storedb'] = $this->orig_tpl_storedb;
+ $user->theme['template_inherits_id'] = $this->orig_tpl_inherits_id;
if ($user->theme['template_inherits_id'])
{
@@ -77,10 +89,12 @@ class template
*/
function set_custom_template($template_path, $template_name)
{
- global $phpbb_root_path;
+ global $phpbb_root_path, $user;
$this->root = $template_path;
$this->cachepath = $phpbb_root_path . 'cache/ctpl_' . str_replace('_', '-', $template_name) . '_';
+ $user->theme['template_storedb'] = false;
+ $user->theme['template_inherits_id'] = false;
$this->_rootref = &$this->_tpldata['.'][0];