array('type' => BBCODE_TYPE_ROOT),
'code' => array(
'type' => BBCODE_TYPE_OPTARG,
'open_tag' => '
',
'close_tag' => '
',
'default_arg' => '{CONTENT}'
),
'ul' => array(
'type' => BBCODE_TYPE_NOARG,
'open_tag' => '',
'childs' => 'li'
),
'li' => array(
'type' => BBCODE_TYPE_NOARG,
'open_tag' => '',
'close_tag' => '',
'parent' => 'ul',
'childs' => 'url'
),
'url' => array(
'type' => BBCODE_TYPE_OPTARG,
'open_tag' => '',
'close_tag' => '',
'default_arg' => '{CONTENT}',
'parent' => 'p,li'
)
)
);
$text = nl2br(bbcode_parse($ctx, htmlspecialchars($text)));
if (preg_match_all('#\]*\>(.*?)\
#s', $text, $matches) && !empty($matches[1])) {
foreach($matches[1] as $string) {
$text = str_replace($string, str_replace('
', '', $string), $text);
}
}
if (preg_match_all('#\#s', $text, $matches) && !empty($matches[1])) {
foreach($matches[1] as $string) {
$text = str_replace($string, str_replace('
', '', $string), $text);
}
}
$text = preg_replace(
array('#(
(\r?\n?))*(
(\r?\n?))*#', '#(
(\r?\n?))*
(
(\r?\n?))*#', '#(
(\r?\n?)){2,}#'),
array('\2
\2', '
\2
\2', '
\2'),
$text
);
return $text;
},
array('is_safe' => array('html'))
)
);
}
}