move spoiler= and quote= bbcode handling from prepare_body() to bbcode() and add open tag to bbco_autocomplete
This commit is contained in:
@@ -330,8 +330,19 @@ function bb_map_location($match) {
|
||||
}
|
||||
|
||||
function bb_opentag($match) {
|
||||
$openclose = (($match[2]) ? '<span class="bb-open" title="' . t('Click to open/close') . '">' . $match[1] . '</span>' : t('Click to open/close'));
|
||||
$text = (($match[2]) ? $match[2] : $match[1]);
|
||||
$rnd = mt_rand();
|
||||
return "<br /><div onclick=\"openClose('opendiv-" . $rnd . "');return false;\" class=\"fakelink\">" . $match[1] . "</div><div id=\"opendiv-" . $rnd . "\" style=\"display: none;\">" . $match[2] . "</div>";
|
||||
|
||||
return '<div onclick="openClose(\'opendiv-' . $rnd . '\'); return false;" class="fakelink">' . $openclose . '</div><div id="opendiv-' . $rnd . '" style="display: none;">' . $text . '</div>';
|
||||
}
|
||||
|
||||
function bb_spoilertag($match) {
|
||||
$openclose = (($match[2]) ? '<span class="bb-spoiler" title="' . t('Click to open/close') . '">' . $match[1] . ' ' . t('spoiler') . '</span>' : t('Click to open/close'));
|
||||
$text = (($match[2]) ? $match[2] : $match[1]);
|
||||
$rnd = mt_rand();
|
||||
|
||||
return '<div onclick="openClose(\'opendiv-' . $rnd . '\'); return false;" class="fakelink">' . $openclose . '</div><blockquote id="opendiv-' . $rnd . '" style="display: none;">' . $text . '</blockquote>';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -748,33 +759,34 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
|
||||
$Text = preg_replace("/\[code\](.*?)\[\/code\]/ism", "$CodeLayout", $Text);
|
||||
}
|
||||
|
||||
// Declare the format for [spoiler] layout
|
||||
$SpoilerLayout = '<blockquote class="spoiler">$1</blockquote>';
|
||||
|
||||
// Check for [spoiler] text
|
||||
// handle nested quotes
|
||||
$endlessloop = 0;
|
||||
while ((strpos($Text, "[/spoiler]") !== false) and (strpos($Text, "[spoiler]") !== false) and (++$endlessloop < 20))
|
||||
$Text = preg_replace("/\[spoiler\](.*?)\[\/spoiler\]/ism", "$SpoilerLayout", $Text);
|
||||
while ((strpos($Text, "[/spoiler]")!== false) and (strpos($Text, "[spoiler]") !== false) and (++$endlessloop < 20)) {
|
||||
$Text = preg_replace_callback("/\[spoiler\](.*?)\[\/spoiler\]/ism", 'bb_spoilertag', $Text);
|
||||
}
|
||||
|
||||
// Check for [spoiler=Author] text
|
||||
|
||||
$t_wrote = t('$1 spoiler');
|
||||
|
||||
// handle nested quotes
|
||||
$endlessloop = 0;
|
||||
while ((strpos($Text, "[/spoiler]")!== false) and (strpos($Text, "[spoiler=") !== false) and (++$endlessloop < 20))
|
||||
$Text = preg_replace("/\[spoiler=[\"\']*(.*?)[\"\']*\](.*?)\[\/spoiler\]/ism",
|
||||
"<br /><strong class=".'"spoiler"'.">" . $t_wrote . "</strong><blockquote class=".'"spoiler"'.">$2</blockquote>",
|
||||
$Text);
|
||||
while ((strpos($Text, "[/spoiler]")!== false) and (strpos($Text, "[spoiler=") !== false) and (++$endlessloop < 20)) {
|
||||
$Text = preg_replace_callback("/\[spoiler=(.*?)\](.*?)\[\/spoiler\]/ism", 'bb_spoilertag', $Text);
|
||||
}
|
||||
|
||||
// Check for [open] text
|
||||
$endlessloop = 0;
|
||||
while ((strpos($Text, "[/open]")!== false) and (strpos($Text, "[open]") !== false) and (++$endlessloop < 20)) {
|
||||
$Text = preg_replace_callback("/\[open\](.*?)\[\/open\]/ism", 'bb_opentag', $Text);
|
||||
}
|
||||
|
||||
// Check for [open=Title] text
|
||||
$endlessloop = 0;
|
||||
while ((strpos($Text, "[/open]")!== false) and (strpos($Text, "[open=") !== false) and (++$endlessloop < 20)) {
|
||||
$Text = preg_replace_callback("/\[open=(.*?)\](.*?)\[\/open\]/ism", 'bb_opentag', $Text);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Declare the format for [quote] layout
|
||||
$QuoteLayout = '<blockquote>$1</blockquote>';
|
||||
|
||||
@@ -792,7 +804,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
|
||||
$endlessloop = 0;
|
||||
while ((strpos($Text, "[/quote]")!== false) and (strpos($Text, "[quote=") !== false) and (++$endlessloop < 20))
|
||||
$Text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism",
|
||||
"<br /><strong class=".'"author"'.">" . $t_wrote . "</strong><blockquote>$2</blockquote>",
|
||||
"<span class=".'"bb-quote"'.">" . $t_wrote . "</span><blockquote>$2</blockquote>",
|
||||
$Text);
|
||||
|
||||
// Images
|
||||
|
||||
@@ -1532,35 +1532,6 @@ function prepare_body(&$item,$attach = false) {
|
||||
|
||||
$s = sslify($s);
|
||||
|
||||
// Look for spoiler
|
||||
$spoilersearch = '<blockquote class="spoiler">';
|
||||
|
||||
// Remove line breaks before the spoiler
|
||||
while ((strpos($s, "\n".$spoilersearch) !== false))
|
||||
$s = str_replace("\n".$spoilersearch, $spoilersearch, $s);
|
||||
while ((strpos($s, "<br />".$spoilersearch) !== false))
|
||||
$s = str_replace("<br />".$spoilersearch, $spoilersearch, $s);
|
||||
|
||||
while ((strpos($s, $spoilersearch) !== false)) {
|
||||
|
||||
$pos = strpos($s, $spoilersearch);
|
||||
$rnd = random_string(8);
|
||||
$spoilerreplace = '<br /> <span id="spoiler-wrap-'.$rnd.'" style="white-space:nowrap;" class="fakelink" onclick="openClose(\'spoiler-'.$rnd.'\');">'.sprintf(t('Click to open/close')).'</span>'.
|
||||
'<blockquote class="spoiler" id="spoiler-'.$rnd.'" style="display: none;">';
|
||||
$s = substr($s, 0, $pos).$spoilerreplace.substr($s, $pos+strlen($spoilersearch));
|
||||
}
|
||||
|
||||
// Look for quote with author
|
||||
$authorsearch = '<blockquote class="author">';
|
||||
|
||||
while ((strpos($s, $authorsearch) !== false)) {
|
||||
$pos = strpos($s, $authorsearch);
|
||||
$rnd = random_string(8);
|
||||
$authorreplace = '<br /> <span id="author-wrap-'.$rnd.'" style="white-space:nowrap;" class="fakelink" onclick="openClose(\'author-'.$rnd.'\');">'.sprintf(t('Click to open/close')).'</span>'.
|
||||
'<blockquote class="author" id="author-'.$rnd.'" style="display: block;">';
|
||||
$s = substr($s, 0, $pos).$authorreplace.substr($s, $pos+strlen($authorsearch));
|
||||
}
|
||||
|
||||
$prep_arr = array(
|
||||
'item' => $item,
|
||||
'photo' => $photo,
|
||||
|
||||
Reference in New Issue
Block a user