-1, 'codecount' => 0, 'codehtml' => array(), 'passwordlock' => array(), 'smiliesreplaced' => 0, 'seoarray' => array( 0 => '', 1 => $_SERVER['HTTP_HOST'], 2 => $_G['setting']['bbname'], 3 => str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']), 4 => $_G['setting']['seokeywords'], 5 => $_G['setting']['seodescription'] ) ); if(!isset($_G['cache']['bbcodes']) || !is_array($_G['cache']['bbcodes']) || !is_array($_G['cache']['smilies'])) { loadcache(array('bbcodes', 'smilies', 'smileytypes')); } function creditshide($creditsrequire, $message, $pid, $authorid) { global $_G; if($_G['member']['credits'] >= $creditsrequire || $_G['forum']['ismoderator'] || $_G['uid'] && $authorid == $_G['uid']) { return tpl_hide_credits($creditsrequire, str_replace('\\"', '"', $message)); } else { return tpl_hide_credits_hidden($creditsrequire); } } function expirehide($expiration, $creditsrequire, $message, $dateline) { $expiration = $expiration ? substr($expiration, 1) : 0; if($expiration && $dateline && (TIMESTAMP - $dateline) / 86400 > $expiration) { return str_replace('\\"', '"', $message); } return '[hide'.($creditsrequire ? "=$creditsrequire" : '').']'.str_replace('\\"', '"', $message).'[/hide]'; } function codedisp($code) { global $_G; $_G['forum_discuzcode']['pcodecount']++; $code = dhtmlspecialchars(str_replace('\\"', '"', $code)); $code = str_replace("\n", "
  • ", $code); $_G['forum_discuzcode']['codehtml'][$_G['forum_discuzcode']['pcodecount']] = tpl_codedisp($code); $_G['forum_discuzcode']['codecount']++; return "[\tDISCUZ_CODE_".$_G['forum_discuzcode']['pcodecount']."\t]"; } function karmaimg($rate, $ratetimes) { $karmaimg = ''; if($rate && $ratetimes) { $image = $rate > 0 ? 'agree.gif' : 'disagree.gif'; for($i = 0; $i < ceil(abs($rate) / $ratetimes); $i++) { $karmaimg .= ''; } } return $karmaimg; } function discuzcode($message, $smileyoff = false, $bbcodeoff = false, $htmlon = 0, $allowsmilies = 1, $allowbbcode = 1, $allowimgcode = 1, $allowhtml = 0, $jammer = 0, $parsetype = '0', $authorid = '0', $allowmediacode = '0', $pid = 0, $lazyload = 0, $pdateline = 0, $first = 0) { global $_G; static $authorreplyexist; if($pid && strpos($message, '[/password]') !== FALSE) { if($authorid != $_G['uid'] && !$_G['forum']['ismoderator']) { $message = preg_replace_callback( "/\s?\[password\](.+?)\[\/password\]\s?/i", function ($matches) use ($pid) { return parsepassword($matches[1], intval($pid)); }, $message ); if($_G['forum_discuzcode']['passwordlock'][$pid]) { return ''; } } else { $message = preg_replace("/\s?\[password\](.+?)\[\/password\]\s?/i", "", $message); $_G['forum_discuzcode']['passwordauthor'][$pid] = 1; } } $message = preg_replace('/\[\tDISCUZ_CODE_\d+\t\]/', '', $message); if($parsetype != 1 && !$bbcodeoff && $allowbbcode && (strpos($message, '[/code]') || strpos($message, '[/CODE]')) !== FALSE) { $message = preg_replace_callback("/\s?\[code\](.+?)\[\/code\]\s?/is", 'discuzcode_callback_codedisp_1', $message); } $msglower = strtolower($message); $htmlon = $htmlon && $allowhtml ? 1 : 0; if(!$htmlon) { $message = dhtmlspecialchars($message); } else { $message = preg_replace("/]*?>(.*?)<\/script>/i", '', $message); } if($_G['setting']['plugins']['func'][HOOKTYPE]['discuzcode']) { $_G['discuzcodemessage'] = & $message; $param = func_get_args(); hookscript('discuzcode', 'global', 'funcs', array('param' => $param, 'caller' => 'discuzcode'), 'discuzcode'); } if(!$smileyoff && $allowsmilies) { $message = parsesmiles($message); } if($_G['setting']['allowattachurl'] && strpos($msglower, 'attach://') !== FALSE) { $message = preg_replace_callback("/attach:\/\/(\d+)\.?(\w*)/i", 'discuzcode_callback_parseattachurl_12', $message); } if($allowbbcode) { if(strpos($msglower, 'ed2k://') !== FALSE) { $message = preg_replace_callback("/ed2k:\/\/([^\/\s'\"]+)\//", 'discuzcode_callback_parseed2k_1', $message); } } if(!$bbcodeoff && $allowbbcode) { if(strpos($msglower, '[/url]') !== FALSE) { $message = preg_replace_callback("/\[url(=((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.|mailto:|tel:|magnet:)?([^\r\n\[\"']+?))?\](.+?)\[\/url\]/is", 'discuzcode_callback_parseurl_152', $message); } if(strpos($msglower, '[/email]') !== FALSE) { $message = preg_replace_callback("/\[email(=([A-Za-z0-9\-_.+]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+))?\](.+?)\[\/email\]/is", 'discuzcode_callback_parseemail_14', $message); } $nest = 0; while(strpos($msglower, '[table') !== FALSE && strpos($msglower, '[/table]') !== FALSE){ $message = preg_replace_callback("/\[table(?:=(\d{1,4}%?)(?:,([\(\)%,#\w ]+))?)?\]\s*(.+?)\s*\[\/table\]/is", 'discuzcode_callback_parsetable_123', $message); if(++$nest > 4) break; } $message = str_replace(array( '[/color]', '[/backcolor]', '[/size]', '[/font]', '[/align]', '[b]', '[/b]', '[s]', '[/s]', '[hr]', '[/p]', '[i=s]', '[i]', '[/i]', '[u]', '[/u]', '[list]', '[list=1]', '[list=a]', '[list=A]', "\r\n[*]", '[*]', '[/list]', '[indent]', '[/indent]', '[/float]' ), array( '', '', '', '', '', '', '', '', '', '
    ', '

    ', '', '', '', '', '', '
      ', '
        ', '
          ', '
            ', '
          • ', '
          • ', '
          ', '
          ', '
          ', '' ), preg_replace(array( "/\[color=([#\w]+?)\]/i", "/\[color=((rgb|rgba)\([\d\s\.,]+?\))\]/i", "/\[backcolor=([#\w]+?)\]/i", "/\[backcolor=((rgb|rgba)\([\d\s\.,]+?\))\]/i", "/\[size=(\d{1,2}?)\]/i", "/\[size=(\d{1,2}(\.\d{1,5})?(px|pt)+?)\]/i", "/\[size=(\d+(\.\d+)?(px|pt)+?)\]/i", "/\[font=([^\[\<]+?)\]/i", "/\[align=(left|center|right)\]/i", "/\[p=(\d{1,2}|null), (\d{1,2}|null), (left|center|right)\]/i", "/\[float=left\]/i", "/\[float=right\]/i" ), array( "", "", "", "", "", "", "", "", "
          ", "

          ", "", "" ), $message)); if($pid && !defined('IN_MOBILE')) { $message = preg_replace_callback( "/\s?\[postbg\]\s*([^\[\<\r\n;'\"\?\(\)]+?)\s*\[\/postbg\]\s?/is", function ($matches) use ($pid) { return parsepostbg($matches[1], intval($pid)); }, $message ); } else { $message = preg_replace("/\s?\[postbg\]\s*([^\[\<\r\n;'\"\?\(\)]+?)\s*\[\/postbg\]\s?/is", "", $message); } if($parsetype != 1) { if(strpos($msglower, '[/quote]') !== FALSE) { $message = preg_replace("/\s?\[quote\][\n\r]*(.+?)[\n\r]*\[\/quote\]\s?/is", tpl_quote(), $message); } if(strpos($msglower, '[/free]') !== FALSE) { $message = preg_replace("/\s*\[free\][\n\r]*(.+?)[\n\r]*\[\/free\]\s*/is", tpl_free(), $message); } } if(!defined('IN_MOBILE') || !in_array(constant('IN_MOBILE'), array('1', '3', '4'))) { if(strpos($msglower, '[/media]') !== FALSE) { $message = preg_replace_callback("/\[media=([\w%,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", $allowmediacode ? 'discuzcode_callback_parsemedia_12' : 'discuzcode_callback_bbcodeurl_2', $message); } if(strpos($msglower, '[/audio]') !== FALSE) { $message = preg_replace_callback("/\[audio(=1)*\]\s*([^\[\<\r\n]+?)\s*\[\/audio\]/is", $allowmediacode ? 'discuzcode_callback_parseaudio_2' : 'discuzcode_callback_bbcodeurl_2', $message); } if(strpos($msglower, '[/flash]') !== FALSE) { $message = preg_replace_callback("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", $allowmediacode ? 'discuzcode_callback_parseflash_234' : 'discuzcode_callback_bbcodeurl_4', $message); } } else { if(strpos($msglower, '[/media]') !== FALSE) { $message = preg_replace("/\[media=([\w%,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "[media]\\2[/media]", $message); } if(strpos($msglower, '[/audio]') !== FALSE) { $message = preg_replace("/\[audio(=1)*\]\s*([^\[\<\r\n]+?)\s*\[\/audio\]/is", "[media]\\2[/media]", $message); } if(strpos($msglower, '[/flash]') !== FALSE) { $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "[media]\\4[/media]", $message); } } if($parsetype != 1 && $allowbbcode < 0 && isset($_G['cache']['bbcodes'][-$allowbbcode])) { $message = preg_replace($_G['cache']['bbcodes'][-$allowbbcode]['searcharray'], $_G['cache']['bbcodes'][-$allowbbcode]['replacearray'], $message); } if($parsetype != 1 && strpos($msglower, '[/hide]') !== FALSE && $pid) { if($_G['setting']['hideexpiration'] && $pdateline && (TIMESTAMP - $pdateline) / 86400 > $_G['setting']['hideexpiration']) { $message = preg_replace("/\[hide[=]?(d\d+)?[,]?(\d+)?\]\s*(.*?)\s*\[\/hide\]/is", "\\3", $message); $msglower = strtolower($message); } if(strpos($msglower, '[hide=d') !== FALSE) { $message = preg_replace_callback( "/\[hide=(d\d+)?[,]?(\d+)?\]\s*(.*?)\s*\[\/hide\]/is", function ($matches) use ($pdateline) { return expirehide($matches[1], $matches[2], $matches[3], intval($pdateline)); }, $message ); $msglower = strtolower($message); } if(strpos($msglower, '[hide]') !== FALSE) { if($authorreplyexist === null) { if(!$_G['forum']['ismoderator']) { if($_G['uid']) { $_post = C::t('forum_post')->fetch_post('tid:'.$_G['tid'], $pid); $authorreplyexist = $_post['tid'] == $_G['tid'] ? C::t('forum_post')->fetch_pid_by_tid_authorid($_G['tid'], $_G['uid']) : FALSE; } } else { $authorreplyexist = TRUE; } } if($authorreplyexist) { $message = preg_replace("/\[hide\]\s*(.*?)\s*\[\/hide\]/is", tpl_hide_reply(), $message); } else { $message = preg_replace("/\[hide\](.*?)\[\/hide\]/is", tpl_hide_reply_hidden(), $message); $message = ''.$message; } } if(strpos($msglower, '[hide=') !== FALSE) { $message = preg_replace_callback( "/\[hide=(\d+)\]\s*(.*?)\s*\[\/hide\]/is", function ($matches) use ($pid, $authorid) { return creditshide($matches[1], $matches[2], intval($pid), intval($authorid)); }, $message ); } } } if(!$bbcodeoff) { if($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) { $message = preg_replace_callback("/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/is", 'discuzcode_callback_bbcodeurl_1', $message); } $attrsrc = !IS_ROBOT && $lazyload ? 'file' : 'src'; if(strpos($msglower, '[/img]') !== FALSE) { $message = preg_replace_callback( "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/is", function ($matches) use ($allowimgcode, $lazyload, $pid, $allowbbcode) { if (intval($allowimgcode)) { return parseimg(0, 0, $matches[1], intval($lazyload), intval($pid), 'onmouseover="img_onmouseoverfunc(this)" '.(intval($lazyload) ? 'lazyloadthumb="1"' : 'onload="thumbImg(this)"')); } return (intval($allowbbcode) ? (!defined('IN_MOBILE') ? bbcodeurl($matches[1], '{url}') : bbcodeurl($matches[1], '')) : bbcodeurl($matches[1], '{url}')); }, $message ); $message = preg_replace_callback( "/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/is", function ($matches) use ($allowimgcode, $lazyload, $pid, $allowbbcode) { if (intval($allowimgcode)) { return parseimg($matches[1], $matches[2], $matches[3], intval($lazyload), intval($pid)); } return (intval($allowbbcode) ? (!defined('IN_MOBILE') ? bbcodeurl($matches[3], '{url}') : bbcodeurl($matches[3], '')) : bbcodeurl($matches[3], '{url}')); }, $message ); } } for($i = 0; $i <= $_G['forum_discuzcode']['pcodecount']; $i++) { $message = str_replace("[\tDISCUZ_CODE_$i\t]", $_G['forum_discuzcode']['codehtml'][$i], $message); } unset($msglower); if($jammer) { $message = preg_replace_callback("/\r\n|\n|\r/", 'discuzcode_callback_jammer', $message); } if($first) { if(helper_access::check_module('group')) { $message = preg_replace("/\[groupid=(\d+)\](.*)\[\/groupid\]/i", lang('forum/template', 'fromgroup').': \\2', $message); } else { $message = preg_replace("/(\[groupid=\d+\].*\[\/groupid\])/i", '', $message); } } return $htmlon ? $message : nl2br(str_replace(array("\t", ' ', ' '), array('        ', '   ', '  '), $message)); } function discuzcode_callback_codedisp_1($matches) { return codedisp($matches[1]); } function discuzcode_callback_parseattachurl_12($matches) { return parseattachurl($matches[1], $matches[2], 1); } function discuzcode_callback_parseed2k_1($matches) { return parseed2k($matches[1]); } function discuzcode_callback_parseurl_152($matches) { return parseurl($matches[1], $matches[5], $matches[2]); } function discuzcode_callback_parseemail_14($matches) { return parseemail($matches[1], $matches[4]); } function discuzcode_callback_parsetable_123($matches) { return parsetable($matches[1], $matches[2], $matches[3]); } function discuzcode_callback_parsemedia_12($matches) { return parsemedia($matches[1], $matches[2]); } function discuzcode_callback_bbcodeurl_2($matches) { return bbcodeurl($matches[2], '{url}'); } function discuzcode_callback_parseaudio_2($matches) { return parseaudio($matches[2], 400); } function discuzcode_callback_parseflash_234($matches) { return parseflash($matches[2], $matches[3], $matches[4]); } function discuzcode_callback_bbcodeurl_4($matches) { return bbcodeurl($matches[4], '{url}'); } function discuzcode_callback_bbcodeurl_1($matches) { return bbcodeurl($matches[1], ' Flash: {url} '); } function discuzcode_callback_jammer($matches) { return jammer(); } function parseurl($url, $text, $scheme) { global $_G; if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) { $url = $matches[0]; $length = 65; if(strlen($url) > $length) { $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3)); } return ''.$text.''; } else { $url = substr($url, 1); if(substr(strtolower($url), 0, 4) == 'www.') { $url = 'http://'.$url; } $url = !$scheme ? $_G['siteurl'].$url : $url; return ''.$text.''; } } function parseflash($w, $h, $url) { $w = !$w ? 550 : $w; $h = !$h ? 400 : $h; $ext = fileext($url) == 'flv' ? 'flv' : 'swf'; $params = "$ext,$w,$h"; return parsemedia($params, $url); } function parseed2k($url) { global $_G; list(,$type, $name, $size,) = explode('|', $url); $url = 'ed2k://'.$url.'/'; $name = addslashes($name); if($type == 'file') { $ed2kid = 'ed2k_'.random(3); return ''.dhtmlspecialchars(urldecode($name)).' ('.sizecount($size).')'; } else { return ''.$url.''; } } function parseattachurl($aid, $ext, $ignoretid = 0) { global $_G; require_once libfile('function/attachment'); $_G['forum_skipaidlist'][] = $aid; if(!empty($ext)) { $attach = C::t('forum_attachment_n')->fetch('aid:'.$aid, $aid); if(!in_array(attachtype(fileext($attach['filename'])."\t", 'id'), array(9, 10))) { $ext = 0; } } return $_G['siteurl'].'forum.php?mod=attachment&aid='.aidencode($aid, $ext, $ignoretid ? '' : $_G['tid']).($ext ? '&request=yes&_f=.'.$ext : ''); } function parseemail($email, $text) { $text = str_replace('\"', '"', $text); if(!$email && preg_match("/\s*([A-Za-z0-9\-_.+]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+)\s*/i", $text, $matches)) { $email = trim($matches[0]); return ''.$email.''; } else { return ''.$text.''; } } function parsetable($width, $bgcolor, $message) { if(strpos($message, '[/tr]') === FALSE && strpos($message, '[/td]') === FALSE) { $rows = explode("\n", $message); $s = !defined('IN_MOBILE') ? '' : '>') : '
          '; foreach($rows as $row) { $s .= ''; } $s .= '
          '.str_replace(array('\|', '|', '\n'), array('|', '', "\n"), $row).'
          '; return $s; } else { if(!preg_match("/^\[tr(?:=([\(\)\s%,#\w]+))?\]\s*\[td([=\d,%]+)?\]/", $message) && !preg_match("/^]*?>\s*]*?>/", $message)) { return str_replace('\\"', '"', preg_replace("/\[tr(?:=([\(\)\s%,#\w]+))?\]|\[td([=\d,%]+)?\]|\[\/td\]|\[\/tr\]/", '', $message)); } if(substr($width, -1) == '%') { $width = substr($width, 0, -1) <= 98 ? intval($width).'%' : '98%'; } else { $width = intval($width); $width = $width ? ($width <= 560 ? $width.'px' : '98%') : ''; } $message = preg_replace_callback("/\[tr(?:=([\(\)\s%,#\w]+))?\]\s*\[td(?:=(\d{1,4}%?))?\]/i", 'parsetable_callback_parsetrtd_12', $message); $message = preg_replace_callback("/\[\/td\]\s*\[td(?:=(\d{1,4}%?))?\]/i", 'parsetable_callback_parsetrtd_1', $message); $message = preg_replace_callback("/\[tr(?:=([\(\)\s%,#\w]+))?\]\s*\[td(?:=(\d{1,2}),(\d{1,2})(?:,(\d{1,4}%?))?)?\]/i", 'parsetable_callback_parsetrtd_1234', $message); $message = preg_replace_callback("/\[\/td\]\s*\[td(?:=(\d{1,2}),(\d{1,2})(?:,(\d{1,4}%?))?)?\]/i", 'parsetable_callback_parsetrtd_123', $message); $message = preg_replace("/\[\/td\]\s*\[\/tr\]\s*/i", '', $message); return (!defined('IN_MOBILE') ? '' : '>') : '
          '). str_replace('\\"', '"', $message).'
          '; } } function parsetable_callback_parsetrtd_12($matches) { return parsetrtd($matches[1], 0, 0, $matches[2]); } function parsetable_callback_parsetrtd_1($matches) { return parsetrtd('td', 0, 0, $matches[1]); } function parsetable_callback_parsetrtd_1234($matches) { return parsetrtd($matches[1], $matches[2], $matches[3], $matches[4]); } function parsetable_callback_parsetrtd_123($matches) { return parsetrtd('td', $matches[1], $matches[2], $matches[3]); } function parsetrtd($bgcolor, $colspan, $rowspan, $width) { return ($bgcolor == 'td' ? '' : '').' 1 ? ' colspan="'.$colspan.'"' : '').($rowspan > 1 ? ' rowspan="'.$rowspan.'"' : '').($width && !defined('IN_MOBILE') ? ' width="'.$width.'"' : '').'>'; } function parseaudio($url, $width = 400) { $url = addslashes($url); if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://', 'rtsp:/', 'mms://')) && !preg_match('/^static\//', $url) && !preg_match('/^data\//', $url)) { return dhtmlspecialchars($url); } $type = fileext($url); $randomid = random(3); return '

          '; } function parsemedia($params, $url) { $params = explode(',', $params); if(preg_match('/^(auto|100%|[0-9]{1,2}%)$/', $params[1], $matches)) { $width = $matches[1]; } else { $width = ($params[1] > 0 && $params[1] < 8192) ? intval($params[1]) : 800; } if(preg_match('/^(auto|100%|[0-9]{1,2}%)$/', $params[2], $matches)) { $height = $matches[1]; } else { $height = ($params[2] > 0 && $params[2] < 4096) ? intval($params[2]) : 600; } $width = defined('IN_MOBILE') ? '100%' : $width; $height = defined('IN_MOBILE') ? 'auto' : $height; $url = addslashes($url); if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://', 'rtsp:/', 'mms://')) && !preg_match('/^static\//', $url) && !preg_match('/^data\//', $url)) { return dhtmlspecialchars($url); } if($flv = parseflv($url, $width, $height)) { return $flv; } if(in_array(count($params), array(3, 4))) { $type = fileext($url); $url = str_replace(array('<', '>'), '', str_replace('\\"', '\"', $url)); if(in_array($params[0], array('rtsp', 'mms'))) { $mediaid = 'media_'.random(3); return $params[0] == 'rtsp' ? '
          ' : ''; } $audio = array('aac', 'flac', 'ogg', 'mp3', 'm4a', 'weba', 'wma', 'mid', 'wav', 'ra', 'ram'); $video = array('rm', 'rmvb', 'flv', 'swf', 'asf', 'asx', 'wmv', 'avi', 'mpg', 'mpeg', 'mp4', 'm4v', '3gp', 'ogv', 'webm', 'mov'); if (in_array($type, $audio)) { return parseaudio($url, $width); } else if (in_array($type, $video)) { $randomid = random(3); return ''; } else { return ''.$url.''; } } return; } function bbcodeurl($url, $tags) { if(!preg_match("/<.+?>/s", $url)) { if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://', 'rtsp:/', 'mms://')) && !preg_match('/^static\//', $url) && !preg_match('/^data\//', $url)) { $url = 'http://'.$url; } return str_replace(array('submit', 'member.php?mod=logging'), array('', ''), str_replace('{url}', addslashes($url), $tags)); } else { return ' '.$url; } } function jammer() { $randomstr = ''; for($i = 0; $i < mt_rand(5, 15); $i++) { $randomstr .= chr(mt_rand(32, 59)).' '.chr(mt_rand(63, 126)); } return mt_rand(0, 1) ? ''.$randomstr.''."\r\n" : "\r\n".''.$randomstr.''; } function highlightword($text, $words, $prepend) { $text = str_replace('\"', '"', $text); foreach($words AS $key => $replaceword) { $text = str_replace($replaceword, ''.$replaceword.'', $text); } return "$prepend$text"; } function parseflv($url, $width = 0, $height = 0) { global $_G; $lowerurl = strtolower($url); $flv = $iframe = $imgurl = ''; if(empty($_G['setting']['parseflv']) || !is_array($_G['setting']['parseflv'])) { return FALSE; } foreach($_G['setting']['parseflv'] as $script => $checkurl) { $check = FALSE; foreach($checkurl as $row) { if(strpos($lowerurl, $row) !== FALSE) { $check = TRUE; break; } } if($check) { @include_once libfile('media/'.$script, 'function'); if(function_exists('media_'.$script)) { list($flv, $iframe, $url, $imgurl) = call_user_func('media_'.$script, $url, $width, $height); } break; } } if($flv || $iframe) { if(!$width && !$height) { return array('flv' => $flv, 'iframe' => $iframe, 'imgurl' => $imgurl); } else { $width = addslashes($width); $height = addslashes($height); $flv = addslashes($flv); $iframe = addslashes($iframe); $randomid = 'flv_'.random(3); $player_iframe = $iframe ? "\"\"" : ''; $player_flv = $flv ? "AC_FL_RunContent('width', '$width', 'height', '$height', 'allowNetworking', 'internal', 'allowScriptAccess', 'never', 'src', '$flv', 'quality', 'high', 'bgcolor', '#ffffff', 'wmode', 'transparent', 'allowfullscreen', 'true')" : ''; $player = (!empty($player_iframe) && !empty($player_flv)) ? "detectHtml5Support() ? $player_iframe : $player_flv" : (empty($player_iframe) ? $player_flv : $player_iframe); return ''; } } else { return FALSE; } } function parseimg($width, $height, $src, $lazyload, $pid, $extra = '') { global $_G, $aimgs; static $styleoutput = null; if($_G['setting']['domainwhitelist_affectimg']) { $tmp = parse_url($src); if(!empty($tmp['host']) && !iswhitelist($tmp['host'])) { return $src; } } if(strstr($src, 'file:') || substr($src, 1, 1) == ':') { return $src; } if($width > $_G['setting']['imagemaxwidth']) { $height = intval($_G['setting']['imagemaxwidth'] * $height / $width); $width = $_G['setting']['imagemaxwidth']; if(defined('IN_MOBILE')) { $extra = ''; } else { $extra = 'onmouseover="img_onmouseoverfunc(this)" onclick="zoom(this)" style="cursor:pointer"'; } } $attrsrc = !IS_ROBOT && $lazyload ? 'file' : 'src'; $rimg_id = random(5); $aimgs[$pid][] = $rimg_id; $guestviewthumb = !empty($_G['setting']['guestviewthumb']['flag']) && empty($_G['uid']); $img = ''; if($guestviewthumb) { if(!isset($styleoutput)) { $img .= guestviewthumbstyle(); $styleoutput = true; } $img .= ''; } else { if(defined('IN_MOBILE')) { $img = ' 0 ? ' width="'.$width.'"' : '').($height > 0 ? ' height="'.$height.'"' : '').' src="{url}" border="0" alt="" />'; } else { $img = ' 0 ? ' width="'.$width.'"' : '').($height > 0 ? ' height="'.$height.'"' : '').' '.$attrsrc.'="{url}" '.($extra ? $extra.' ' : '').'border="0" alt="" />'; } } $code = bbcodeurl($src, $img); if($guestviewthumb) { $code = str_replace('{loginurl}', 'member.php?mod=logging&action=login', $code); } return $code; } function parsesmiles(&$message) { global $_G; static $enablesmiles; if($enablesmiles === null) { $enablesmiles = false; if(!empty($_G['cache']['smilies']) && is_array($_G['cache']['smilies'])) { foreach($_G['cache']['smilies']['replacearray'] AS $key => $smiley) { $_G['cache']['smilies']['replacearray'][$key] = ''; } $enablesmiles = true; } } $enablesmiles && $message = preg_replace($_G['cache']['smilies']['searcharray'], $_G['cache']['smilies']['replacearray'], $message, $_G['setting']['maxsmilies']); return $message; } function parsepostbg($bgimg, $pid) { global $_G; static $postbg; if($postbg[$pid]) { return ''; } loadcache('postimg'); foreach($_G['cache']['postimg']['postbg'] as $postbg) { if($postbg['url'] != $bgimg) { continue; } $bgimg = dhtmlspecialchars(basename($bgimg), ENT_QUOTES); $postbg[$pid] = true; $_G['forum_posthtml']['header'][$pid] .= ''; break; } return ''; } function parsepassword($password, $pid) { global $_G; static $postpw = array(); if($postpw[$pid]) { return ''; } $postpw[$pid] = true; if(empty($_G['cookie']['postpw_'.$pid]) || $_G['cookie']['postpw_'.$pid] != md5($password)) { $_G['forum_discuzcode']['passwordlock'][$pid] = 1; } return ''; } function guestviewthumbstyle() { static $styleoutput = null; $return = ''; if ($styleoutput === null) { global $_G; $return = ''; $styleoutput = true; } return $return; } ?>