1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 20:00:37 +02:00

Bugtracker #4168 - stray [br] display in places

This commit is contained in:
e107steved
2007-10-28 20:45:22 +00:00
parent b57d3bce41
commit 95004ff440

View File

@@ -1,5 +1,4 @@
<?php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
@@ -12,8 +11,8 @@
| GNU General Public License (http://gnu.org).
|
| $Source: /cvs_backup/e107_0.8/e107_handlers/bbcode_handler.php,v $
| $Revision: 1.10 $
| $Date: 2007-07-31 20:10:44 $
| $Revision: 1.11 $
| $Date: 2007-10-28 20:45:22 $
| $Author: e107steved $
+----------------------------------------------------------------------------+
*/
@@ -60,10 +59,8 @@ class e_bbcode
krsort($this->bbLocation);
}
// If $bb_strip is TRUE, all bbcodes are stripped. If FALSE, none are stripped.
// If a comma separated (lower case) list is passed, only the listed codes are stripped (and the rest are processed)
// If $bb_strip is TRUE, all bbcodes are stripped. If FALSE, none are stripped.
// If a comma separated (lower case) list is passed, only the listed codes are stripped (and the rest are processed)
function parseBBCodes($value, $p_ID, $force_lower = 'default', $bb_strip = FALSE)
{
global $postID;
@@ -103,6 +100,11 @@ class e_bbcode
$match_count = preg_match($pattern,$cont,$matches);
$bbparam = (isset($matches[5])) ? $matches[5] : '';
$bbword = (isset($matches[2])) ? $matches[2] : '';
if($cont[1] != '/')
{
$bbstart = $cont;
$bbsep = varset($matches[4]);
}
if ($force_lower) $bbword = strtolower($bbword);
if ($nopro && ($bbword == 'code') && ($matches[1] == '/')) $nopro = FALSE; // End of code block
if (($bbword) && ($bbword == trim($bbword)) && !$nopro)
@@ -146,18 +148,16 @@ class e_bbcode
case 'bbcode' :
if (($code_stack[0]['code'] == $bbword) && ($code_stack[0]['numbers'] == $matches[3]))
{
$stacktext = $this->proc_bbcode($bbword,$code_stack[0]['param'],$stacktext,$bbparam);
$stacktext = $this->proc_bbcode($bbword,$code_stack[0]['param'],$stacktext,$bbparam, $bbsep, $bbstart.$stacktext.$cont);
array_shift($code_stack);
// Intentionally don't terminate here - may be some text we can clean up
$bbword=''; // Necessary to make sure we don't double process if several instances on stack
while (count($unmatch_stack) != 0) { array_unshift($code_stack,array_pop($unmatch_stack)); }
}
else
{
{
$found = TRUE; // Terminate on unmatched bbcode
}
}
break;
}
if (count($code_stack) == 0)
@@ -176,9 +176,13 @@ class e_bbcode
if (array_key_exists('_'.$bbword,$this->bbLocation))
{ // Single code to process
if (count($code_stack) == 0)
{
$result .= $this->proc_bbcode('_'.$bbword,$bbparam);
}
else
{
$stacktext .= $this->proc_bbcode('_'.$bbword,$bbparam);
}
$is_proc = TRUE;
}
elseif (array_key_exists($bbword,$this->bbLocation))
@@ -219,7 +223,7 @@ class e_bbcode
}
}
// Basically done - just tidy up now
// Basically done - just tidy up now
// If there's still anything on the stack, we need to process it
while (count($code_stack) != 0)
{
@@ -241,12 +245,12 @@ class e_bbcode
function proc_bbcode($code, $param1='',$code_text_par='', $param2='')
// Invoke an actual bbcode handler
// $code - textual value of the bbcode (already begins with '_' if a single code)
// $param1 - any text after '=' in the opening code
// $code_text_par - text between the opening and closing codes
// $param2 - any text after '=' for the closing code
function proc_bbcode($code, $param1='',$code_text_par='', $param2='', $sep='', $full_text='')
// Invoke an actual bbcode handler
// $code - textual value of the bbcode (already begins with '_' if a single code)
// $param1 - any text after '=' in the opening code
// $code_text_par - text between the opening and closing codes
// $param2 - any text after '=' for the closing code
{
global $tp, $postID, $code_text, $parm;
$parm = $param1;
@@ -303,4 +307,3 @@ function proc_bbcode($code, $param1='',$code_text_par='', $param2='')
return $bbcode_output.$bbcode_return;
}
}
?>