diff options
author | Marc Alexander <admin@m-a-styles.de> | 2016-09-24 10:28:37 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2016-09-24 10:28:37 +0200 |
commit | 18f9c9f6e2a382eedc9c8e566b939e6515e1c44f (patch) | |
tree | b07f48115475685d548a47868bf5e99308e8168d /phpBB | |
parent | 931582aad9c041ebc9ae51d9a2664b4944a31be8 (diff) | |
parent | eccb3d66025b4d10c40135b29ad36cc763a08571 (diff) | |
download | forums-18f9c9f6e2a382eedc9c8e566b939e6515e1c44f.tar forums-18f9c9f6e2a382eedc9c8e566b939e6515e1c44f.tar.gz forums-18f9c9f6e2a382eedc9c8e566b939e6515e1c44f.tar.bz2 forums-18f9c9f6e2a382eedc9c8e566b939e6515e1c44f.tar.xz forums-18f9c9f6e2a382eedc9c8e566b939e6515e1c44f.zip |
Merge pull request #3527 from Elsensee/ticket/13709
[ticket/13709] Add fallback for email templates used by extensions
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/includes/functions_messenger.php | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php index 0525cfc29e..9b3ca14101 100644 --- a/phpBB/includes/functions_messenger.php +++ b/phpBB/includes/functions_messenger.php @@ -231,6 +231,13 @@ class messenger $template_lang = basename($config['default_lang']); } + $ext_template_paths = array( + array( + 'name' => $template_lang . '_email', + 'ext_path' => 'language/' . $template_lang . '/email' . $template_dir_prefix, + ), + ); + if ($template_path) { $template_paths = array( @@ -246,23 +253,38 @@ class messenger $template_path . $template_dir_prefix, ); + $board_language = basename($config['default_lang']); + // we can only specify default language fallback when the path is not a custom one for which we // do not know the default language alternative - if ($template_lang !== basename($config['default_lang'])) + if ($template_lang !== $board_language) { $fallback_template_path = (!empty($user->lang_path)) ? $user->lang_path : $phpbb_root_path . 'language/'; - $fallback_template_path .= basename($config['default_lang']) . '/email'; + $fallback_template_path .= $board_language . '/email'; $template_paths[] = $fallback_template_path . $template_dir_prefix; + + $ext_template_paths[] = array( + 'name' => $board_language . '_email', + 'ext_path' => 'language/' . $board_language . '/email' . $template_dir_prefix, + ); + } + // If everything fails just fall back to en template + if ($template_lang !== 'en' && $board_language !== 'en') + { + $fallback_template_path = (!empty($user->lang_path)) ? $user->lang_path : $phpbb_root_path . 'language/'; + $fallback_template_path .= 'en/email'; + + $template_paths[] = $fallback_template_path . $template_dir_prefix; + + $ext_template_paths[] = array( + 'name' => 'en_email', + 'ext_path' => 'language/en/email' . $template_dir_prefix, + ); } } - $this->set_template_paths(array( - array( - 'name' => $template_lang . '_email', - 'ext_path' => 'language/' . $template_lang . '/email' . $template_dir_prefix, - ), - ), $template_paths); + $this->set_template_paths($ext_template_paths, $template_paths); $this->template->set_filenames(array( 'body' => $template_file . '.txt', |