示例#1
0
function fparseimg($src, $extra = '')
{
    global $_G;
    $rimg_id = random(5);
    $html = bbcodeurl($src, '<img id="iimg_' . $rimg_id . '" src="' . $src . '" border="0" alt="" ' . $extra . ' style="cursor: pointer;" />');
    return fcodedisp($html, 'image');
}
示例#2
0
function parseimg($width, $height, $src)
{
    $extra = '';
    if ($width > IMAGEMAXWIDTH) {
        $height = intval(IMAGEMAXWIDTH * $height / $width);
        $width = IMAGEMAXWIDTH;
        $extra = ' onclick="zoom(this)" style="cursor:pointer"';
    }
    return bbcodeurl($src, '<img' . ($width > 0 ? ' width="' . $width . '"' : '') . ($height > 0 ? ' height="' . $height . '"' : '') . ' src="' . $src . '"' . $extra . ' border="0" alt="" />');
}
function parseimg($width, $height, $src, $lazyload, $pid, $extra = '')
{
    global $_G;
    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);
    $GLOBALS['aimgs'][$pid][] = $rimg_id;
    $guestviewthumb = !empty($_G['setting']['guestviewthumb']['flag']) && empty($_G['uid']);
    $img = '';
    if ($guestviewthumb) {
        if (!isset($styleoutput)) {
            $img .= guestviewthumbstyle();
            $styleoutput = true;
        }
        $img .= '<div class="guestviewthumb"><img id="aimg_' . $rimg_id . '" class="guestviewthumb_cur" onclick="showWindow(\'login\', \'{loginurl}\'+\'&referer=\'+encodeURIComponent(location))" ' . $attrsrc . '="{url}" border="0" alt="" />
				<br><a href="{loginurl}" onclick="showWindow(\'login\', this.href+\'&referer=\'+encodeURIComponent(location));">' . lang('forum/template', 'guestviewthumb') . '</a></div>';
    } else {
        if (defined('IN_MOBILE')) {
            $img = '<img' . ($width > 0 ? ' width="' . $width . '"' : '') . ($height > 0 ? ' height="' . $height . '"' : '') . ' src="{url}" border="0" alt="" />';
        } else {
            $img = '<img id="aimg_' . $rimg_id . '" onclick="zoom(this, this.src, 0, 0, ' . ($_G['setting']['showexif'] ? 1 : 0) . ')" class="zoom"' . ($width > 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;
}
示例#4
0
function parseimg($width, $height, $src, $lazyload, $pid, $extra = '')
{
    global $_G;
    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') && !defined('TPL_DEFAULT')) {
            $extra = '';
        } else {
            $extra = 'onmouseover="img_onmouseoverfunc(this)" onclick="zoom(this)" style="cursor:pointer"';
        }
    }
    $attrsrc = !IS_ROBOT && $lazyload ? 'file' : 'src';
    $rimg_id = random(5);
    $GLOBALS['aimgs'][$pid][] = $rimg_id;
    return bbcodeurl($src, '<img id="aimg_' . $rimg_id . '" onclick="zoom(this, this.src, 0, 0, ' . ($_G['setting']['showexif'] ? 1 : 0) . ')" class="zoom"' . ($width > 0 ? ' width="' . $width . '"' : '') . ($height > 0 ? ' height="' . $height . '"' : '') . ' ' . $attrsrc . '="' . $src . '" ' . ($extra ? $extra . ' ' : '') . 'border="0" alt="" />');
}
function parseimg($width, $height, $src) {
	return bbcodeurl($src, '<img'.($width > 0 ? " width=\"$width\"" : '').($height > 0 ? " height=\"$height\"" : '')." src=\"$src\" border=\"0\" alt=\"\" />");
}
示例#6
0
function parseimg($width, $height, $src, $lazyload)
{
    global $_G;
    $extra = '';
    if ($width > $_G['setting']['imagemaxwidth']) {
        $height = intval($_G['setting']['imagemaxwidth'] * $height / $width);
        $width = $_G['setting']['imagemaxwidth'];
        if (defined('IN_MOBILE') && !defined('TPL_DEFAULT')) {
            $extra = '';
        } else {
            $extra = ' onclick="zoom(this)" style="cursor:pointer"';
        }
    }
    $attrsrc = !IS_ROBOT && $lazyload ? 'file' : 'src';
    return bbcodeurl($src, '<img' . ($width > 0 ? ' width="' . $width . '"' : '') . ($height > 0 ? ' height="' . $height . '"' : '') . ' ' . $attrsrc . '="' . $src . '"' . $extra . ' border="0" alt="" />');
}
function mobile_discuzcode($param)
{
    global $_G;
    list($message, $smileyoff, $bbcodeoff, $htmlon, $allowsmilies, $allowbbcode, $allowimgcode, $allowhtml, $jammer, $parsetype, $authorid, $allowmediacode, $pid, $lazyload, $pdateline, $first) = $param;
    static $authorreplyexist;
    $message = preg_replace(array(lang('forum/misc', 'post_edit_regexp'), lang('forum/misc', 'post_edithtml_regexp'), lang('forum/misc', 'post_editnobbcode_regexp')), '', $message);
    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], $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;
        }
    }
    if ($parsetype != 1 && !$bbcodeoff && $allowbbcode && (strpos($message, '[/code]') || strpos($message, '[/CODE]')) !== FALSE) {
        $message = preg_replace_callback("/\\s?\\[code\\](.+?)\\[\\/code\\]\\s?/is", function ($matches) {
            return mobile_parsecode($matches[1]);
        }, $message);
    }
    $msglower = strtolower($message);
    $htmlon = $htmlon && $allowhtml ? 1 : 0;
    if (!$htmlon) {
        $message = dhtmlspecialchars($message);
    } else {
        $message = preg_replace("/<script[^\\>]*?>(.*?)<\\/script>/i", '', $message);
    }
    if (!$smileyoff && $allowsmilies) {
        $message = mobile_parsesmiles($message);
    }
    if ($_G['setting']['allowattachurl'] && strpos($msglower, 'attach://') !== FALSE) {
        $message = preg_replace_callback("/attach:\\/\\/(\\d+)\\.?(\\w*)/i", function ($matches) {
            return parseattachurl($matches[1], $matches[2], 1);
        }, $message);
    }
    if ($allowbbcode) {
        if (strpos($msglower, 'ed2k://') !== FALSE) {
            $message = preg_replace_callback("/ed2k:\\/\\/(.+?)\\//", function ($matches) {
                return mobile_parseed2k($matches[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:)?([^\r\n\\[\"']+?))?\\](.+?)\\[\\/url\\]/is", function ($matches) {
                return mobile_parseurl($matches[1], $matches[5], $matches[2]);
            }, $message);
        }
        if (strpos($msglower, '[/email]') !== FALSE) {
            $message = preg_replace_callback("/\\[email(=([a-z0-9\\-_.+]+)@([a-z0-9\\-_]+[.][a-z0-9\\-_.]+))?\\](.+?)\\[\\/email\\]/is", function ($matches) {
                return strip_tags(parseemail($matches[1], $matches[4]));
            }, $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", function ($matches) {
                return mobile_parsetable($matches[1], $matches[2], $matches[3]);
            }, $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('</font>', '</font>', '', '', '', '<strong>', '</strong>', '<strike>', '</strike>', '<hr class="l" />', '</p>', '', '', '', '', '', '<ul>', '<ul type="1" class="litype_1">', '<ul type="a" class="litype_2">', '<ul type="A" class="litype_3">', '<li>', '<li>', '</ul>', '', '', ''), 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,2}+)?(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("<font color=\"\\1\">", "<font style=\"color:\\1\">", "<font style=\"background-color:\\1\">", "<font style=\"background-color:\\1\">", "", "", "", "", "<p>", "", ""), $message));
        $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", mobile_quote(), $message);
            }
            if (strpos($msglower, '[/free]') !== FALSE) {
                $message = preg_replace("/\\s*\\[free\\][\n\r]*(.+?)[\n\r]*\\[\\/free\\]\\s*/is", mobile_free(), $message);
            }
        }
        if (strpos($msglower, '[/media]') !== FALSE) {
            $message = preg_replace_callback("/\\[media=([\\w,]+)\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/media\\]/is", function ($matches) {
                return bbcodeurl($matches[2], '<a class="media" href="{url}" target="_blank">{url}</a>');
            }, $message);
        }
        if (strpos($msglower, '[/audio]') !== FALSE) {
            $message = preg_replace_callback("/\\[audio(=1)*\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/audio\\]/is", function ($matches) {
                return bbcodeurl($matches[2], '<a href="{url}" target="_blank">{url}</a>');
            }, $message);
        }
        if (strpos($msglower, '[/flash]') !== FALSE) {
            $message = preg_replace_callback("/\\[flash(=(\\d+),(\\d+))?\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/flash\\]/is", function ($matches) {
                return bbcodeurl($matches[4], '<a href="{url}" target="_blank">{url}</a>');
            }, $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], $pdateline);
                }, $message);
                $msglower = strtolower($message);
            }
            if (strpos($msglower, '[hide]') !== FALSE) {
                if ($authorreplyexist === null) {
                    if (!$_G['forum']['ismoderator']) {
                        if ($_G['uid']) {
                            $authorreplyexist = C::t('forum_post')->fetch_pid_by_tid_authorid($_G['tid'], $_G['uid']);
                        }
                    } else {
                        $authorreplyexist = TRUE;
                    }
                }
                if ($authorreplyexist) {
                    $message = preg_replace("/\\[hide\\]\\s*(.*?)\\s*\\[\\/hide\\]/is", mobile_hide_reply(), $message);
                } else {
                    $message = preg_replace("/\\[hide\\](.*?)\\[\\/hide\\]/is", mobile_hide_reply_hidden(), $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], $pid, $authorid);
                }, $message);
            }
        }
    }
    if (strpos($message, '[/tthread]') !== FALSE) {
        $matches = array();
        preg_match('/\\[tthread=(.+?),(.+?)\\](.*?)\\[\\/tthread\\]/', $message, $matches);
        $message = preg_replace('/\\[tthread=(.+?)\\](.*?)\\[\\/tthread\\]/', lang('plugin/qqconnect', 'connect_tthread_message', array('username' => $matches[1], 'nick' => $matches[2])), $message);
    }
    if (!$bbcodeoff) {
        if ($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) {
            $message = preg_replace_callback("/\\[swf\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/swf\\]/is", function ($matches) {
                return bbcodeurl($matches[1], ' <img src="' . STATICURL . 'image/filetype/flash.gif" align="absmiddle" alt="" /> <a href="{url}" target="_blank">Flash: {url}</a> ');
            }, $message);
        }
        $attrsrc = !IS_ROBOT && $lazyload ? 'file' : 'src';
        if (strpos($msglower, '[/img]') !== FALSE) {
            $message = preg_replace(array("/\\[img\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/img\\]/ies", "/\\[img=(\\d{1,4})[x|\\,](\\d{1,4})\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/img\\]/ies"), $allowimgcode ? array("mobile_parseimg(0, 0, '\\1', " . intval($lazyload) . ", " . intval($pid) . ", 'onmouseover=\"img_onmouseoverfunc(this)\" " . ($lazyload ? "lazyloadthumb=\"1\"" : "onload=\"thumbImg(this)\"") . "')", "mobile_parseimg('\\1', '\\2', '\\3', " . intval($lazyload) . ", " . intval($pid) . ")") : ($allowbbcode ? array(!defined('IN_MOBILE') ? "bbcodeurl('\\1', '<a href=\"{url}\" target=\"_blank\">{url}</a>')" : "bbcodeurl('\\1', '')", !defined('IN_MOBILE') ? "bbcodeurl('\\3', '<a href=\"{url}\" target=\"_blank\">{url}</a>')" : "bbcodeurl('\\3', '')") : array("bbcodeurl('\\1', '{url}')", "bbcodeurl('\\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);
    $message = preg_replace("/(\\[groupid=\\d+\\].*\\[\\/groupid\\])/i", '', $message);
    $message = preg_replace("/(\r\n|\n|\r){3,}/i", "\\1\\1\\1", $message);
    return $message;
}
示例#8
0
function parseimg($width, $height, $src)
{
    $img = '<img' . ($width > 0 ? ' width="' . $width . '"' : '') . ($height > 0 ? ' height="' . $height . '"' : '') . ' src="{url}" border="0" alt="" />';
    $code = bbcodeurl($src, $img);
    return $code;
}