diff --git a/phpBB/adm/style/install_update.html b/phpBB/adm/style/install_update.html index a948ceb3fc..c393352edf 100644 --- a/phpBB/adm/style/install_update.html +++ b/phpBB/adm/style/install_update.html @@ -193,11 +193,11 @@
  {L_MERGE_NO_MERGE_NEW_OPTION}
-
[{L_SHOW_DIFF_FINAL}]
+
[{L_SHOW_DIFF_FINAL}] 
  {L_MERGE_NO_MERGE_MOD_OPTION}
-
[{L_SHOW_DIFF_FINAL}]
+
[{L_SHOW_DIFF_FINAL}] 
diff --git a/phpBB/includes/acp/acp_prune.php b/phpBB/includes/acp/acp_prune.php index 851671e36d..9e680e4714 100644 --- a/phpBB/includes/acp/acp_prune.php +++ b/phpBB/includes/acp/acp_prune.php @@ -219,6 +219,11 @@ class acp_prune $active = ($active) ? explode('-', $active) : array(); $joined = ($joined) ? explode('-', $joined) : array(); + if ((sizeof($active) && sizeof($active) != 3) || (sizeof($joined) && sizeof($joined) != 3)) + { + trigger_error($user->lang['WRONG_ACTIVE_JOINED_DATE'] . adm_back_link($this->u_action), E_USER_WARNING); + } + $count = request_var('count', 0); $key_match = array('lt' => '<', 'gt' => '>', 'eq' => '='); @@ -257,7 +262,8 @@ class acp_prune while ($row = $db->sql_fetchrow($result)) { - if (!in_array($row['user_id'], $bot_ids)) + // Do not prune bots and the user currently pruning. + if ($row['user_id'] != $user->data['user_id'] && !in_array($row['user_id'], $bot_ids)) { $user_ids[] = $row['user_id']; $usernames[$row['user_id']] = $row['username']; diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php index 01ca16d1e8..a0b8740a7d 100644 --- a/phpBB/includes/functions_convert.php +++ b/phpBB/includes/functions_convert.php @@ -34,10 +34,10 @@ function still_on_time() // If zero, then set to something higher to not let the user catch the ten seconds barrier. if ($max_execution_time === 0) { - $max_execution_time = 65; + $max_execution_time = 250; } - $max_execution_time = min(max(10, ($max_execution_time - 15)), 50); + $max_execution_time = min(max(10, ($max_execution_time - 15)), 250); // For debugging purposes // $max_execution_time = 10; @@ -439,7 +439,8 @@ function import_avatar_gallery($gallery_name = '', $subdirs_as_galleries = false if (is_dir($src_path)) { - copy_dir($convert->convertor['avatar_gallery_path'], path($config['avatar_gallery_path']) . $gallery_name, !$subdirs_as_galleries, false, true, $relative_path); + // Do not die on failure... safe mode restrictions may be in effect. + copy_dir($convert->convertor['avatar_gallery_path'], path($config['avatar_gallery_path']) . $gallery_name, !$subdirs_as_galleries, false, false, $relative_path); // only doing 1 level deep. (ibf 1.x) // notes: ibf has 2 tiers: directly in the avatar directory for base gallery (handled in the above statement), plus subdirs(handled below). @@ -483,7 +484,9 @@ function import_avatar_gallery($gallery_name = '', $subdirs_as_galleries = false for ($i = 0; $i < sizeof($dirlist); ++$i) { $dir = $dirlist[$i]; - copy_dir(path($convert->convertor['avatar_gallery_path'], $relative_path) . $dir, path($config['avatar_gallery_path']) . $dir, true, false, true, $relative_path); + + // Do not die on failure... safe mode restrictions may be in effect. + copy_dir(path($convert->convertor['avatar_gallery_path'], $relative_path) . $dir, path($config['avatar_gallery_path']) . $dir, true, false, false, $relative_path); } } } @@ -1927,22 +1930,6 @@ function fix_empty_primary_groups() $db->sql_query('UPDATE ' . USERS_TABLE . ' SET group_id = ' . get_group_id('guests') . ' WHERE user_id = ' . ANONYMOUS); - $sql = 'SELECT ban_userid as user_id FROM ' . BANLIST_TABLE . ' WHERE ban_userid > 0'; - $result = $db->sql_query($sql); - - $user_ids = array(); - while ($row = $db->sql_fetchrow($result)) - { - $user_ids[] = $row['user_id']; - } - $db->sql_freeresult($result); - - if (sizeof($user_ids)) - { - $db->sql_query('UPDATE ' . USERS_TABLE . ' SET user_type = ' . USER_IGNORE . ' - WHERE user_id IN (' . implode(',', $user_ids) . ')'); - } - $sql = 'SELECT user_id FROM ' . USER_GROUP_TABLE . ' WHERE group_id = ' . get_group_id('administrators'); $result = $db->sql_query($sql); diff --git a/phpBB/includes/functions_upload.php b/phpBB/includes/functions_upload.php index 3f40a35bb2..1dd40f3f1c 100644 --- a/phpBB/includes/functions_upload.php +++ b/phpBB/includes/functions_upload.php @@ -561,7 +561,20 @@ class fileupload { $_FILES[$form_name]['name'] = basename($source_file); $_FILES[$form_name]['size'] = 0; - $_FILES[$form_name]['type'] = ''; + $mimetype = ''; + + if (function_exists('mime_content_type')) + { + $mimetype = mime_content_type($filename); + } + + // Some browsers choke on a mimetype of application/octet-stream + if (!$mimetype || $mimetype == 'application/octet-stream') + { + $mimetype = 'application/octetstream'; + } + + $_FILES[$form_name]['type'] = $mimetype; } else { diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 9121a965fd..71e83fbd11 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -1440,7 +1440,7 @@ class user extends session if (!$this->lang_path) { global $phpbb_root_path, $config; - + $this->lang_path = $phpbb_root_path . 'language/' . $config['default_lang'] . '/'; } diff --git a/phpBB/install/install_convert.php b/phpBB/install/install_convert.php index fbca8913c1..4636bbeecc 100644 --- a/phpBB/install/install_convert.php +++ b/phpBB/install/install_convert.php @@ -1845,8 +1845,11 @@ class install_convert extends module if ($convert->options['refresh']) { - $template->assign_var('S_REFRESH', true); - meta_refresh(5, $url); + // Because we should not rely on correct settings, we simply use the relative path here directly. + $template->assign_vars(array( + 'S_REFRESH' => true, + 'META' => '') + ); } } diff --git a/phpBB/language/en/acp/prune.php b/phpBB/language/en/acp/prune.php index 9c23848623..aec44a86c9 100644 --- a/phpBB/language/en/acp/prune.php +++ b/phpBB/language/en/acp/prune.php @@ -48,6 +48,8 @@ $lang = array_merge($lang, array( 'USER_DEACTIVATE_SUCCESS' => 'The selected users have been deactivated successfully.', 'USER_DELETE_SUCCESS' => 'The selected users have been deleted successfully.', + + 'WRONG_ACTIVE_JOINED_DATE' => 'The date entered is wrong, it is expected in YYYY-MM-DD format.', )); // Forum Pruning diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index c765f6d112..d4fd7bd4af 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -346,6 +346,7 @@ $lang = array_merge($lang, array( 'NO_ONLINE_USERS' => 'No registered users', 'NO_POSTS' => 'No posts', 'NO_POSTS_TIME_FRAME' => 'No posts exist inside this topic for the selected time frame.', + 'NO_SUBJECT' => 'No subject specified', 'NO_SUCH_SEARCH_MODULE' => 'The specified search backend doesn’t exist', 'NO_SUPPORTED_AUTH_METHODS' => 'No supported authentication methods', 'NO_TOPIC' => 'The requested topic does not exist.', diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index e759d9af4f..3d8c2bf767 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -74,14 +74,21 @@ switch ($mode) $user_ary = $auth->acl_get_list(false, array('a_', 'm_'), false); - $admin_id_ary = $mod_id_ary = $forum_id_ary = array(); + $admin_id_ary = $global_mod_id_ary = $mod_id_ary = $forum_id_ary = array(); foreach ($user_ary as $forum_id => $forum_ary) { foreach ($forum_ary as $auth_option => $id_ary) { - if (!$forum_id && $auth_option == 'a_') + if (!$forum_id) { - $admin_id_ary = array_merge($admin_id_ary, $id_ary); + if ($auth_option == 'a_') + { + $admin_id_ary = array_merge($admin_id_ary, $id_ary); + } + else + { + $global_mod_id_ary = array_merge($global_mod_id_ary, $id_ary); + } continue; } else @@ -100,6 +107,9 @@ switch ($mode) } $admin_id_ary = array_unique($admin_id_ary); + $global_mod_id_ary = array_unique($global_mod_id_ary); + + $mod_id_ary = array_merge($mod_id_ary, $global_mod_id_ary); $mod_id_ary = array_unique($mod_id_ary); // Admin group id... @@ -158,7 +168,7 @@ switch ($mode) // Remove from admin_id_ary, because the user may be a mod instead unset($admin_id_ary[array_search($row['user_id'], $admin_id_ary)]); - if (!in_array($row['user_id'], $mod_id_ary)) + if (!in_array($row['user_id'], $mod_id_ary) && !in_array($row['user_id'], $global_mod_id_ary)) { continue; } @@ -171,7 +181,7 @@ switch ($mode) $s_forum_select = ''; $undisclosed_forum = false; - if (isset($forum_id_ary[$row['user_id']])) + if (isset($forum_id_ary[$row['user_id']]) && !in_array($row['user_id'], $global_mod_id_ary)) { if ($which_row == 'mod' && sizeof(array_diff(array_keys($forums), $forum_id_ary[$row['user_id']]))) {