diff options
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/acp/acp_attachments.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_bbcodes.php | 159 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_board.php | 43 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_extensions.php | 151 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_main.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/compatibility_globals.php | 8 | ||||
| -rw-r--r-- | phpBB/includes/constants.php | 6 | ||||
| -rw-r--r-- | phpBB/includes/functions.php | 41 | ||||
| -rw-r--r-- | phpBB/includes/functions_admin.php | 39 | ||||
| -rw-r--r-- | phpBB/includes/functions_compatibility.php | 118 | ||||
| -rw-r--r-- | phpBB/includes/functions_compress.php | 4 | ||||
| -rw-r--r-- | phpBB/includes/functions_content.php | 20 | ||||
| -rw-r--r-- | phpBB/includes/functions_display.php | 40 | ||||
| -rw-r--r-- | phpBB/includes/functions_download.php | 26 | ||||
| -rw-r--r-- | phpBB/includes/functions_module.php | 10 | ||||
| -rw-r--r-- | phpBB/includes/functions_posting.php | 34 | ||||
| -rw-r--r-- | phpBB/includes/questionnaire/questionnaire.php | 3 | ||||
| -rw-r--r-- | phpBB/includes/startup.php | 6 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_register.php | 28 | 
19 files changed, 328 insertions, 412 deletions
diff --git a/phpBB/includes/acp/acp_attachments.php b/phpBB/includes/acp/acp_attachments.php index 94e3660de8..feeccbe853 100644 --- a/phpBB/includes/acp/acp_attachments.php +++ b/phpBB/includes/acp/acp_attachments.php @@ -610,7 +610,6 @@ class acp_attachments  				$cat_lang = array(  					ATTACHMENT_CATEGORY_NONE		=> $user->lang['NO_FILE_CAT'],  					ATTACHMENT_CATEGORY_IMAGE		=> $user->lang['CAT_IMAGES'], -					ATTACHMENT_CATEGORY_FLASH		=> $user->lang['CAT_FLASH_FILES'],  				);  				$group_id = $request->variable('g', 0); @@ -1385,7 +1384,6 @@ class acp_attachments  		$types = array(  			ATTACHMENT_CATEGORY_NONE		=> $user->lang['NO_FILE_CAT'],  			ATTACHMENT_CATEGORY_IMAGE		=> $user->lang['CAT_IMAGES'], -			ATTACHMENT_CATEGORY_FLASH		=> $user->lang['CAT_FLASH_FILES'],  		);  		if ($group_id) diff --git a/phpBB/includes/acp/acp_bbcodes.php b/phpBB/includes/acp/acp_bbcodes.php index 1f7374a07f..b59f9e3a39 100644 --- a/phpBB/includes/acp/acp_bbcodes.php +++ b/phpBB/includes/acp/acp_bbcodes.php @@ -451,144 +451,7 @@ class acp_bbcodes  	function build_regexp(&$bbcode_match, &$bbcode_tpl)  	{  		$bbcode_match = trim($bbcode_match); -		$bbcode_tpl = trim($bbcode_tpl); - -		// Allow unicode characters for URL|LOCAL_URL|RELATIVE_URL|INTTEXT tokens -		$utf8 = preg_match('/(URL|LOCAL_URL|RELATIVE_URL|INTTEXT)/', $bbcode_match); - -		$fp_match = preg_quote($bbcode_match, '!'); -		$fp_replace = preg_replace('#^\[(.*?)\]#', '[$1:$uid]', $bbcode_match); -		$fp_replace = preg_replace('#\[/(.*?)\]$#', '[/$1:$uid]', $fp_replace); - -		$sp_match = preg_quote($bbcode_match, '!'); -		$sp_match = preg_replace('#^\\\\\[(.*?)\\\\\]#', '\[$1:$uid\]', $sp_match); -		$sp_match = preg_replace('#\\\\\[/(.*?)\\\\\]$#', '\[/$1:$uid\]', $sp_match); -		$sp_replace = $bbcode_tpl; - -		// @todo Make sure to change this too if something changed in message parsing -		$tokens = array( -			'URL'	 => array( -				'!(?:(' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('url')) . ')|(' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('www_url')) . '))!ie'	=>	"\$this->bbcode_specialchars(('\$1') ? '\$1' : 'http://\$2')" -			), -			'LOCAL_URL'	 => array( -				'!(' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('relative_url')) . ')!e'	=>	"\$this->bbcode_specialchars('$1')" -			), -			'RELATIVE_URL'	=> array( -				'!(' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('relative_url')) . ')!e'	=>	"\$this->bbcode_specialchars('$1')" -			), -			'EMAIL' => array( -				'!(' . get_preg_expression('email') . ')!ie'	=>	"\$this->bbcode_specialchars('$1')" -			), -			'TEXT' => array( -				'!(.*?)!es'	 =>	"str_replace(array(\"\\r\\n\", '\\\"', '\\'', '(', ')'), array(\"\\n\", '\"', ''', '(', ')'), trim('\$1'))" -			), -			'SIMPLETEXT' => array( -				'!([a-zA-Z0-9-+.,_ ]+)!'	 =>	"$1" -			), -			'INTTEXT' => array( -				'!([\p{L}\p{N}\-+,_. ]+)!u'	 =>	"$1" -			), -			'IDENTIFIER' => array( -				'!([a-zA-Z0-9-_]+)!'	 =>	"$1" -			), -			'COLOR' => array( -				'!([a-z]+|#[0-9abcdef]+)!i'	=>	'$1' -			), -			'NUMBER' => array( -				'!([0-9]+)!'	=>	'$1' -			) -		); - -		$sp_tokens = array( -			'URL'	 => '(?i)((?:' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('url')) . ')|(?:' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('www_url')) . '))(?-i)', -			'LOCAL_URL'	 => '(?i)(' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('relative_url')) . ')(?-i)', -			'RELATIVE_URL'	 => '(?i)(' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('relative_url')) . ')(?-i)', -			'EMAIL' => '(' . get_preg_expression('email') . ')', -			'TEXT' => '(.*?)', -			'SIMPLETEXT' => '([a-zA-Z0-9-+.,_ ]+)', -			'INTTEXT' => '([\p{L}\p{N}\-+,_. ]+)', -			'IDENTIFIER' => '([a-zA-Z0-9-_]+)', -			'COLOR' => '([a-zA-Z]+|#[0-9abcdefABCDEF]+)', -			'NUMBER' => '([0-9]+)', -		); - -		$pad = 0; -		$modifiers = 'i'; -		$modifiers .= ($utf8) ? 'u' : ''; - -		if (preg_match_all('/\{(' . implode('|', array_keys($tokens)) . ')[0-9]*\}/i', $bbcode_match, $m)) -		{ -			foreach ($m[0] as $n => $token) -			{ -				$token_type = $m[1][$n]; - -				reset($tokens[strtoupper($token_type)]); -				list($match, $replace) = each($tokens[strtoupper($token_type)]); - -				// Pad backreference numbers from tokens -				if (preg_match_all('/(?<!\\\\)\$([0-9]+)/', $replace, $repad)) -				{ -					$repad = $pad + count(array_unique($repad[0])); -					$replace = preg_replace_callback('/(?<!\\\\)\$([0-9]+)/', function ($match) use ($pad) { -						return '${' . ($match[1] + $pad) . '}'; -					}, $replace); -					$pad = $repad; -				} - -				// Obtain pattern modifiers to use and alter the regex accordingly -				$regex = preg_replace('/!(.*)!([a-z]*)/', '$1', $match); -				$regex_modifiers = preg_replace('/!(.*)!([a-z]*)/', '$2', $match); - -				for ($i = 0, $size = strlen($regex_modifiers); $i < $size; ++$i) -				{ -					if (strpos($modifiers, $regex_modifiers[$i]) === false) -					{ -						$modifiers .= $regex_modifiers[$i]; - -						if ($regex_modifiers[$i] == 'e') -						{ -							$fp_replace = "'" . str_replace("'", "\\'", $fp_replace) . "'"; -						} -					} - -					if ($regex_modifiers[$i] == 'e') -					{ -						$replace = "'.$replace.'"; -					} -				} - -				$fp_match = str_replace(preg_quote($token, '!'), $regex, $fp_match); -				$fp_replace = str_replace($token, $replace, $fp_replace); - -				$sp_match = str_replace(preg_quote($token, '!'), $sp_tokens[$token_type], $sp_match); - -				// Prepend the board url to local relative links -				$replace_prepend = ($token_type === 'LOCAL_URL') ? generate_board_url() . '/' : ''; - -				$sp_replace = str_replace($token, $replace_prepend . '${' . ($n + 1) . '}', $sp_replace); -			} - -			$fp_match = '!' . $fp_match . '!' . $modifiers; -			$sp_match = '!' . $sp_match . '!s' . (($utf8) ? 'u' : ''); - -			if (strpos($fp_match, 'e') !== false) -			{ -				$fp_replace = str_replace("'.'", '', $fp_replace); -				$fp_replace = str_replace(".''.", '.', $fp_replace); -			} -		} -		else -		{ -			// No replacement is present, no need for a second-pass pattern replacement -			// A simple str_replace will suffice -			$fp_match = '!' . $fp_match . '!' . $modifiers; -			$sp_match = $fp_replace; -			$sp_replace = ''; -		} - -		// Lowercase tags  		$bbcode_tag = preg_replace('/.*?\[([a-z0-9_-]+).*/i', '$1', $bbcode_match); -		$bbcode_search = preg_replace('/.*?\[([a-z0-9_-]+).*/i', '$1', $bbcode_match);  		if (!preg_match('/^[a-zA-Z0-9_-]+$/', $bbcode_tag))  		{ @@ -596,25 +459,13 @@ class acp_bbcodes  			trigger_error($user->lang['BBCODE_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);  		} -		$fp_match = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { -			return strtolower($match[0]); -		}, $fp_match); -		$fp_replace = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { -			return strtolower($match[0]); -		}, $fp_replace); -		$sp_match = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { -			return strtolower($match[0]); -		}, $sp_match); -		$sp_replace = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { -			return strtolower($match[0]); -		}, $sp_replace); -  		return array(  			'bbcode_tag'				=> $bbcode_tag, -			'first_pass_match'			=> $fp_match, -			'first_pass_replace'		=> $fp_replace, -			'second_pass_match'			=> $sp_match, -			'second_pass_replace'		=> $sp_replace +			'first_pass_match'			=> '/(?!)/', +			'first_pass_replace'		=> '', +			// Use a non-matching, valid regexp to effectively disable this BBCode +			'second_pass_match'			=> '/(?!)/', +			'second_pass_replace'		=> ''  		);  	}  } diff --git a/phpBB/includes/acp/acp_board.php b/phpBB/includes/acp/acp_board.php index 0730b4e285..7cbd0903bd 100644 --- a/phpBB/includes/acp/acp_board.php +++ b/phpBB/includes/acp/acp_board.php @@ -85,34 +85,25 @@ class acp_board  				$display_vars = array(  					'title'	=> 'ACP_BOARD_FEATURES',  					'vars'	=> array( -						'legend1'				=> 'ACP_BOARD_FEATURES', -						'allow_privmsg'			=> array('lang' => 'BOARD_PM',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), -						'allow_topic_notify'	=> array('lang' => 'ALLOW_TOPIC_NOTIFY',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_forum_notify'	=> array('lang' => 'ALLOW_FORUM_NOTIFY',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_namechange'		=> array('lang' => 'ALLOW_NAME_CHANGE',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_attachments'		=> array('lang' => 'ALLOW_ATTACHMENTS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_pm_attach'		=> array('lang' => 'ALLOW_PM_ATTACHMENTS',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_pm_report'		=> array('lang' => 'ALLOW_PM_REPORT',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), -						'allow_bbcode'			=> array('lang' => 'ALLOW_BBCODE',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_smilies'			=> array('lang' => 'ALLOW_SMILIES',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_sig'				=> array('lang' => 'ALLOW_SIG',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'legend1'						=> 'ACP_BOARD_FEATURES', +						'allow_privmsg'					=> array('lang' => 'BOARD_PM',						'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'allow_topic_notify'			=> array('lang' => 'ALLOW_TOPIC_NOTIFY',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_forum_notify'			=> array('lang' => 'ALLOW_FORUM_NOTIFY',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_namechange'				=> array('lang' => 'ALLOW_NAME_CHANGE',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_attachments'				=> array('lang' => 'ALLOW_ATTACHMENTS',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_pm_attach'				=> array('lang' => 'ALLOW_PM_ATTACHMENTS',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_pm_report'				=> array('lang' => 'ALLOW_PM_REPORT',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'allow_bbcode'					=> array('lang' => 'ALLOW_BBCODE',					'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_smilies'					=> array('lang' => 'ALLOW_SMILIES',					'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_sig'						=> array('lang' => 'ALLOW_SIG',						'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false),  						'allow_board_notifications'		=> array('lang' => 'ALLOW_BOARD_NOTIFICATIONS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'allow_nocensors'		=> array('lang' => 'ALLOW_NO_CENSORS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), -						'allow_bookmarks'		=> array('lang' => 'ALLOW_BOOKMARKS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), -						'allow_birthdays'		=> array('lang' => 'ALLOW_BIRTHDAYS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), -						'display_last_subject'	=> array('lang' => 'DISPLAY_LAST_SUBJECT',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), -						'allow_quick_reply'		=> array('lang' => 'ALLOW_QUICK_REPLY',		'validate' => 'bool',	'type' => 'custom', 'method' => 'quick_reply', 'explain' => true), - -						'legend2'				=> 'ACP_LOAD_SETTINGS', -						'load_birthdays'		=> array('lang' => 'YES_BIRTHDAYS',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), -						'load_moderators'		=> array('lang' => 'YES_MODERATORS',		'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'load_jumpbox'			=> array('lang' => 'YES_JUMPBOX',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'load_cpf_memberlist'	=> array('lang' => 'LOAD_CPF_MEMBERLIST',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'load_cpf_pm'			=> array('lang' => 'LOAD_CPF_PM',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain'	=> false), -						'load_cpf_viewprofile'	=> array('lang' => 'LOAD_CPF_VIEWPROFILE',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), -						'load_cpf_viewtopic'	=> array('lang' => 'LOAD_CPF_VIEWTOPIC',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false), +						'allow_nocensors'				=> array('lang' => 'ALLOW_NO_CENSORS',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'allow_bookmarks'				=> array('lang' => 'ALLOW_BOOKMARKS',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'allow_birthdays'				=> array('lang' => 'ALLOW_BIRTHDAYS',				'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'display_last_subject'			=> array('lang' => 'DISPLAY_LAST_SUBJECT',			'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => true), +						'allow_quick_reply'				=> array('lang' => 'ALLOW_QUICK_REPLY',				'validate' => 'bool',	'type' => 'custom', 'method' => 'quick_reply', 'explain' => true), -						'legend3'					=> 'ACP_SUBMIT_CHANGES', +						'legend2'							=> 'ACP_SUBMIT_CHANGES',  					)  				);  			break; diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php index a1cb2108e7..2929de3c4f 100644 --- a/phpBB/includes/acp/acp_extensions.php +++ b/phpBB/includes/acp/acp_extensions.php @@ -38,7 +38,7 @@ class acp_extensions  	private $phpbb_container;  	private $php_ini; -	function main() +	function main($id, $mode)  	{  		// Start the page  		global $config, $user, $template, $request, $phpbb_extension_manager, $phpbb_root_path, $phpbb_log, $phpbb_dispatcher, $phpbb_container; @@ -182,13 +182,19 @@ class acp_extensions  					redirect($this->u_action);  				} -				$this->tpl_name = 'acp_ext_enable'; - -				$this->template->assign_vars(array( -					'PRE'				=> true, -					'L_CONFIRM_MESSAGE'	=> $this->user->lang('EXTENSION_ENABLE_CONFIRM', $md_manager->get_metadata('display-name')), -					'U_ENABLE'			=> $this->u_action . '&action=enable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('enable.' . $ext_name), -				)); +				if (confirm_box(true)) +				{ +					redirect($this->u_action . '&action=enable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('enable.' . $ext_name)); +				} +				else +				{ +					confirm_box(false, $this->user->lang('EXTENSION_ENABLE_CONFIRM', $md_manager->get_metadata('display-name')), build_hidden_fields(array( +						'i'			=> $id, +						'mode'		=> $mode, +						'action'	=> 'enable_pre', +						'ext_name'	=> $ext_name, +					))); +				}  			break;  			case 'enable': @@ -215,9 +221,8 @@ class acp_extensions  						// Are we approaching the time limit? If so we want to pause the update and continue after refreshing  						if ((time() - $start_time) >= $safe_time_limit)  						{ -							$this->template->assign_var('S_NEXT_STEP', true); -  							meta_refresh(0, $this->u_action . '&action=enable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('enable.' . $ext_name)); +							trigger_error('EXTENSION_ENABLE_IN_PROGRESS', E_USER_NOTICE);  						}  					} @@ -233,14 +238,22 @@ class acp_extensions  				}  				catch (\phpbb\db\migration\exception $e)  				{ -					$this->template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($this->user)); +					trigger_error($this->user->lang('MIGRATION_EXCEPTION_ERROR', $e->getLocalisedMessage($this->user)), E_USER_WARNING);  				} -				$this->tpl_name = 'acp_ext_enable'; - -				$this->template->assign_vars(array( -					'U_RETURN'		=> $this->u_action . '&action=list', -				)); +				if ($this->request->is_ajax()) +				{ +					$actions = $this->output_actions('enabled', [ +						'DISABLE'	=> $this->u_action . '&action=disable_pre&ext_name=' . urlencode($ext_name), +					]); + +					$json_response = new \phpbb\json_response; +					$json_response->send(array( +						'EXT_ENABLE_SUCCESS'	=> true, +						'ACTIONS'				=> $actions, +					)); +				} +				trigger_error($this->user->lang('EXTENSION_ENABLE_SUCCESS') . adm_back_link($this->u_action), E_USER_NOTICE);  			break;  			case 'disable_pre': @@ -249,13 +262,19 @@ class acp_extensions  					redirect($this->u_action);  				} -				$this->tpl_name = 'acp_ext_disable'; - -				$this->template->assign_vars(array( -					'PRE'				=> true, -					'L_CONFIRM_MESSAGE'	=> $this->user->lang('EXTENSION_DISABLE_CONFIRM', $md_manager->get_metadata('display-name')), -					'U_DISABLE'			=> $this->u_action . '&action=disable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('disable.' . $ext_name), -				)); +				if (confirm_box(true)) +				{ +					redirect($this->u_action . '&action=disable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('disable.' . $ext_name)); +				} +				else +				{ +					confirm_box(false, $this->user->lang('EXTENSION_DISABLE_CONFIRM', $md_manager->get_metadata('display-name')), build_hidden_fields(array( +						'i'			=> $id, +						'mode'		=> $mode, +						'action'	=> 'disable_pre', +						'ext_name'	=> $ext_name, +					))); +				}  			break;  			case 'disable': @@ -272,15 +291,25 @@ class acp_extensions  						$this->template->assign_var('S_NEXT_STEP', true);  						meta_refresh(0, $this->u_action . '&action=disable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('disable.' . $ext_name)); +						trigger_error('EXTENSION_DISABLE_IN_PROGRESS', E_USER_NOTICE);  					}  				}  				$this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EXT_DISABLE', time(), array($ext_name)); -				$this->tpl_name = 'acp_ext_disable'; - -				$this->template->assign_vars(array( -					'U_RETURN'	=> $this->u_action . '&action=list', -				)); +				if ($this->request->is_ajax()) +				{ +					$actions = $this->output_actions('disabled', [ +						'ENABLE'		=> $this->u_action . '&action=enable_pre&ext_name=' . urlencode($ext_name), +						'DELETE_DATA'	=> $this->u_action . '&action=delete_data_pre&ext_name=' . urlencode($ext_name), +					]); + +					$json_response = new \phpbb\json_response; +					$json_response->send(array( +						'EXT_DISABLE_SUCCESS'	=> true, +						'ACTIONS'				=> $actions, +					)); +				} +				trigger_error($this->user->lang('EXTENSION_DISABLE_SUCCESS') . adm_back_link($this->u_action), E_USER_NOTICE);  			break;  			case 'delete_data_pre': @@ -288,13 +317,20 @@ class acp_extensions  				{  					redirect($this->u_action);  				} -				$this->tpl_name = 'acp_ext_delete_data'; -				$this->template->assign_vars(array( -					'PRE'				=> true, -					'L_CONFIRM_MESSAGE'	=> $this->user->lang('EXTENSION_DELETE_DATA_CONFIRM', $md_manager->get_metadata('display-name')), -					'U_PURGE'			=> $this->u_action . '&action=delete_data&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('delete_data.' . $ext_name), -				)); +				if (confirm_box(true)) +				{ +					redirect($this->u_action . '&action=delete_data&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('delete_data.' . $ext_name)); +				} +				else +				{ +					confirm_box(false, $this->user->lang('EXTENSION_DELETE_DATA_CONFIRM', $md_manager->get_metadata('display-name')), build_hidden_fields(array( +						'i'			=> $id, +						'mode'		=> $mode, +						'action'	=> 'delete_data_pre', +						'ext_name'	=> $ext_name, +					))); +				}  			break;  			case 'delete_data': @@ -313,20 +349,29 @@ class acp_extensions  							$this->template->assign_var('S_NEXT_STEP', true);  							meta_refresh(0, $this->u_action . '&action=delete_data&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('delete_data.' . $ext_name)); +							trigger_error('EXTENSION_DELETE_DATA_IN_PROGRESS', E_USER_NOTICE);  						}  					}  					$this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_EXT_PURGE', time(), array($ext_name));  				}  				catch (\phpbb\db\migration\exception $e)  				{ -					$this->template->assign_var('MIGRATOR_ERROR', $e->getLocalisedMessage($this->user)); +					trigger_error($this->user->lang('MIGRATION_EXCEPTION_ERROR', $e->getLocalisedMessage($this->user)), E_USER_WARNING);  				} -				$this->tpl_name = 'acp_ext_delete_data'; - -				$this->template->assign_vars(array( -					'U_RETURN'	=> $this->u_action . '&action=list', -				)); +				if ($this->request->is_ajax()) +				{ +					$actions = $this->output_actions('disabled', [ +						'ENABLE'		=> $this->u_action . '&action=enable_pre&ext_name=' . urlencode($ext_name), +					]); + +					$json_response = new \phpbb\json_response; +					$json_response->send(array( +						'EXT_DELETE_DATA_SUCCESS'	=> true, +						'ACTIONS'					=> $actions, +					)); +				} +				trigger_error($this->user->lang('EXTENSION_DELETE_DATA_SUCCESS') . adm_back_link($this->u_action), E_USER_NOTICE);  			break;  			case 'details': @@ -605,17 +650,37 @@ class acp_extensions  	*  	* @param string $block  	* @param array $actions +	* @return array List of actions to be performed on the extension  	*/  	private function output_actions($block, $actions)  	{ -		foreach ($actions as $lang => $url) +		$vars_ary = array(); +		foreach ($actions as $lang => $options)  		{ -			$this->template->assign_block_vars($block . '.actions', array( +			$url = $options; +			if (is_array($options)) +			{ +				$url = $options['url']; +			} + +			$vars = array(  				'L_ACTION'			=> $this->user->lang('EXTENSION_' . $lang),  				'L_ACTION_EXPLAIN'	=> (isset($this->user->lang['EXTENSION_' . $lang . '_EXPLAIN'])) ? $this->user->lang('EXTENSION_' . $lang . '_EXPLAIN') : '',  				'U_ACTION'			=> $url, -			)); +				'ACTION_AJAX'		=> 'ext_' . strtolower($lang), +			); + +			if (isset($options['color'])) +			{ +				$vars['COLOR'] = $options['color']; +			} + +			$this->template->assign_block_vars($block . '.actions', $vars); + +			$vars_ary[] = $vars;  		} + +		return $vars_ary;  	}  	/** diff --git a/phpBB/includes/acp/acp_main.php b/phpBB/includes/acp/acp_main.php index 8f169d15a7..27fac54777 100644 --- a/phpBB/includes/acp/acp_main.php +++ b/phpBB/includes/acp/acp_main.php @@ -657,7 +657,7 @@ class acp_main  		}  		// Warn if install is still present -		if (file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install')) +		if (!defined('IN_INSTALL') && !$phpbb_container->getParameter('allow_install_dir') && file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install'))  		{  			$template->assign_var('S_REMOVE_INSTALL', true);  		} diff --git a/phpBB/includes/compatibility_globals.php b/phpBB/includes/compatibility_globals.php index ad394e3782..15880d4bc8 100644 --- a/phpBB/includes/compatibility_globals.php +++ b/phpBB/includes/compatibility_globals.php @@ -18,6 +18,14 @@ if (!defined('IN_PHPBB'))  	exit;  } +// +// Deprecated globals +// +define('ATTACHMENT_CATEGORY_WM', 2); // Windows Media Files - Streaming - @deprecated 3.2 +define('ATTACHMENT_CATEGORY_RM', 3); // Real Media Files - Streaming - @deprecated 3.2 +define('ATTACHMENT_CATEGORY_QUICKTIME', 6); // Quicktime/Mov files - @deprecated 3.2 +define('ATTACHMENT_CATEGORY_FLASH', 5); // Flash/SWF files - @deprecated 3.3 +  /**   * Sets compatibility globals in the global scope   * diff --git a/phpBB/includes/constants.php b/phpBB/includes/constants.php index 89d056f2e1..9f7a325a2b 100644 --- a/phpBB/includes/constants.php +++ b/phpBB/includes/constants.php @@ -28,7 +28,7 @@ if (!defined('IN_PHPBB'))  */  // phpBB Version -@define('PHPBB_VERSION', '3.2.8-dev'); +@define('PHPBB_VERSION', '3.3.0-b1-dev');  // QA-related  // define('PHPBB_QA', 1); @@ -171,11 +171,7 @@ define('CONFIRM_REPORT', 4);  // Categories - Attachments  define('ATTACHMENT_CATEGORY_NONE', 0);  define('ATTACHMENT_CATEGORY_IMAGE', 1); // Inline Images -define('ATTACHMENT_CATEGORY_WM', 2); // Windows Media Files - Streaming - @deprecated 3.2 -define('ATTACHMENT_CATEGORY_RM', 3); // Real Media Files - Streaming - @deprecated 3.2  define('ATTACHMENT_CATEGORY_THUMB', 4); // Not used within the database, only while displaying posts -define('ATTACHMENT_CATEGORY_FLASH', 5); // Flash/SWF files -define('ATTACHMENT_CATEGORY_QUICKTIME', 6); // Quicktime/Mov files - @deprecated 3.2  // BBCode UID length  define('BBCODE_UID_LEN', 8); diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index c9f589c174..667aa2df19 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -52,18 +52,6 @@ function phpbb_load_extensions_autoloaders($phpbb_root_path)  }  /** -* Casts a variable to the given type. -* -* @deprecated -*/ -function set_var(&$result, $var, $type, $multibyte = false) -{ -	// no need for dependency injection here, if you have the object, call the method yourself! -	$type_cast_helper = new \phpbb\request\type_cast_helper(); -	$type_cast_helper->set_var($result, $var, $type, $multibyte); -} - -/**  * Generates an alphanumeric random string of given length  *  * @param int $num_chars Length of random string, defaults to 8. @@ -3325,6 +3313,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)  {  	global $cache, $db, $auth, $template, $config, $user, $request;  	global $phpbb_root_path, $msg_title, $msg_long_text, $phpbb_log; +	global $phpbb_container;  	// Do not display notices if we suppress them via @  	if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE) @@ -3345,7 +3334,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)  			// Check the error reporting level and return if the error level does not match  			// If DEBUG is defined the default level is E_ALL -			if (($errno & ((defined('DEBUG')) ? E_ALL : error_reporting())) == 0) +			if (($errno & ($phpbb_container->getParameter('debug.show_errors') ? E_ALL : error_reporting())) == 0)  			{  				return;  			} @@ -3403,7 +3392,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)  				$log_text .= '<br /><br />BACKTRACE<br />' . $backtrace;  			} -			if (defined('IN_INSTALL') || defined('DEBUG') || isset($auth) && $auth->acl_get('a_')) +			if (defined('IN_INSTALL') || $phpbb_container->getParameter('debug.show_errors') || isset($auth) && $auth->acl_get('a_'))  			{  				$msg_text = $log_text; @@ -4291,7 +4280,8 @@ function page_header($page_title = '', $display_online_list = false, $item_id =  	}  	else  	{ -		$u_login_logout = append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'); +		$redirect = $request->variable('redirect', rawurlencode($user->page['page'])); +		$u_login_logout = append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login&redirect=' . $redirect);  		$l_login_logout = $user->lang['LOGIN'];  	} @@ -4638,7 +4628,9 @@ function page_header($page_title = '', $display_online_list = false, $item_id =  */  function phpbb_check_and_display_sql_report(\phpbb\request\request_interface $request, \phpbb\auth\auth $auth, \phpbb\db\driver\driver_interface $db)  { -	if ($request->variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG')) +	global $phpbb_container; + +	if ($phpbb_container->getParameter('debug.sql_explain') && $request->variable('explain', false) && $auth->acl_get('a_'))  	{  		$db->sql_report('display');  	} @@ -4656,19 +4648,22 @@ function phpbb_check_and_display_sql_report(\phpbb\request\request_interface $re  */  function phpbb_generate_debug_output(\phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\auth\auth $auth, \phpbb\user $user, \phpbb\event\dispatcher_interface $phpbb_dispatcher)  { +	global $phpbb_container; +  	$debug_info = array();  	// Output page creation time -	if (defined('PHPBB_DISPLAY_LOAD_TIME')) +	if ($phpbb_container->getParameter('debug.load_time'))  	{  		if (isset($GLOBALS['starttime']))  		{  			$totaltime = microtime(true) - $GLOBALS['starttime'];  			$debug_info[] = sprintf('<span title="SQL time: %.3fs / PHP time: %.3fs">Time: %.3fs</span>', $db->get_sql_time(), ($totaltime - $db->get_sql_time()), $totaltime);  		} +	} -		$debug_info[] = sprintf('<span title="Cached: %d">Queries: %d</span>', $db->sql_num_queries(true), $db->sql_num_queries()); - +	if ($phpbb_container->getParameter('debug.memory')) +	{  		$memory_usage = memory_get_peak_usage();  		if ($memory_usage)  		{ @@ -4676,16 +4671,18 @@ function phpbb_generate_debug_output(\phpbb\db\driver\driver_interface $db, \php  			$debug_info[] = 'Peak Memory Usage: ' . $memory_usage;  		} -	} -	if (defined('DEBUG')) -	{  		$debug_info[] = 'GZIP: ' . (($config['gzip_compress'] && @extension_loaded('zlib')) ? 'On' : 'Off');  		if ($user->load)  		{  			$debug_info[] = 'Load: ' . $user->load;  		} +	} + +	if ($phpbb_container->getParameter('debug.sql_explain')) +	{ +		$debug_info[] = sprintf('<span title="Cached: %d">Queries: %d</span>', $db->sql_num_queries(true), $db->sql_num_queries());  		if ($auth->acl_get('a_'))  		{ diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index c19d48b0be..1f3fe1c8e8 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -1161,28 +1161,6 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =  }  /** -* Delete Attachments -* -* @deprecated 3.2.0-a1 (To be removed: 3.4.0) -* -* @param string $mode can be: post|message|topic|attach|user -* @param mixed $ids can be: post_ids, message_ids, topic_ids, attach_ids, user_ids -* @param bool $resync set this to false if you are deleting posts or topics -*/ -function delete_attachments($mode, $ids, $resync = true) -{ -	global $phpbb_container; - -	/** @var \phpbb\attachment\manager $attachment_manager */ -	$attachment_manager = $phpbb_container->get('attachment.manager'); -	$num_deleted = $attachment_manager->delete($mode, $ids, $resync); - -	unset($attachment_manager); - -	return $num_deleted; -} - -/**  * Deletes shadow topics pointing to a specified forum.  *  * @param int		$forum_id		The forum id @@ -1294,23 +1272,6 @@ function update_posted_info(&$topic_ids)  }  /** -* Delete attached file -* -* @deprecated 3.2.0-a1 (To be removed: 3.4.0) -*/ -function phpbb_unlink($filename, $mode = 'file', $entry_removed = false) -{ -	global $phpbb_container; - -	/** @var \phpbb\attachment\manager $attachment_manager */ -	$attachment_manager = $phpbb_container->get('attachment.manager'); -	$unlink = $attachment_manager->unlink($filename, $mode, $entry_removed); -	unset($attachment_manager); - -	return $unlink; -} - -/**  * All-encompasing sync function  *  * Exaples: diff --git a/phpBB/includes/functions_compatibility.php b/phpBB/includes/functions_compatibility.php index e95fa40a58..b5b60e118e 100644 --- a/phpBB/includes/functions_compatibility.php +++ b/phpBB/includes/functions_compatibility.php @@ -22,7 +22,7 @@ if (!defined('IN_PHPBB'))  /**  * Get user avatar  * -* @deprecated 3.1.0-a1 (To be removed: 3.3.0) +* @deprecated 3.1.0-a1 (To be removed: 4.0.0)  *  * @param string $avatar Users assigned avatar name  * @param int $avatar_type Type of avatar @@ -50,7 +50,7 @@ function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $  /**  * Hash the password  * -* @deprecated 3.1.0-a2 (To be removed: 3.3.0) +* @deprecated 3.1.0-a2 (To be removed: 4.0.0)  *  * @param string $password Password to be hashed  * @@ -68,7 +68,7 @@ function phpbb_hash($password)  /**  * Check for correct password  * -* @deprecated 3.1.0-a2 (To be removed: 3.3.0) +* @deprecated 3.1.0-a2 (To be removed: 4.0.0)  *  * @param string $password The password in plain text  * @param string $hash The stored password hash @@ -92,7 +92,7 @@ function phpbb_check_hash($password, $hash)  * @param string $path Path to clean  * @return string Cleaned path  * -* @deprecated 3.1.0 (To be removed: 3.3.0) +* @deprecated 3.1.0 (To be removed: 4.0.0)  */  function phpbb_clean_path($path)  { @@ -136,7 +136,7 @@ function phpbb_clean_path($path)  *  * @return		string		Returns the options for timezone selector only  * -* @deprecated 3.1.0 (To be removed: 3.3.0) +* @deprecated 3.1.0 (To be removed: 4.0.0)  */  function tz_select($default = '', $truncate = false)  { @@ -150,7 +150,7 @@ function tz_select($default = '', $truncate = false)  * via admin_permissions. Changes of usernames and group names  * must be carried through for the moderators table.  * -* @deprecated 3.1.0 (To be removed: 3.3.0) +* @deprecated 3.1.0 (To be removed: 4.0.0)  * @return null  */  function cache_moderators() @@ -162,7 +162,7 @@ function cache_moderators()  /**  * Removes moderators and administrators from foe lists.  * -* @deprecated 3.1.0 (To be removed: 3.3.0) +* @deprecated 3.1.0 (To be removed: 4.0.0)  * @param array|bool $group_id If an array, remove all members of this group from foe lists, or false to ignore  * @param array|bool $user_id If an array, remove this user from foe lists, or false to ignore  * @return null @@ -182,7 +182,7 @@ function update_foes($group_id = false, $user_id = false)  * @param string &$rank_img the rank image as full img tag is stored here after execution  * @param string &$rank_img_src the rank image source is stored here after execution  * -* @deprecated 3.1.0-RC5 (To be removed: 3.3.0) +* @deprecated 3.1.0-RC5 (To be removed: 4.0.0)  *  * Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false  */ @@ -232,7 +232,7 @@ function get_remote_file($host, $directory, $filename, &$errstr, &$errno, $port   *   * @return	int|bool		Returns the log_id, if the entry was added to the database, false otherwise.   * - * @deprecated	3.1.0 (To be removed: 3.3.0) + * @deprecated	3.1.0 (To be removed: 4.0.0)   */  function add_log()  { @@ -280,7 +280,7 @@ function add_log()   *   * @return null   * - * @deprecated 3.1.0 (To be removed: 3.3.0) + * @deprecated 3.1.0 (To be removed: 4.0.0)   */  function set_config($config_name, $config_value, $is_dynamic = false, \phpbb\config\config $set_config = null)  { @@ -310,7 +310,7 @@ function set_config($config_name, $config_value, $is_dynamic = false, \phpbb\con   *   * @return null   * - * @deprecated 3.1.0 (To be removed: 3.3.0) + * @deprecated 3.1.0 (To be removed: 4.0.0)   */  function set_config_count($config_name, $increment, $is_dynamic = false, \phpbb\config\config $set_config = null)  { @@ -331,7 +331,7 @@ function set_config_count($config_name, $increment, $is_dynamic = false, \phpbb\   * See {@link \phpbb\request\request_interface::variable \phpbb\request\request_interface::variable} for   * documentation of this function's use.   * - * @deprecated 3.1.0 (To be removed: 3.3.0) + * @deprecated 3.1.0 (To be removed: 4.0.0)   * @param	mixed			$var_name	The form variable's name from which data shall be retrieved.   * 										If the value is an array this may be an array of indizes which will give   * 										direct access to a value at any depth. E.g. if the value of "var" is array(1 => "a") @@ -389,7 +389,7 @@ function request_var($var_name, $default, $multibyte = false, $cookie = false, $  /**   * Get tables of a database   * - * @deprecated 3.1.0 (To be removed: 3.3.0) + * @deprecated 3.1.0 (To be removed: 4.0.0)   */  function get_tables($db)  { @@ -492,7 +492,7 @@ function phpbb_realpath($path)   * @param $number	int|float	The number we want to get the plural case for. Float numbers are floored.   * @return	int		The plural-case we need to use for the number plural-rule combination   * - * @deprecated 3.2.0-dev (To be removed: 3.3.0) + * @deprecated 3.2.0-dev (To be removed: 4.0.0)   */  function phpbb_get_plural_form($rule, $number)  { @@ -511,3 +511,93 @@ function phpbb_pcre_utf8_support()  {  	return true;  } + +/** + * Casts a variable to the given type. + * + * @deprecated 3.1 (To be removed 4.0.0) + */ +function set_var(&$result, $var, $type, $multibyte = false) +{ +	// no need for dependency injection here, if you have the object, call the method yourself! +	$type_cast_helper = new \phpbb\request\type_cast_helper(); +	$type_cast_helper->set_var($result, $var, $type, $multibyte); +} + +/** + * Delete Attachments + * + * @deprecated 3.2.0-a1 (To be removed: 4.0.0) + * + * @param string $mode can be: post|message|topic|attach|user + * @param mixed $ids can be: post_ids, message_ids, topic_ids, attach_ids, user_ids + * @param bool $resync set this to false if you are deleting posts or topics + */ +function delete_attachments($mode, $ids, $resync = true) +{ +	global $phpbb_container; + +	/** @var \phpbb\attachment\manager $attachment_manager */ +	$attachment_manager = $phpbb_container->get('attachment.manager'); +	$num_deleted = $attachment_manager->delete($mode, $ids, $resync); + +	unset($attachment_manager); + +	return $num_deleted; +} + +/** + * Delete attached file + * + * @deprecated 3.2.0-a1 (To be removed: 4.0.0) + */ +function phpbb_unlink($filename, $mode = 'file', $entry_removed = false) +{ +	global $phpbb_container; + +	/** @var \phpbb\attachment\manager $attachment_manager */ +	$attachment_manager = $phpbb_container->get('attachment.manager'); +	$unlink = $attachment_manager->unlink($filename, $mode, $entry_removed); +	unset($attachment_manager); + +	return $unlink; +} + +/** + * Display reasons + * + * @deprecated 3.2.0-dev (To be removed: 4.0.0) + */ +function display_reasons($reason_id = 0) +{ +	global $phpbb_container; + +	$phpbb_container->get('phpbb.report.report_reason_list_provider')->display_reasons($reason_id); +} + +/** + * Upload Attachment - filedata is generated here + * Uses upload class + * + * @deprecated 3.2.0-a1 (To be removed: 4.0.0) + * + * @param string			$form_name		The form name of the file upload input + * @param int			$forum_id		The id of the forum + * @param bool			$local			Whether the file is local or not + * @param string			$local_storage	The path to the local file + * @param bool			$is_message		Whether it is a PM or not + * @param array			$local_filedata	A filespec object created for the local file + * + * @return array File data array + */ +function upload_attachment($form_name, $forum_id, $local = false, $local_storage = '', $is_message = false, $local_filedata = false) +{ +	global $phpbb_container; + +	/** @var \phpbb\attachment\manager $attachment_manager */ +	$attachment_manager = $phpbb_container->get('attachment.manager'); +	$file = $attachment_manager->upload($form_name, $forum_id, $local, $local_storage, $is_message, $local_filedata); +	unset($attachment_manager); + +	return $file; +} diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php index e86da77b38..56d64d37fb 100644 --- a/phpBB/includes/functions_compress.php +++ b/phpBB/includes/functions_compress.php @@ -305,8 +305,8 @@ class compress_zip extends compress  								}  							}  						} -						// This is a directory, we are not writting files -						continue; +						// This is a directory, we are not writing files +						continue 2;  					}  					else  					{ diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index 2542be5e02..fd014c741e 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -1245,11 +1245,6 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a  				$display_cat = ATTACHMENT_CATEGORY_NONE;  			} -			if ($display_cat == ATTACHMENT_CATEGORY_FLASH && !$user->optionget('viewflash')) -			{ -				$display_cat = ATTACHMENT_CATEGORY_NONE; -			} -  			$download_link = append_sid("{$phpbb_root_path}download/file.$phpEx", 'id=' . $attachment['attach_id']);  			$l_downloaded_viewed = 'VIEWED_COUNTS'; @@ -1281,21 +1276,6 @@ function parse_attachments($forum_id, &$message, &$attachments, &$update_count_a  					$update_count_ary[] = $attachment['attach_id'];  				break; -				// Macromedia Flash Files -				case ATTACHMENT_CATEGORY_FLASH: -					list($width, $height) = @getimagesize($filename); - -					$block_array += array( -						'S_FLASH_FILE'	=> true, -						'WIDTH'			=> $width, -						'HEIGHT'		=> $height, -						'U_VIEW_LINK'	=> $download_link . '&view=1', -					); - -					// Viewed/Heared File ... update the download count -					$update_count_ary[] = $attachment['attach_id']; -				break; -  				default:  					$l_downloaded_viewed = 'DOWNLOAD_COUNTS'; diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index 792467019f..7fa32ce217 100644 --- a/phpBB/includes/functions_display.php +++ b/phpBB/includes/functions_display.php @@ -783,25 +783,25 @@ function generate_forum_nav(&$forum_data_ary)  			}  			$navlinks_parents[] = array( -				'S_IS_CAT'		=> ($parent_type == FORUM_CAT) ? true : false, -				'S_IS_LINK'		=> ($parent_type == FORUM_LINK) ? true : false, -				'S_IS_POST'		=> ($parent_type == FORUM_POST) ? true : false, -				'FORUM_NAME'	=> $parent_name, -				'FORUM_ID'		=> $parent_forum_id, -				'MICRODATA'		=> $microdata_attr . '="' . $parent_forum_id . '"', -				'U_VIEW_FORUM'	=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $parent_forum_id), +				'S_IS_CAT'			=> ($parent_type == FORUM_CAT) ? true : false, +				'S_IS_LINK'			=> ($parent_type == FORUM_LINK) ? true : false, +				'S_IS_POST'			=> ($parent_type == FORUM_POST) ? true : false, +				'BREADCRUMB_NAME'	=> $parent_name, +				'FORUM_ID'			=> $parent_forum_id, +				'MICRODATA'			=> $microdata_attr . '="' . $parent_forum_id . '"', +				'U_BREADCRUMB'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $parent_forum_id),  			);  		}  	}  	$navlinks = array( -		'S_IS_CAT'		=> ($forum_data_ary['forum_type'] == FORUM_CAT) ? true : false, -		'S_IS_LINK'		=> ($forum_data_ary['forum_type'] == FORUM_LINK) ? true : false, -		'S_IS_POST'		=> ($forum_data_ary['forum_type'] == FORUM_POST) ? true : false, -		'FORUM_NAME'	=> $forum_data_ary['forum_name'], -		'FORUM_ID'		=> $forum_data_ary['forum_id'], -		'MICRODATA'		=> $microdata_attr . '="' . $forum_data_ary['forum_id'] . '"', -		'U_VIEW_FORUM'	=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_data_ary['forum_id']), +		'S_IS_CAT'			=> ($forum_data_ary['forum_type'] == FORUM_CAT) ? true : false, +		'S_IS_LINK'			=> ($forum_data_ary['forum_type'] == FORUM_LINK) ? true : false, +		'S_IS_POST'			=> ($forum_data_ary['forum_type'] == FORUM_POST) ? true : false, +		'BREADCRUMB_NAME'	=> $forum_data_ary['forum_name'], +		'FORUM_ID'			=> $forum_data_ary['forum_id'], +		'MICRODATA'			=> $microdata_attr . '="' . $forum_data_ary['forum_id'] . '"', +		'U_BREADCRUMB'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_data_ary['forum_id']),  	);  	$forum_template_data = array( @@ -1149,18 +1149,6 @@ function display_custom_bbcodes()  }  /** -* Display reasons -* -* @deprecated 3.2.0-dev -*/ -function display_reasons($reason_id = 0) -{ -	global $phpbb_container; - -	$phpbb_container->get('phpbb.report.report_reason_list_provider')->display_reasons($reason_id); -} - -/**  * Display user activity (action forum/topic)  */  function display_user_activity(&$userdata_ary) diff --git a/phpBB/includes/functions_download.php b/phpBB/includes/functions_download.php index 1f409be58c..d2d3924dd8 100644 --- a/phpBB/includes/functions_download.php +++ b/phpBB/includes/functions_download.php @@ -206,28 +206,20 @@ function send_file_to_browser($attachment, $upload_dir, $category)  		header('X-Content-Type-Options: nosniff');  	} -	if ($category == ATTACHMENT_CATEGORY_FLASH && $request->variable('view', 0) === 1) +	if (empty($user->browser) || ((strpos(strtolower($user->browser), 'msie') !== false) && !phpbb_is_greater_ie_version($user->browser, 7)))  	{ -		// We use content-disposition: inline for flash files and view=1 to let it correctly play with flash player 10 - any other disposition will fail to play inline -		header('Content-Disposition: inline'); +		header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename']))); +		if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false)) +		{ +			header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); +		}  	}  	else  	{ -		if (empty($user->browser) || ((strpos(strtolower($user->browser), 'msie') !== false) && !phpbb_is_greater_ie_version($user->browser, 7))) -		{ -			header('Content-Disposition: attachment; ' . header_filename(htmlspecialchars_decode($attachment['real_filename']))); -			if (empty($user->browser) || (strpos(strtolower($user->browser), 'msie 6.0') !== false)) -			{ -				header('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT'); -			} -		} -		else +		header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename']))); +		if (phpbb_is_greater_ie_version($user->browser, 7) && (strpos($attachment['mimetype'], 'image') !== 0))  		{ -			header('Content-Disposition: ' . ((strpos($attachment['mimetype'], 'image') === 0) ? 'inline' : 'attachment') . '; ' . header_filename(htmlspecialchars_decode($attachment['real_filename']))); -			if (phpbb_is_greater_ie_version($user->browser, 7) && (strpos($attachment['mimetype'], 'image') !== 0)) -			{ -				header('X-Download-Options: noopen'); -			} +			header('X-Download-Options: noopen');  		}  	} diff --git a/phpBB/includes/functions_module.php b/phpBB/includes/functions_module.php index 88dafc4300..510d98ec11 100644 --- a/phpBB/includes/functions_module.php +++ b/phpBB/includes/functions_module.php @@ -123,7 +123,7 @@ class p_master  		// We "could" build a true tree with this function - maybe mod authors want to use this...  		// Functions for traversing and manipulating the tree are not available though -		// We might re-structure the module system to use true trees in 3.2.x... +		// We might re-structure the module system to use true trees in 4.0  		// $tree = $this->build_tree($this->module_cache['modules'], $this->module_cache['parents']);  		// Clean up module cache array to only let survive modules the user can access @@ -933,6 +933,14 @@ class p_master  					'U_TITLE'		=> $u_title  				); +				if (isset($this->module_cache['parents'][$item_ary['id']]) || $item_ary['id'] == $this->p_id) +				{ +					$template->assign_block_vars('navlinks', array( +						'BREADCRUMB_NAME'	=> $item_ary['lang'], +						'U_BREADCRUMB'		=> $u_title, +					)); +				} +  				$template->assign_block_vars($use_tabular_offset, array_merge($tpl_ary, array_change_key_case($item_ary, CASE_UPPER)));  			} diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index 2cce77e092..d150845952 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -397,34 +397,6 @@ function posting_gen_topic_types($forum_id, $cur_topic_type = POST_NORMAL)  //  // Attachment related functions  // - -/** -* Upload Attachment - filedata is generated here -* Uses upload class -* -* @deprecated 3.2.0-a1 (To be removed: 3.4.0) -* -* @param string			$form_name		The form name of the file upload input -* @param int			$forum_id		The id of the forum -* @param bool			$local			Whether the file is local or not -* @param string			$local_storage	The path to the local file -* @param bool			$is_message		Whether it is a PM or not -* @param array			$local_filedata	A filespec object created for the local file -* -* @return array File data array -*/ -function upload_attachment($form_name, $forum_id, $local = false, $local_storage = '', $is_message = false, $local_filedata = false) -{ -	global $phpbb_container; - -	/** @var \phpbb\attachment\manager $attachment_manager */ -	$attachment_manager = $phpbb_container->get('attachment.manager'); -	$file = $attachment_manager->upload($form_name, $forum_id, $local, $local_storage, $is_message, $local_filedata); -	unset($attachment_manager); - -	return $file; -} -  /**  * Calculate the needed size for Thumbnail  */ @@ -641,12 +613,6 @@ function create_thumbnail($source, $destination, $mimetype)  				imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);  			} -			// If we are in safe mode create the destination file prior to using the gd functions to circumvent a PHP bug -			if (@ini_get('safe_mode') || @strtolower(ini_get('safe_mode')) == 'on') -			{ -				@touch($destination); -			} -  			switch ($type['format'])  			{  				case IMG_GIF: diff --git a/phpBB/includes/questionnaire/questionnaire.php b/phpBB/includes/questionnaire/questionnaire.php index 2f80582918..f5a56fda82 100644 --- a/phpBB/includes/questionnaire/questionnaire.php +++ b/phpBB/includes/questionnaire/questionnaire.php @@ -110,7 +110,6 @@ class phpbb_questionnaire_php_data_provider  			'version'						=> PHP_VERSION,  			'sapi'							=> PHP_SAPI,  			'int_size'						=> defined('PHP_INT_SIZE') ? PHP_INT_SIZE : '', -			'safe_mode'						=> (int) @ini_get('safe_mode'),  			'open_basedir'					=> (int) @ini_get('open_basedir'),  			'memory_limit'					=> @ini_get('memory_limit'),  			'allow_url_fopen'				=> (int) @ini_get('allow_url_fopen'), @@ -121,8 +120,6 @@ class phpbb_questionnaire_php_data_provider  			'disable_functions'				=> @ini_get('disable_functions'),  			'disable_classes'				=> @ini_get('disable_classes'),  			'enable_dl'						=> (int) @ini_get('enable_dl'), -			'magic_quotes_gpc'				=> (int) @ini_get('magic_quotes_gpc'), -			'register_globals'				=> (int) @ini_get('register_globals'),  			'filter.default'				=> @ini_get('filter.default'),  			'zend.ze1_compatibility_mode'	=> (int) @ini_get('zend.ze1_compatibility_mode'),  			'unicode.semantics'				=> (int) @ini_get('unicode.semantics'), diff --git a/phpBB/includes/startup.php b/phpBB/includes/startup.php index 66f85657a5..d42ae58c42 100644 --- a/phpBB/includes/startup.php +++ b/phpBB/includes/startup.php @@ -23,11 +23,11 @@ $level = E_ALL & ~E_NOTICE & ~E_DEPRECATED;  error_reporting($level);  /** -* Minimum Requirement: PHP 5.4.0 +* Minimum Requirement: PHP 7.1.0  */ -if (version_compare(PHP_VERSION, '5.4') < 0) +if (version_compare(PHP_VERSION, '7.1') < 0)  { -	die('You are running an unsupported PHP version. Please upgrade to PHP 5.4.0 or higher before trying to install or update to phpBB 3.2'); +	die('You are running an unsupported PHP version. Please upgrade to PHP 7.1.0 or higher before trying to install or update to phpBB 3.3');  }  // Register globals and magic quotes have been dropped in PHP 5.4 so no need for extra checks diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index 0e673cb692..0e3ff50268 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -451,6 +451,9 @@ class ucp_register  				{  					$message = $user->lang['ACCOUNT_ADDED'];  					$email_template = 'user_welcome'; + +					// Autologin after registration +					$user->session_create($user_id, 0, false, 1);  				}  				if ($config['email_enable']) @@ -599,6 +602,31 @@ class ucp_register  			break;  		} +		/* @var $provider_collection \phpbb\auth\provider_collection */ +		$provider_collection = $phpbb_container->get('auth.provider_collection'); +		$auth_provider = $provider_collection->get_provider(); + +		$auth_provider_data = $auth_provider->get_login_data(); +		if ($auth_provider_data) +		{ +			if (isset($auth_provider_data['VARS'])) +			{ +				$template->assign_vars($auth_provider_data['VARS']); +			} + +			if (isset($auth_provider_data['BLOCK_VAR_NAME'])) +			{ +				foreach ($auth_provider_data['BLOCK_VARS'] as $block_vars) +				{ +					$template->assign_block_vars($auth_provider_data['BLOCK_VAR_NAME'], $block_vars); +				} +			} + +			$template->assign_vars(array( +				'PROVIDER_TEMPLATE_FILE' => $auth_provider_data['TEMPLATE_FILE'], +			)); +		} +  		// Assign template vars for timezone select  		phpbb_timezone_select($template, $user, $data['tz'], true);  | 
