aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_install.php
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2013-11-07 12:56:10 +0100
committerJoas Schilling <nickvergessen@gmx.de>2013-11-07 13:12:58 +0100
commit7aa4d8fce2e61776d5f2dbf67386a589bcd7d634 (patch)
tree8b881f3eda39fa86d045561cf7bda01c872d9fda /phpBB/includes/functions_install.php
parentcc54e6a9e58cb57fad87fc5b17e3c885531bc4e6 (diff)
downloadforums-7aa4d8fce2e61776d5f2dbf67386a589bcd7d634.tar
forums-7aa4d8fce2e61776d5f2dbf67386a589bcd7d634.tar.gz
forums-7aa4d8fce2e61776d5f2dbf67386a589bcd7d634.tar.bz2
forums-7aa4d8fce2e61776d5f2dbf67386a589bcd7d634.tar.xz
forums-7aa4d8fce2e61776d5f2dbf67386a589bcd7d634.zip
[ticket/11927] Correctly add new files on update
Currently we ignore language and style files when the directory where they go to do not exist. However in 3.1 we introduce some new sub directories: * language/en/email/short/ * styles/prosilver/theme/en/ So we need to change our check to look whether the language or style exist, rather then the parent directory. PHPBB3-11927
Diffstat (limited to 'phpBB/includes/functions_install.php')
-rw-r--r--phpBB/includes/functions_install.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/phpBB/includes/functions_install.php b/phpBB/includes/functions_install.php
index 1be6e49471..be0ecd4306 100644
--- a/phpBB/includes/functions_install.php
+++ b/phpBB/includes/functions_install.php
@@ -533,3 +533,42 @@ function phpbb_create_config_file_data($data, $dbms, $debug = false, $debug_test
return $config_data;
}
+
+/**
+*
+*/
+function ignore_new_file_on_update($phpbb_root_path, $file)
+{
+ $ignore_new_file = false;
+
+ // We ignore new files in some circumstances:
+ // 1. The file is a language file, but the language is not installed
+ if (!$ignore_new_file && strpos($file, 'language/') === 0)
+ {
+ list($language_dir, $language_iso) = explode('/', $file);
+ $ignore_new_file = !file_exists($phpbb_root_path . $language_dir . '/' . $language_iso);
+ }
+
+ // 2. The file is a style file, but the style is not installed
+ if (!$ignore_new_file && strpos($file, 'styles/') === 0)
+ {
+ list($styles_dir, $style_name) = explode('/', $file);
+ $ignore_new_file = !file_exists($phpbb_root_path . $styles_dir . '/' . $style_name);
+ }
+
+ // 3. The file is a style language file, but the language is not installed
+ if (!$ignore_new_file && strpos($file, 'styles/') === 0)
+ {
+ $dirs = explode('/', $file);
+ if ($dirs >= 5)
+ {
+ list($styles_dir, $style_name, $template_component, $language_iso) = explode('/', $file);
+ if ($template_component == 'theme' && $language_iso !== 'images')
+ {
+ $ignore_new_file = !file_exists($phpbb_root_path . 'language/' . $language_iso);
+ }
+ }
+ }
+
+ return $ignore_new_file;
+}