function followcode($message, $tid = 0, $pid = 0, $length = 0, $allowimg = true) { global $_G; include_once libfile('function/post'); $message = strip_tags($message); $message = messagesafeclear($message); if ((strpos($message, '[/code]') || strpos($message, '[/CODE]')) !== FALSE) { $message = preg_replace("/\\s?\\[code\\](.+?)\\[\\/code\\]\\s?/ies", "", $message); } $msglower = strtolower($message); $htmlon = 0; $message = dhtmlspecialchars($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'); } $_G['delattach'] = array(); $message = fparsesmiles($message); if (strpos($msglower, 'attach://') !== FALSE) { $message = preg_replace("/attach:\\/\\/(\\d+)\\.?(\\w*)/ie", '', $message); } if (strpos($msglower, 'ed2k://') !== FALSE) { $message = preg_replace("/ed2k:\\/\\/(.+?)\\//e", '', $message); } if (strpos($msglower, '[/i]') !== FALSE) { $message = preg_replace("/\\s*\\[i=s\\][\n\r]*(.+?)[\n\r]*\\[\\/i\\]\\s*/is", '', $message); } $message = str_replace('[/p]', "\n", $message); $message = str_replace(array('[/color]', '[/backcolor]', '[/size]', '[/font]', '[/align]', '[b]', '[/b]', '[s]', '[/s]', '[hr]', '[i=s]', '[i]', '[/i]', '[u]', '[/u]', '[list]', '[list=1]', '[list=a]', '[list=A]', "\r\n[*]", '[*]', '[/list]', '[indent]', '[/indent]', '[/float]'), '', 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", "/\\[float=left\\]/i", "/\\[float=right\\]/i"), '', $message)); if (strpos($msglower, '[/p]') !== FALSE) { $message = preg_replace("/\\[p=(\\d{1,2}|null), (\\d{1,2}|null), (left|center|right)\\]/i", "<p style=\"line-height:\\1px;text-indent:\\2em;text-align:left;\">", $message); $message = str_replace('[/p]', '</p>', $message); } if (strpos($msglower, '[/quote]') !== FALSE) { $message = preg_replace("/\\s?\\[quote\\][\n\r]*(.+?)[\n\r]*\\[\\/quote\\]\\s?/is", '', $message); } if (strpos($msglower, '[/free]') !== FALSE) { $message = preg_replace("/\\s*\\[free\\][\n\r]*(.+?)[\n\r]*\\[\\/free\\]\\s*/is", '', $message); } if (isset($_G['cache']['bbcodes'][-$allowbbcode])) { $message = preg_replace($_G['cache']['bbcodes'][-$allowbbcode]['searcharray'], '', $message); } if (strpos($msglower, '[/hide]') !== FALSE) { preg_replace("/\\[hide.*?\\]\\s*(.*?)\\s*\\[\\/hide\\]/ies", "hideattach('\\1')", $message); if (strpos($msglower, '[hide]') !== FALSE) { $message = preg_replace("/\\[hide\\]\\s*(.*?)\\s*\\[\\/hide\\]/is", '', $message); } if (strpos($msglower, '[hide=') !== FALSE) { $message = preg_replace("/\\[hide=(d\\d+)?[,]?(\\d+)?\\]\\s*(.*?)\\s*\\[\\/hide\\]/ies", '', $message); } } if (strpos($msglower, '[/url]') !== FALSE) { $message = preg_replace("/\\[url(=((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\\/\\/|www\\.|mailto:)?([^\r\n\\[\"']+?))?\\](.+?)\\[\\/url\\]/ies", "fparseurl('\\1', '\\5', '\\2')", $message); } if (strpos($msglower, '[/email]') !== FALSE) { $message = preg_replace("/\\[email(=([a-z0-9\\-_.+]+)@([a-z0-9\\-_]+[.][a-z0-9\\-_.]+))?\\](.+?)\\[\\/email\\]/ies", "fparseemail('\\1', '\\4')", $message); } $nest = 0; while (strpos($msglower, '[table') !== FALSE && strpos($msglower, '[/table]') !== FALSE) { $message = preg_replace("/\\[table(?:=(\\d{1,4}%?)(?:,([\\(\\)%,#\\w ]+))?)?\\]\\s*(.+?)\\s*\\[\\/table\\]/ies", "fparsetable('\\1', '\\2', '\\3')", $message); if (++$nest > 4) { break; } } if (strpos($msglower, '[/media]') !== FALSE) { $message = preg_replace("/\\[media=([\\w,]+)\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/media\\]/ies", "fparsemedia('\\1', '\\2')", $message); } if (strpos($msglower, '[/audio]') !== FALSE) { $message = preg_replace("/\\[audio(=1)*\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/audio\\]/ies", "fparseaudio('\\2')", $message); } if (strpos($msglower, '[/flash]') !== FALSE) { $message = preg_replace("/\\[flash(=(\\d+),(\\d+))?\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/flash\\]/ies", "fparseflash('\\4');", $message); } if ($parsetype != 1 && strpos($msglower, '[swf]') !== FALSE) { $message = preg_replace("/\\[swf\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/swf\\]/ies", "bbcodeurl('\\1', ' <img src=\"'.STATICURL.'image/filetype/flash.gif\" align=\"absmiddle\" alt=\"\" /> <a href=\"{url}\" target=\"_blank\">Flash: {url}</a> ')", $message); } $flag = $length ? 1 : 0; if ($tid) { $extra = "onclick=\"changefeed({$tid}, {$pid}, {$flag}, this)\""; } 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"), $allowimg ? array("fparseimg('\\1', '{$extra}')", "fparseimg('\\3', '{$extra}')") : '', $message); } if ($tid && $pid) { $_G['post_attach'] = C::t('forum_attachment_n')->fetch_all_by_id(getattachtableid($tid), 'pid', $pid); foreach ($_G['post_attach'] as $aid => $attach) { if (!empty($_G['delattach']) && in_array($aid, $_G['delattach'])) { continue; } $message .= "[attach]{$attach['aid']}[/attach]"; $message = preg_replace("/\\[attach\\]{$attach['aid']}\\[\\/attach\\]/i", fparseattach($attach['aid'], $length, $extra), $message, 1); } } if (strpos($msglower, '[/attach]') !== FALSE) { $message = preg_replace("/\\[attach\\]\\s*([^\\[\\<\r\n]+?)\\s*\\[\\/attach\\]/ies", '', $message); } $message = clearnl($message); if ($length) { $sppos = strpos($message, chr(0) . chr(0) . chr(0)); if ($sppos !== false) { $message = substr($message, 0, $sppos); } $checkstr = cutstr($message, $length, ''); if (strpos($checkstr, '[') && strpos(strrchr($checkstr, "["), ']') === FALSE) { $length = strpos($message, ']', strrpos($checkstr, strrchr($checkstr, "["))); } $message = cutstr($message, $length + 1, ' <a href="javascript:;" class="flw_readfull xi2 xs1"' . $extra . '>' . lang('space', 'follow_view_fulltext') . '</a>'); } elseif ($allowimg && !empty($extra)) { $message .= '<div class="ptm cl"><a href="javascript:;" class="flw_readfull y xi2 xs1"' . $extra . '>' . lang('space', 'follow_retract') . '</a></div>'; } for ($i = 0; $i <= $_G['forum_discuzcode']['pcodecount']; $i++) { $code = ''; if (isset($_G['forum_discuzcode']['codehtml'][$i]) && !empty($_G['forum_discuzcode']['codehtml'][$i])) { $code = $_G['forum_discuzcode']['codehtml'][$i]; } elseif (!$length) { if (isset($_G['forum_discuzcode']['audio'][$i]) && !empty($_G['forum_discuzcode']['audio'][$i])) { $code = $_G['forum_discuzcode']['audio'][$i]; } elseif (isset($_G['forum_discuzcode']['video'][$i]) && !empty($_G['forum_discuzcode']['video'][$i])) { $code = $_G['forum_discuzcode']['video'][$i]; } elseif (isset($_G['forum_discuzcode']['media'][$i]) && !empty($_G['forum_discuzcode']['media'][$i])) { $code = $_G['forum_discuzcode']['media'][$i]; } elseif (isset($_G['forum_discuzcode']['image'][$i]) && !empty($_G['forum_discuzcode']['image'][$i])) { $code = $_G['forum_discuzcode']['image'][$i]; } elseif (isset($_G['forum_discuzcode']['attach'][$i]) && !empty($_G['forum_discuzcode']['attach'][$i])) { $code = $_G['forum_discuzcode']['attach'][$i]; } } $message = str_replace("[\tD_{$i}\t]", $code, $message); } $message = clearnl($message); if (!empty($_GET['highlight'])) { $highlightarray = explode('+', $_GET['highlight']); $sppos = strrpos($message, chr(0) . chr(0) . chr(0)); if ($sppos !== FALSE) { $specialextra = substr($message, $sppos + 3); $message = substr($message, 0, $sppos); } $message = preg_replace(array("/(^|>)([^<]+)(?=<|\$)/sUe", "/<highlight>(.*)<\\/highlight>/siU"), array("highlightword('\\2', \$highlightarray, '\\1')", "<strong><font color=\"#FF0000\">\\1</font></strong>"), $message); if ($sppos !== FALSE) { $message = $message . chr(0) . chr(0) . chr(0) . $specialextra; } } unset($msglower); if ($length) { $count = 0; $imagecode = $mediacode = $videocode = $audiocode = $mediahtml = ''; for ($i = 0; $i <= $_G['forum_discuzcode']['pcodecount']; $i++) { if (isset($_G['forum_discuzcode']['audio'][$i]) && !empty($_G['forum_discuzcode']['audio'][$i])) { $audiocode .= '<li>' . $_G['forum_discuzcode']['audio'][$attachcodei] . '</li>'; } elseif (isset($_G['forum_discuzcode']['video'][$i]) && !empty($_G['forum_discuzcode']['video'][$i])) { $videocode .= '<li>' . $_G['forum_discuzcode']['video'][$i] . '</li>'; } elseif (isset($_G['forum_discuzcode']['media'][$i]) && !empty($_G['forum_discuzcode']['media'][$i])) { $mediacode .= '<li>' . $_G['forum_discuzcode']['media'][$i] . '</li>'; } elseif (isset($_G['forum_discuzcode']['image'][$i]) && !empty($_G['forum_discuzcode']['image'][$i]) && $count < 4) { $imagecode .= '<li>' . $_G['forum_discuzcode']['image'][$i] . '</li>'; $count++; } elseif (isset($_G['forum_discuzcode']['attach'][$i]) && !empty($_G['forum_discuzcode']['attach'][$i])) { $attachcode .= '<li>' . $_G['forum_discuzcode']['attach'][$i] . '</li>'; } } if (!empty($audiocode)) { $message .= '<div class="flw_music"><ul>' . $audiocode . '</ul></div>'; } if (!empty($videocode)) { $message .= '<div class="flw_video"><ul>' . $videocode . '</ul></div>'; } if (!empty($mediacode)) { $message .= '<div class="flw_video"><ul>' . $mediacode . '</ul></div>'; } if (!empty($imagecode)) { $message = '<div class="flw_image' . ($count < 2 ? ' flw_image_1' : '') . '"><ul>' . $imagecode . '</ul></div>' . $message; } if (!empty($attachcode)) { $message .= '<div class="flw_attach"><ul>' . $attachcode . '</ul></div>'; } } return $htmlon ? $message : nl2br(str_replace(array("\t", ' ', ' '), ' ', $message)); }
} } break; case 8: if (!empty($txtvalueatach)) { $endtxtatach = $this->db1->e(htmlspecialchars(trim(clearnl($txtvalueatach)))); if (!empty($endtxtatach)) { $withattach = 1; $typeattach = 8; $txttypeattach = 'book'; } } break; case 9: if (!empty($txtvalueatach)) { $endtxtatach = $this->db1->e(htmlspecialchars(trim(clearnl($txtvalueatach)))); if (!empty($endtxtatach)) { $withattach = 1; $typeattach = 9; $txttypeattach = 'game'; } } break; } } if ($errored == 0) { if (empty($txtstatus) && empty($endtxtatach)) { $errored = 1; $txterror = $this->lang('global_post_txterror5'); } else { $r = $this->db1->query("INSERT INTO posts SET code='" . $codep . "', iduser="******", post='" . $txtstatus . "', typepost='" . $txttypeattach . "', valueattach='" . $endtxtatach . "', whendate='" . time() . "'");