diff options
Diffstat (limited to 'phpBB/includes/acp')
| -rw-r--r-- | phpBB/includes/acp/acp_attachments.php | 9 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_board.php | 4 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_database.php | 1 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_forums.php | 16 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_profile.php | 1 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_reasons.php | 1 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_users.php | 62 | 
7 files changed, 70 insertions, 24 deletions
diff --git a/phpBB/includes/acp/acp_attachments.php b/phpBB/includes/acp/acp_attachments.php index 25e51814c4..980558c830 100644 --- a/phpBB/includes/acp/acp_attachments.php +++ b/phpBB/includes/acp/acp_attachments.php @@ -90,6 +90,7 @@ class acp_attachments  				$s_assigned_groups = array();  				while ($row = $db->sql_fetchrow($result))  				{ +					$row['group_name'] = (isset($user->lang['EXT_GROUP_' . $row['group_name']])) ? $user->lang['EXT_GROUP_' . $row['group_name']] : $row['group_name'];  					$s_assigned_groups[$row['cat_id']][] = $row['group_name'];  				}  				$db->sql_freeresult($result); @@ -494,6 +495,10 @@ class acp_attachments  						$sql = 'SELECT group_id  							FROM ' . EXTENSION_GROUPS_TABLE . "  							WHERE LOWER(group_name) = '" . $db->sql_escape(utf8_strtolower($new_group_name)) . "'"; +						if ($group_id) +						{ +							$sql .= ' AND group_id <> ' . $group_id; +						}  						$result = $db->sql_query($sql);  						if ($db->sql_fetchrow($result)) @@ -551,6 +556,7 @@ class acp_attachments  							$group_id = $db->sql_nextid();  						} +						$group_name = (isset($user->lang['EXT_GROUP_' . $group_name])) ? $user->lang['EXT_GROUP_' . $group_name] : $group_name;  						add_log('admin', 'LOG_ATTACH_EXTGROUP_' . strtoupper($action), $group_name);  					} @@ -858,7 +864,7 @@ class acp_attachments  						'U_EDIT'		=> $this->u_action . "&action=edit&g={$row['group_id']}",  						'U_DELETE'		=> $this->u_action . "&action=delete&g={$row['group_id']}", -						'GROUP_NAME'	=> $row['group_name'], +						'GROUP_NAME'	=> (isset($user->lang['EXT_GROUP_' . $row['group_name']])) ? $user->lang['EXT_GROUP_' . $row['group_name']] : $row['group_name'],  						'CATEGORY'		=> $cat_lang[$row['cat_id']],  						)  					); @@ -1118,6 +1124,7 @@ class acp_attachments  		$group_name = array();  		while ($row = $db->sql_fetchrow($result))  		{ +			$row['group_name'] = (isset($user->lang['EXT_GROUP_' . $row['group_name']])) ? $user->lang['EXT_GROUP_' . $row['group_name']] : $row['group_name'];  			$group_name[] = $row;  		}  		$db->sql_freeresult($result); diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index a5feac1902..7680d8996c 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -888,8 +888,8 @@ class acp_board  		$old_tz = $user->timezone;  		$old_dst = $user->dst; -		$user->timezone = $config['board_timezone']; -		$user->dst = $config['board_dst']; +		$user->timezone = $config['board_timezone'] * 3600; +		$user->dst = $config['board_dst'] * 3600;  		$dateformat_options = ''; diff --git a/phpBB/includes/acp/acp_database.php b/phpBB/includes/acp/acp_database.php index abfad2b90b..0582d6204e 100644 --- a/phpBB/includes/acp/acp_database.php +++ b/phpBB/includes/acp/acp_database.php @@ -394,6 +394,7 @@ class acp_database  								case 'mssql':  								case 'mssql_odbc': +								case 'mssqlnative':  									while (($sql = $fgetd($fp, "GO\n", $read, $seek, $eof)) !== false)  									{  										$db->sql_query($sql); diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php index 5a5adc57ae..541a514bef 100644 --- a/phpBB/includes/acp/acp_forums.php +++ b/phpBB/includes/acp/acp_forums.php @@ -169,7 +169,7 @@ class acp_forums  						$forum_data['forum_status'] = ITEM_UNLOCKED;  					} -					$forum_data['show_active'] = ($forum_data['forum_type'] == FORUM_POST) ? request_var('display_recent', true) : request_var('display_active', true); +					$forum_data['show_active'] = ($forum_data['forum_type'] == FORUM_POST) ? request_var('display_recent', true) : request_var('display_active', false);  					// Get data for forum rules if specified...  					if ($forum_data['forum_rules']) @@ -407,7 +407,7 @@ class acp_forums  						$exclude_forums[] = $row['forum_id'];  					} -					$parents_list = make_forum_select($forum_data['parent_id'], $exclude_forums, true, false, false); +					$parents_list = make_forum_select($forum_data['parent_id'], $exclude_forums, false, false, false);  					$forum_data['forum_password_confirm'] = $forum_data['forum_password'];  				} @@ -416,7 +416,7 @@ class acp_forums  					$this->page_title = 'CREATE_FORUM';  					$forum_id = $this->parent_id; -					$parents_list = make_forum_select($this->parent_id, false, true, false, false); +					$parents_list = make_forum_select($this->parent_id, false, false, false, false);  					// Fill forum data with default values  					if (!$update) @@ -639,7 +639,8 @@ class acp_forums  					'S_PRUNE_OLD_POLLS'			=> ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_POLL) ? true : false,  					'S_PRUNE_ANNOUNCE'			=> ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_ANNOUNCE) ? true : false,  					'S_PRUNE_STICKY'			=> ($forum_data['forum_flags'] & FORUM_FLAG_PRUNE_STICKY) ? true : false, -					'S_DISPLAY_ACTIVE_TOPICS'	=> ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) ? true : false, +					'S_DISPLAY_ACTIVE_TOPICS'	=> ($forum_data['forum_type'] == FORUM_POST) ? ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) : true, +					'S_ENABLE_ACTIVE_TOPICS'	=> ($forum_data['forum_type'] == FORUM_CAT) ? ($forum_data['forum_flags'] & FORUM_FLAG_ACTIVE_TOPICS) : false,  					'S_ENABLE_POST_REVIEW'		=> ($forum_data['forum_flags'] & FORUM_FLAG_POST_REVIEW) ? true : false,  					'S_ENABLE_QUICK_REPLY'		=> ($forum_data['forum_flags'] & FORUM_FLAG_QUICK_REPLY) ? true : false,  					'S_CAN_COPY_PERMISSIONS'	=> ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false, @@ -1705,6 +1706,9 @@ class acp_forums  					)  				); +				// Amount of rows we select and delete in one iteration. +				$batch_size = 500; +  				foreach ($tables_ary as $field => $tables)  				{  					$start = 0; @@ -1714,7 +1718,7 @@ class acp_forums  						$sql = "SELECT $field  							FROM " . POSTS_TABLE . '  							WHERE forum_id = ' . $forum_id; -						$result = $db->sql_query_limit($sql, 500, $start); +						$result = $db->sql_query_limit($sql, $batch_size, $start);  						$ids = array();  						while ($row = $db->sql_fetchrow($result)) @@ -1733,7 +1737,7 @@ class acp_forums  							}  						}  					} -					while ($row); +					while (sizeof($ids) == $batch_size);  				}  				unset($ids); diff --git a/phpBB/includes/acp/acp_profile.php b/phpBB/includes/acp/acp_profile.php index fc08c7e8e8..2288a0728b 100644 --- a/phpBB/includes/acp/acp_profile.php +++ b/phpBB/includes/acp/acp_profile.php @@ -1480,6 +1480,7 @@ class acp_profile  			case 'mssql':  			case 'mssql_odbc': +			case 'mssqlnative':  				// We are defining the biggest common value, because of the possibility to edit the min/max values of each field.  				$sql = 'ALTER TABLE [' . PROFILE_FIELDS_DATA_TABLE . "] ADD [$field_ident] "; diff --git a/phpBB/includes/acp/acp_reasons.php b/phpBB/includes/acp/acp_reasons.php index 8d7bc88769..dbc9fcb6cc 100644 --- a/phpBB/includes/acp/acp_reasons.php +++ b/phpBB/includes/acp/acp_reasons.php @@ -233,6 +233,7 @@ class acp_reasons  						// Standard? What's that?  						case 'mssql':  						case 'mssql_odbc': +						case 'mssqlnative':  							// Change the reports using this reason to 'other'  							$sql = "DECLARE @ptrval binary(16) diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index 4905840e02..7914edd056 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -105,7 +105,7 @@ class acp_users  				LEFT JOIN ' . SESSIONS_TABLE . ' s ON (s.session_user_id = u.user_id)  			WHERE u.user_id = ' . $user_id . '  			ORDER BY s.session_time DESC'; -		$result = $db->sql_query($sql); +		$result = $db->sql_query_limit($sql, 1);  		$user_row = $db->sql_fetchrow($result);  		$db->sql_freeresult($result); @@ -191,24 +191,31 @@ class acp_users  							trigger_error($user->lang['CANNOT_REMOVE_YOURSELF'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);  						} -						if (confirm_box(true)) +						if ($delete_type)  						{ -							user_delete($delete_type, $user_id, $user_row['username']); +							if (confirm_box(true)) +							{ +								user_delete($delete_type, $user_id, $user_row['username']); -							add_log('admin', 'LOG_USER_DELETED', $user_row['username']); -							trigger_error($user->lang['USER_DELETED'] . adm_back_link($this->u_action)); +								add_log('admin', 'LOG_USER_DELETED', $user_row['username']); +								trigger_error($user->lang['USER_DELETED'] . adm_back_link($this->u_action)); +							} +							else +							{ +								confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array( +									'u'				=> $user_id, +									'i'				=> $id, +									'mode'			=> $mode, +									'action'		=> $action, +									'update'		=> true, +									'delete'		=> 1, +									'delete_type'	=> $delete_type)) +								); +							}  						}  						else  						{ -							confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array( -								'u'				=> $user_id, -								'i'				=> $id, -								'mode'			=> $mode, -								'action'		=> $action, -								'update'		=> true, -								'delete'		=> 1, -								'delete_type'	=> $delete_type)) -							); +							trigger_error($user->lang['NO_MODE'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING);  						}  					} @@ -1550,6 +1557,31 @@ class acp_users  							WHERE user_id = $user_id";  						$db->sql_query($sql); +						// Check if user has an active session +						if ($user_row['session_id']) +						{ +							// We'll update the session if user_allow_viewonline has changed and the user is a bot +							// Or if it's a regular user and the admin set it to hide the session +							if ($user_row['user_allow_viewonline'] != $sql_ary['user_allow_viewonline'] && $user_row['user_type'] == USER_IGNORE +								|| $user_row['user_allow_viewonline'] && !$sql_ary['user_allow_viewonline']) +							{ +								// We also need to check if the user has the permission to cloak. +								$user_auth = new auth(); +								$user_auth->acl($user_row); + +								$session_sql_ary = array( +									'session_viewonline'	=> ($user_auth->acl_get('u_hideonline')) ? $sql_ary['user_allow_viewonline'] : true, +								); + +								$sql = 'UPDATE ' . SESSIONS_TABLE . ' +									SET ' . $db->sql_build_array('UPDATE', $session_sql_ary) . " +									WHERE session_user_id = $user_id"; +								$db->sql_query($sql); + +								unset($user_auth); +							} +						} +  						trigger_error($user->lang['USER_PREFS_UPDATED'] . adm_back_link($this->u_action . '&u=' . $user_id));  					} @@ -2084,7 +2116,7 @@ class acp_users  									LEFT JOIN ' . SESSIONS_TABLE . ' s ON (s.session_user_id = u.user_id)  								WHERE u.user_id = ' . $user_id . '  								ORDER BY s.session_time DESC'; -							$result = $db->sql_query($sql); +							$result = $db->sql_query_limit($sql, 1);  							$user_row = $db->sql_fetchrow($result);  							$db->sql_freeresult($result);  						}  | 
