Zeile 368 | Zeile 368 |
---|
if($mybb->settings['allowfontmycode'] == 1) {
|
if($mybb->settings['allowfontmycode'] == 1) {
|
$nestable_mycode['font']['regex'] = "#\[font=([a-z0-9 ,\-_'\"]+)\](.*?)\[/font\]#si"; $nestable_mycode['font']['replacement'] = "<span style=\"font-family: $1;\" class=\"mycode_font\">$2</span>";
| $nestable_mycode['font']['regex'] = "#\[font=(\"?)([a-z0-9 ,\-_']+)\\1\](.*?)\[/font\]#si"; $nestable_mycode['font']['replacement'] = "<span style=\"font-family: $2;\" class=\"mycode_font\">$3</span>";
|
++$nestable_count; }
| ++$nestable_count; }
|
Zeile 679 | Zeile 679 |
---|
return; }
|
return; }
|
// Neutralize multiple adjacent wildcards and generate pattern $ptrn = array('/\*\++/', '/\++\*/', '/\*+/'); $rplc = array('*', '*', '[^\s\n]*');
| // Neutralize escape character, regex operators, multiple adjacent wildcards and generate pattern $ptrn = array('/\\\\/', '/([\[\^\$\.\|\?\(\)\{\}]{1})/', '/\*\++/', '/\++\*/', '/\*+/'); $rplc = array('\\\\\\\\','\\\\${1}', '*', '*', '[^\s\n]*');
|
$bad_word = preg_replace($ptrn, $rplc, $bad_word); // Count + and generate pattern
| $bad_word = preg_replace($ptrn, $rplc, $bad_word); // Count + and generate pattern
|
Zeile 1133 | Zeile 1133 |
---|
// Fix some entities in URLs $url = $this->encode_url($url);
|
// Fix some entities in URLs $url = $this->encode_url($url);
|
$name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode
| $name = $this->parse_badwords(preg_replace("#&\#([0-9]+);#si", "&#$1;", $name)); // Fix & but allow unicode, filter bad words
|
eval("\$mycode_url = \"".$templates->get("mycode_url", 1, 0)."\";"); return $mycode_url;
|
eval("\$mycode_url = \"".$templates->get("mycode_url", 1, 0)."\";"); return $mycode_url;
|
}
/** * Parses URL MyCode. * * @param array $matches Matches.
| }
/** * Parses URL MyCode. * * @param array $matches Matches.
|
* @return string The built-up link. */ function mycode_parse_url_callback1($matches)
| * @return string The built-up link. */ function mycode_parse_url_callback1($matches)
|
Zeile 1152 | Zeile 1150 |
---|
if(!isset($matches[3])) { $matches[3] = '';
|
if(!isset($matches[3])) { $matches[3] = '';
|
}
| }
|
return $this->mycode_parse_url($matches[1].$matches[2], $matches[3]); }
| return $this->mycode_parse_url($matches[1].$matches[2], $matches[3]); }
|
Zeile 1167 | Zeile 1165 |
---|
if(!isset($matches[2])) { $matches[2] = '';
|
if(!isset($matches[2])) { $matches[2] = '';
|
}
| }
|
return $this->mycode_parse_url($matches[1], $matches[2]); }
| return $this->mycode_parse_url($matches[1], $matches[2]); }
|
Zeile 1197 | Zeile 1195 |
---|
$css_align = ' style="float: right;"'; } else if($align == "left")
|
$css_align = ' style="float: right;"'; } else if($align == "left")
|
{
| {
|
$css_align = ' style="float: left;"'; }
| $css_align = ' style="float: left;"'; }
|
Zeile 1319 | Zeile 1317 |
---|
* @return string Image code. */ function mycode_parse_img_disabled_callback3($matches)
|
* @return string Image code. */ function mycode_parse_img_disabled_callback3($matches)
|
{
| {
|
return $this->mycode_parse_img_disabled($matches[3]); }
| return $this->mycode_parse_img_disabled($matches[3]); }
|
Zeile 1332 | Zeile 1330 |
---|
function mycode_parse_img_disabled_callback4($matches) { return $this->mycode_parse_img_disabled($matches[5]);
|
function mycode_parse_img_disabled_callback4($matches) { return $this->mycode_parse_img_disabled($matches[5]);
|
}
/** * Parses email MyCode.
| }
/** * Parses email MyCode.
|
* * @param string $email The email address to link to. * @param string $name The name for the link. * @return string The built-up email link. */ function mycode_parse_email($email, $name="")
|
* * @param string $email The email address to link to. * @param string $name The name for the link. * @return string The built-up email link. */ function mycode_parse_email($email, $name="")
|
{
| {
|
global $templates;
|
global $templates;
|
|
|
if(!$name) { $name = $email;
|
if(!$name) { $name = $email;
|
} if(preg_match("/^([a-zA-Z0-9-_\+\.]+?)@[a-zA-Z0-9-]+\.[a-zA-Z0-9\.-]+$/si", $email)) { $email = $email; } elseif(preg_match("/^([a-zA-Z0-9-_\+\.]+?)@[a-zA-Z0-9-]+\.[a-zA-Z0-9\.-]+\?(.*?)$/si", $email)) { $email = htmlspecialchars_uni($email); }
| }
$email = $this->encode_url($email);
|
eval("\$mycode_email = \"".$templates->get("mycode_email", 1, 0)."\";"); return $mycode_email; }
| eval("\$mycode_email = \"".$templates->get("mycode_email", 1, 0)."\";"); return $mycode_email; }
|
Zeile 1387 | Zeile 1379 |
---|
function mycode_parse_video($video, $url) { global $templates;
|
function mycode_parse_video($video, $url) { global $templates;
|
|
|
if(empty($video) || empty($url)) { return "[video={$video}]{$url}[/video]";
| if(empty($video) || empty($url)) { return "[video={$video}]{$url}[/video]";
|
Zeile 1538 | Zeile 1530 |
---|
return "[video={$video}]{$url}[/video]"; }
|
return "[video={$video}]{$url}[/video]"; }
|
$id = htmlspecialchars_uni($id);
| $id = $this->encode_url($id);
|
eval("\$video_code = \"".$templates->get("video_{$video}_embed", 1, 0)."\";"); return $video_code;
| eval("\$video_code = \"".$templates->get("video_{$video}_embed", 1, 0)."\";"); return $video_code;
|
Zeile 1571 | Zeile 1563 |
---|
$video = $lang->sprintf($lang->posted_video, $this->mycode_parse_url($url)); return $video;
|
$video = $lang->sprintf($lang->posted_video, $this->mycode_parse_url($url)); return $video;
|
}
| }
|
/** * Parses video MyCode disabled.
| /** * Parses video MyCode disabled.
|
Zeile 1582 | Zeile 1574 |
---|
function mycode_parse_video_disabled_callback($matches) { return $this->mycode_parse_video_disabled($matches[2]);
|
function mycode_parse_video_disabled_callback($matches) { return $this->mycode_parse_video_disabled($matches[2]);
|
}
/** * Parses URLs automatically. *
| }
/** * Parses URLs automatically. *
|
* @param string $message The message to be parsed * @return string The parsed message. */
| * @param string $message The message to be parsed * @return string The parsed message. */
|
Zeile 1596 | Zeile 1588 |
---|
// Links should end with slashes, numbers, characters and braces but not with dots, commas or question marks // Don't create links within existing links (handled up-front in the callback function).
|
// Links should end with slashes, numbers, characters and braces but not with dots, commas or question marks // Don't create links within existing links (handled up-front in the callback function).
|
$message = preg_replace_callback("#<a\\s[^>]*>.*?</a>|([\s\(\)\[\>])(http|https|ftp|news|irc|ircs|irc6){1}://([^\/\"\s\<\[\.]+\.([^\/\"\s\<\[\.]+\.)*[\w]+(:[0-9]+)?(/([^\"\s<\[]|\[\])*)?([\w\/\)]))#ius", array($this, 'mycode_auto_url_callback'), $message); $message = preg_replace_callback("#<a\\s[^>]*>.*?</a>|([\s\(\)\[\>])(www|ftp)\.(([^\/\"\s\<\[\.]+\.)*[\w]+(:[0-9]+)?(/([^\"\s<\[]|\[\])*)?([\w\/\)]))#ius", array($this, 'mycode_auto_url_callback'), $message);
| $message = preg_replace_callback("#<a\\s[^>]*>.*?</a>|([\s\(\)\[\>])(http|https|ftp|news|irc|ircs|irc6){1}(://)([^\/\"\s\<\[\.]+\.([^\/\"\s\<\[\.]+\.)*[\w]+(:[0-9]+)?(/([^\"\s<\[]|\[\])*)?([\w\/\)]))#ius", array($this, 'mycode_auto_url_callback'), $message); $message = preg_replace_callback("#<a\\s[^>]*>.*?</a>|([\s\(\)\[\>])(www|ftp)(\.)(([^\/\"\s\<\[\.]+\.)*[\w]+(:[0-9]+)?(/([^\"\s<\[]|\[\])*)?([\w\/\)]))#ius", array($this, 'mycode_auto_url_callback'), $message);
|
$message = my_substr($message, 1);
return $message;
| $message = my_substr($message, 1);
return $message;
|
Zeile 1620 | Zeile 1612 |
---|
$external = ''; // Allow links like http://en.wikipedia.org/wiki/PHP_(disambiguation) but detect mismatching braces
|
$external = ''; // Allow links like http://en.wikipedia.org/wiki/PHP_(disambiguation) but detect mismatching braces
|
while(my_substr($matches[3], -1) == ')')
| while(my_substr($matches[4], -1) == ')')
|
{
|
{
|
if(substr_count($matches[3], ')') > substr_count($matches[3], '('))
| if(substr_count($matches[4], ')') > substr_count($matches[4], '('))
|
{
|
{
|
$matches[3] = my_substr($matches[3], 0, -1);
| $matches[4] = my_substr($matches[4], 0, -1);
|
$external = ')'.$external; } else
| $external = ')'.$external; } else
|
Zeile 1633 | Zeile 1625 |
---|
}
// Example: ([...] http://en.wikipedia.org/Example_(disambiguation).)
|
}
// Example: ([...] http://en.wikipedia.org/Example_(disambiguation).)
|
$last_char = my_substr($matches[3], -1);
| $last_char = my_substr($matches[4], -1);
|
while($last_char == '.' || $last_char == ',' || $last_char == '?' || $last_char == '!') {
|
while($last_char == '.' || $last_char == ',' || $last_char == '?' || $last_char == '!') {
|
$matches[3] = my_substr($matches[3], 0, -1);
| $matches[4] = my_substr($matches[4], 0, -1);
|
$external = $last_char.$external;
|
$external = $last_char.$external;
|
$last_char = my_substr($matches[3], -1);
| $last_char = my_substr($matches[4], -1);
|
} }
|
} }
|
if(in_array(strtolower($matches[2]), array('www', 'ftp'))) { $url = "{$matches[2]}.{$matches[3]}"; } else { $url = "{$matches[2]}://{$matches[3]}"; }
| $url = "{$matches[2]}{$matches[3]}{$matches[4]}";
|
return $matches[1].$this->mycode_parse_url($url, $url).$external; }
| return $matches[1].$this->mycode_parse_url($url, $url).$external; }
|
Zeile 1817 | Zeile 1802 |
---|
"#\[img=([1-9][0-9]*)x([1-9][0-9]*)\](\r\n?|\n?)(https?://([^<>\"']+?))\[/img\]#is", "#\[url=((?!javascript)[a-z]+?://)([^\r\n\"<]+?)\](.+?)\[/url\]#si", "#\[url=((?!javascript:)[^\r\n\"<&\(\)]+?)\](.+?)\[/url\]#si",
|
"#\[img=([1-9][0-9]*)x([1-9][0-9]*)\](\r\n?|\n?)(https?://([^<>\"']+?))\[/img\]#is", "#\[url=((?!javascript)[a-z]+?://)([^\r\n\"<]+?)\](.+?)\[/url\]#si", "#\[url=((?!javascript:)[^\r\n\"<&\(\)]+?)\](.+?)\[/url\]#si",
|
| "#\[attachment=([0-9]+?)\]#i",
|
);
$replace = array(
| );
$replace = array(
|
Zeile 1825 | Zeile 1811 |
---|
"$4", "$3 ($1$2)", "$2 ($1)",
|
"$4", "$3 ($1$2)", "$2 ($1)",
|
| "",
|
); $messageBefore = "";
| ); $messageBefore = "";
|