В файле functions.php
sed_parse()
/* ------------------ */
function sed_parse($text, $parse_bbcodes=TRUE, $parse_smilies=TRUE, $parse_newlines=TRUE)
{
global $cfg, $sys, $sed_smilies, $L;
$text = sed_cc($text, null, TRUE); // New Sed 172 (for BBCode Mode & Update Mode)
$text = ' '.$text;
$code = array();
$unique_seed = $sys['unique'];
$ii = 5000;
if ($parse_bbcodes)
{
$p1 = 1;
$p2 = 1;
while ($p1>0 && $p2>0 && $ii<5031)
{
$ii++;
$p1 = mb_strpos($text, '[code]');
$p2 = mb_strpos($text, '[/code]');
if ($p2>$p1 && $p1>0)
{
$key = '**'.$ii.$unique_seed.'**';
$code[$key]= mb_substr ($text, $p1+6, ($p2-$p1)-6);
$code_len = mb_strlen($code[$key])+13;
$code[$key] = str_replace('\t',' ', $code[$key]);
$code[$key] = str_replace(' ', ' ', $code[$key]);
$code[$key] = str_replace(' ', ' ', $code[$key]);
$code[$key] = str_replace(
array('{', '<', '>' , '\'', '"', "<!--", '$' ),
array('{', '<', '>', ''', '"', '"<!--"', '$' ),$code[$key]);
$code[$key] = "<pre>".trim($code[$key])."</pre>";
$text = substr_replace($text, $key, $p1, $code_len);
}
}
}
if ($parse_smilies && is_array($sed_smilies))
{
reset($sed_smilies);
while ((list($j,$dat) = each($sed_smilies)))
{
$ii++;
$key = '**'.$ii.$unique_seed.'**';
$code[$key]= "<img src=\"".$dat['smilie_image']."\" alt=\"\" />";
$text = str_replace($dat['smilie_code'], $key, $text);
}
}
if ($parse_bbcodes)
{ $text = sed_bbcode($text); }
if ($parse_bbcodes || $parse_smilies)
{
foreach($code as $x => $y)
{ $text = str_replace($x, $y, $text); }
}
if ($parse_newlines)
{ $text = nl2br($text); }
return(mb_substr($text, 1));
}
В функцию парсинга sed_parse() нарямую внедрен фильтр sed_cc()
sed_cc()
/* ------------------ */
function sed_cc($text, $ent_quotes = null, $bbmode = FALSE)
{
global $cfg;
if (($cfg['textmode']=='html') && !$bbmode)
{
return is_null($ent_quotes) ? htmlspecialchars($text) : htmlspecialchars($text, ENT_QUOTES);
} else
{
$text = preg_replace('/&#([0-9]{2,4});/is','&#$1;',$text);
$text = str_replace(
array('{', '<', '>' , '$', '\'', '"', '\\', '&', ' '),
array('{', '<', '>', '$', ''', '"', '\', '&amp;', '&nbsp;'), $text);
return($text);
}
}
/* ------------------ */
При $bbmode = True функция sed_cc срабатывает для bbcode режима, даже если основной режим сайта установлен как html