diff options
Diffstat (limited to 'phpBB/includes/acp/acp_bbcodes.php')
| -rw-r--r-- | phpBB/includes/acp/acp_bbcodes.php | 14 | 
1 files changed, 11 insertions, 3 deletions
| diff --git a/phpBB/includes/acp/acp_bbcodes.php b/phpBB/includes/acp/acp_bbcodes.php index 0644b38eb1..31166a56dc 100644 --- a/phpBB/includes/acp/acp_bbcodes.php +++ b/phpBB/includes/acp/acp_bbcodes.php @@ -113,8 +113,8 @@ class acp_bbcodes  				{  					$template->assign_block_vars('token', array(  						'TOKEN'		=> '{' . $token . '}', -						'EXPLAIN'	=> $token_explain) -					); +						'EXPLAIN'	=> ($token === 'LOCAL_URL') ? sprintf($token_explain, generate_board_url() . '/') : $token_explain, +					));  				}  				return; @@ -345,6 +345,9 @@ class acp_bbcodes  			'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')"  			), @@ -371,6 +374,7 @@ class acp_bbcodes  		$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-+.,_ ]+)', @@ -427,7 +431,11 @@ class acp_bbcodes  				$fp_replace = str_replace($token, $replace, $fp_replace);  				$sp_match = str_replace(preg_quote($token, '!'), $sp_tokens[$token_type], $sp_match); -				$sp_replace = str_replace($token, '${' . ($n + 1) . '}', $sp_replace); + +				// 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; | 
