diff options
Diffstat (limited to 'phpBB/includes/acp/acp_forums.php')
| -rw-r--r-- | phpBB/includes/acp/acp_forums.php | 34 | 
1 files changed, 27 insertions, 7 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;  	}  	/** | 
