diff options
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/acp/acp_forums.php | 34 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_permissions.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_users.php | 32 | ||||
| -rw-r--r-- | phpBB/includes/functions.php | 36 | ||||
| -rw-r--r-- | phpBB/includes/functions_admin.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/mcp/mcp_main.php | 3 | ||||
| -rw-r--r-- | phpBB/includes/session.php | 4 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_pm_compose.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/utf/utf_tools.php | 4 | 
9 files changed, 89 insertions, 30 deletions
| diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php index 9330157ea0..7ae04848d6 100644 --- a/phpBB/includes/acp/acp_forums.php +++ b/phpBB/includes/acp/acp_forums.php @@ -345,7 +345,7 @@ class acp_forums  					$start = request_var('start', $row2['min_topic_id']); -					$batch_size = 3000; +					$batch_size = 2000;  					$end = $start + $batch_size;  					// Sync all topics in batch mode... @@ -370,8 +370,8 @@ class acp_forums  						meta_refresh(0, $url);  						$template->assign_vars(array( -							'U_PROGRESS_BAR'		=> $this->u_action . "&action=progress_bar&start=$start&total={$row['forum_topics_real']}", -							'UA_PROGRESS_BAR'		=> str_replace('&', '&', $this->u_action) . "&action=progress_bar&start=$start&total={$row['forum_topics_real']}", +							'U_PROGRESS_BAR'		=> $this->u_action . "&action=progress_bar&start=$topics_done&total={$row['forum_topics_real']}", +							'UA_PROGRESS_BAR'		=> str_replace('&', '&', $this->u_action) . "&action=progress_bar&start=$topics_done&total={$row['forum_topics_real']}",  							'S_CONTINUE_SYNC'		=> true,  							'L_PROGRESS_EXPLAIN'	=> sprintf($user->lang['SYNC_IN_PROGRESS_EXPLAIN'], $topics_done, $row['forum_topics_real']))  						); @@ -933,7 +933,7 @@ class acp_forums  			if ($forum_data_sql['parent_id'])  			{ -				$sql = 'SELECT left_id, right_id +				$sql = 'SELECT left_id, right_id, forum_type  					FROM ' . FORUMS_TABLE . '  					WHERE forum_id = ' . $forum_data_sql['parent_id'];  				$result = $db->sql_query($sql); @@ -945,6 +945,12 @@ class acp_forums  					trigger_error($user->lang['PARENT_NOT_EXIST'] . adm_back_link($this->u_action . '&' . $this->parent_id), E_USER_WARNING);  				} +				if ($row['forum_type'] == FORUM_LINK) +				{ +					$errors[] = $user->lang['PARENT_IS_LINK_FORUM']; +					return $errors; +				} +  				$sql = 'UPDATE ' . FORUMS_TABLE . '  					SET left_id = left_id + 2, right_id = right_id + 2  					WHERE left_id > ' . $row['right_id']; @@ -1185,7 +1191,21 @@ class acp_forums  	*/  	function move_forum($from_id, $to_id)  	{ -		global $db; +		global $db, $user; + +		$to_data = $moved_ids = $errors = array(); + +		// Check if we want to move to a parent with link type +		if ($to_id > 0) +		{ +			$to_data = $this->get_forum_info($to_id); + +			if ($to_data['forum_type'] == FORUM_LINK) +			{ +				$errors[] = $user->lang['PARENT_IS_LINK_FORUM']; +				return $errors; +			} +		}  		$moved_forums = get_forum_branch($from_id, 'children', 'descending');  		$from_data = $moved_forums[0]; @@ -1212,8 +1232,6 @@ class acp_forums  		if ($to_id > 0)  		{ -			$to_data = $this->get_forum_info($to_id); -  			// Resync new parents  			$sql = 'UPDATE ' . FORUMS_TABLE . "  				SET right_id = right_id + $diff, forum_parents = '' @@ -1256,6 +1274,8 @@ class acp_forums  			SET left_id = left_id $diff, right_id = right_id $diff, forum_parents = ''  			WHERE " . $db->sql_in_set('forum_id', $moved_ids);  		$db->sql_query($sql); + +		return $errors;  	}  	/** diff --git a/phpBB/includes/acp/acp_permissions.php b/phpBB/includes/acp/acp_permissions.php index 4a1f209ea0..71c2c764ed 100644 --- a/phpBB/includes/acp/acp_permissions.php +++ b/phpBB/includes/acp/acp_permissions.php @@ -305,7 +305,7 @@ class acp_permissions  					$s_forum_options = '';  					foreach ($forum_list as $f_id => $f_row)  					{ -						$s_forum_options .= '<option value="' . $f_id . '"' . (($f_row['selected']) ? ' selected="selected"' : '') . (($f_row['disabled']) ? ' disabled="disabled"' : '') . '>' . $f_row['padding'] . $f_row['forum_name'] . '</option>'; +						$s_forum_options .= '<option value="' . $f_id . '"' . (($f_row['selected']) ? ' selected="selected"' : '') . (($f_row['disabled']) ? ' disabled="disabled" class="disabled-option"' : '') . '>' . $f_row['padding'] . $f_row['forum_name'] . '</option>';  					}  					// Build subforum options diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index 1e8a7b8f3e..2dca5fa7b6 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -445,7 +445,9 @@ class acp_users  						break;  						case 'moveposts': -								 + +							$user->add_lang('acp/forums'); +  							$new_forum_id = request_var('new_f', 0);  							if (!$new_forum_id) @@ -462,6 +464,24 @@ class acp_users  								return;  							} +							// Is the new forum postable to? +							$sql = 'SELECT forum_name, forum_type +								FROM ' . FORUMS_TABLE . " +								WHERE forum_id = $new_forum_id"; +							$result = $db->sql_query($sql); +							$forum_info = $db->sql_fetchrow($result); +							$db->sql_freeresult($result); + +							if (!$forum_info) +							{ +								trigger_error($user->lang['NO_FORUM'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING); +							} + +							if ($forum_info['forum_type'] != FORUM_POST) +							{ +								trigger_error($user->lang['MOVE_POSTS_NO_POSTABLE_FORUM'] . adm_back_link($this->u_action . '&u=' . $user_id), E_USER_WARNING); +							} +  							// Two stage?  							// Move topics comprising only posts from this user  							$topic_id_ary = $move_topic_ary = $move_post_ary = $new_topic_id_ary = array(); @@ -482,7 +502,7 @@ class acp_users  							if (sizeof($topic_id_ary))  							{ -								$sql = 'SELECT topic_id, forum_id, topic_title, topic_replies, topic_replies_real +								$sql = 'SELECT topic_id, forum_id, topic_title, topic_replies, topic_replies_real, topic_attachment  									FROM ' . TOPICS_TABLE . '  									WHERE ' . $db->sql_in_set('topic_id', array_keys($topic_id_ary));  								$result = $db->sql_query($sql); @@ -496,7 +516,7 @@ class acp_users  									else  									{  										$move_post_ary[$row['topic_id']]['title'] = $row['topic_title']; -										$move_post_ary[$row['topic_id']]['attach'] = ($row['attach']) ? 1 : 0; +										$move_post_ary[$row['topic_id']]['attach'] = ($row['topic_attachment']) ? 1 : 0;  									}  									$forum_id_ary[] = $row['forum_id']; @@ -567,12 +587,6 @@ class acp_users  								sync('forum', 'forum_id', $forum_id_ary);  							} -							$sql = 'SELECT forum_name -								FROM ' . FORUMS_TABLE . " -								WHERE forum_id = $new_forum_id"; -							$result = $db->sql_query($sql, 3600); -							$forum_info = $db->sql_fetchrow($result); -							$db->sql_freeresult($result);  							add_log('admin', 'LOG_USER_MOVE_POSTS', $user_row['username'], $forum_info['forum_name']);  							add_log('user', $user_id, 'LOG_USER_MOVE_POSTS_USER', $forum_info['forum_name']); diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 7782cba893..3bb3266528 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -3516,6 +3516,31 @@ function msg_handler($errno, $msg_text, $errfile, $errline)  		case E_USER_ERROR: +			if (!empty($user) && !empty($user->lang)) +			{ +				$msg_text = (!empty($user->lang[$msg_text])) ? $user->lang[$msg_text] : $msg_text; +				$msg_title = (!isset($msg_title)) ? $user->lang['GENERAL_ERROR'] : ((!empty($user->lang[$msg_title])) ? $user->lang[$msg_title] : $msg_title); + +				$l_return_index = sprintf($user->lang['RETURN_INDEX'], '<a href="' . $phpbb_root_path . '">', '</a>'); +				$l_notify = ''; + +				if (!empty($config['board_contact'])) +				{ +					$l_notify = '<p>' . sprintf($user->lang['NOTIFY_ADMIN_EMAIL'], $config['board_contact']) . '</p>'; +				} +			} +			else +			{ +				$msg_title = 'General Error'; +				$l_return_index = '<a href="' . $phpbb_root_path . '">Return to index page</a>'; +				$l_notify = ''; + +				if (!empty($config['board_contact'])) +				{ +					$l_notify = '<p>Please notify the board administrator or webmaster: <a href="mailto:' . $config['board_contact'] . '">' . $config['board_contact'] . '</a></p>'; +				} +			} +  			garbage_collection();  			// Try to not call the adm page data... @@ -3538,19 +3563,16 @@ function msg_handler($errno, $msg_text, $errfile, $errline)  			echo '<body id="errorpage">';  			echo '<div id="wrap">';  			echo '	<div id="page-header">'; -			echo '		<a href="' . $phpbb_root_path . '">Return to forum index</a>'; +			echo '		' . $l_return_index;  			echo '	</div>';  			echo '	<div class="panel">';  			echo '		<div id="content">'; -			echo '			<h1>General Error</h1>'; +			echo '			<h1>' . $msg_title . '</h1>';  			echo '			<div>' . $msg_text . '</div>'; -			if (!empty($config['board_contact'])) -			{ -				echo '				<p>Please notify the board administrator or webmaster: <a href="mailto:' . $config['board_contact'] . '">' . $config['board_contact'] . '</a></p>'; -			} -			 +			echo $l_notify; +  			echo '		</div>';  			echo '	</div>';  			echo '	<div id="page-footer">'; diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index 5a45b9f9dc..8c57a986db 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -172,7 +172,7 @@ function make_forum_select($select_id = false, $ignore_id = false, $ignore_acl =  		else  		{  			$selected = (is_array($select_id)) ? ((in_array($row['forum_id'], $select_id)) ? ' selected="selected"' : '') : (($row['forum_id'] == $select_id) ? ' selected="selected"' : ''); -			$forum_list .= '<option value="' . $row['forum_id'] . '"' . (($disabled) ? ' disabled="disabled"' : $selected) . '>' . $padding . $row['forum_name'] . '</option>'; +			$forum_list .= '<option value="' . $row['forum_id'] . '"' . (($disabled) ? ' disabled="disabled" class="disabled-option"' : $selected) . '>' . $padding . $row['forum_name'] . '</option>';  		}  	}  	$db->sql_freeresult($result); diff --git a/phpBB/includes/mcp/mcp_main.php b/phpBB/includes/mcp/mcp_main.php index cb665d2253..b63af4886c 100644 --- a/phpBB/includes/mcp/mcp_main.php +++ b/phpBB/includes/mcp/mcp_main.php @@ -180,7 +180,8 @@ class mcp_main  			break;  			default: -				trigger_error("Unknown mode: $mode", E_USER_ERROR); +				trigger_error('NO_MODE', E_USER_ERROR); +			break;  		}  	}  } diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 467b9258b6..85ad21cabc 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -85,10 +85,10 @@ class session  		// Current page from phpBB root (for example: adm/index.php?i=10&b=2)  		$page = (($page_dir) ? $page_dir . '/' : '') . $page_name . (($query_string) ? "?$query_string" : ''); -		// The script path from the webroot to the current directory (for example: /phpBB2/adm/) : always prefixed with / and ends in / +		// The script path from the webroot to the current directory (for example: /phpBB3/adm/) : always prefixed with / and ends in /  		$script_path = trim(str_replace('\\', '/', dirname($script_name))); -		// The script path from the webroot to the phpBB root (for example: /phpBB2/) +		// The script path from the webroot to the phpBB root (for example: /phpBB3/)  		$script_dirs = explode('/', $script_path);  		array_splice($script_dirs, -sizeof($page_dirs));  		$root_script_path = implode('/', $script_dirs) . (sizeof($root_dirs) ? '/' . implode('/', $root_dirs) : ''); diff --git a/phpBB/includes/ucp/ucp_pm_compose.php b/phpBB/includes/ucp/ucp_pm_compose.php index cc15cbc264..d854d33f57 100644 --- a/phpBB/includes/ucp/ucp_pm_compose.php +++ b/phpBB/includes/ucp/ucp_pm_compose.php @@ -193,6 +193,7 @@ function compose_pm($id, $mode, $action)  		default:  			trigger_error('NO_ACTION_MODE', E_USER_ERROR); +		break;  	}  	if ($action == 'forward' && (!$config['forward_pm'] || !$auth->acl_get('u_pm_forward'))) @@ -880,6 +881,7 @@ function compose_pm($id, $mode, $action)  		default:  			trigger_error('NO_ACTION_MODE', E_USER_ERROR); +		break;  	}  	$s_hidden_fields = '<input type="hidden" name="lastclick" value="' . $current_time . '" />'; diff --git a/phpBB/includes/utf/utf_tools.php b/phpBB/includes/utf/utf_tools.php index 1b715014bd..f6ed6c3ed5 100644 --- a/phpBB/includes/utf/utf_tools.php +++ b/phpBB/includes/utf/utf_tools.php @@ -163,7 +163,7 @@ if (extension_loaded('mbstring'))  			{  				if (!is_int($offset))  				{ -					trigger_error('utf8_strrpos expects parameter 3 to be long', E_USER_WARNING); +					trigger_error('utf8_strrpos expects parameter 3 to be long', E_USER_ERROR);  					return false;  				} @@ -270,7 +270,7 @@ else  		{  			if (!is_int($offset))  			{ -				trigger_error('utf8_strrpos	expects	parameter 3	to be long', E_USER_WARNING); +				trigger_error('utf8_strrpos	expects	parameter 3	to be long', E_USER_ERROR);  				return false;  			} | 
