toDB($_POST['nick'])));
$cmessage = $_POST['cmessage'];
$cmessage = preg_replace("#\[.*?\](.*?)\[/.*?\]#s", "\\1", $cmessage);
$fp = new floodprotect;
if($fp -> flood("chatbox", "cb_datestamp"))
{
if((strlen(trim($cmessage)) < 1000) && trim($cmessage) != "")
{
$cmessage = $tp -> toDB($cmessage);
if($sql -> db_Select("chatbox", "*", "cb_message='$cmessage' AND cb_datestamp+84600>".time()))
{
$emessage = CHATBOX_L17;
}
else
{
$datestamp = time();
$ip = $e107->getip();
if(USER)
{
$nick = USERID.".".USERNAME;
$sql -> db_Update("user", "user_chats=user_chats+1, user_lastpost='".time()."' WHERE user_id='".USERID."' ");
}
else if(!$nick)
{
$nick = "0.Anonymous";
}
else
{
if($sql -> db_Select("user", "*", "user_name='$nick' ")){
$emessage = CHATBOX_L1;
}
else
{
$nick = "0.".$nick;
}
}
if(!$emessage)
{
$sql -> db_Insert("chatbox", "0, '$nick', '$cmessage', '".time()."', '0' , '$ip' ");
$edata_cb = array("cmessage" => $cmessage, "ip" => $ip);
$e_event -> trigger("cboxpost", $edata_cb);
$e107cache->clear("nq_chatbox");
}
}
}
else
{
$emessage = CHATBOX_L15;
}
}
else
{
$emessage = CHATBOX_L19;
}
}
}
if(!USER && !$pref['anon_post']){
if($pref['user_reg'])
{
$texta = "
".CHATBOX_L3."
";
}
}
else
{
$cb_width = (defined("CBWIDTH") ? CBWIDTH : "");
if($pref['cb_layer'] == 2)
{
$texta = "\n\n";
}
if($emessage != ""){
$texta .= "".$emessage."
";
}
if(!$text = $e107cache->retrieve("nq_chatbox"))
{
global $pref,$tp;
$pref['chatbox_posts'] = ($pref['chatbox_posts'] ? $pref['chatbox_posts'] : 10);
$chatbox_posts = $pref['chatbox_posts'];
if(!isset($pref['cb_mod']))
{
$pref['cb_mod'] = e_UC_ADMIN;
}
define("CB_MOD", check_class($pref['cb_mod']));
$qry = "
SELECT c.*, u.user_name FROM #chatbox AS c
LEFT JOIN #user AS u ON SUBSTRING_INDEX(c.cb_nick,'.',1) = u.user_id
ORDER BY c.cb_datestamp DESC LIMIT 0, ".intval($chatbox_posts);
if($sql -> db_Select_gen($qry))
{
$obj2 = new convert;
$cbpost = $sql -> db_getList();
foreach($cbpost as $cb)
{
// get available vars
list($cb_uid, $cb_nick) = explode(".", $cb['cb_nick'], 2);
if($cb['user_name'])
{
$cb_nick = "{$cb['user_name']}";
}
else
{
$cb_nick = $tp -> toHTML($cb_nick,FALSE,'USER_TITLE, emotes_off, no_make_clickable');
$cb_nick = str_replace("Anonymous", LAN_ANONYMOUS, $cb_nick);
}
$datestamp = $obj2->convert_date($cb['cb_datestamp'], "short");
if(!$pref['cb_wordwrap']) { $pref['cb_wordwrap'] = 30; }
$emotes_active = $pref['cb_emote'] ? 'USER_BODY, emotes_on' : 'USER_BODY, emotes_off';
$cb_message = $tp -> toHTML($cb['cb_message'], FALSE, $emotes_active, $cb_uid, $pref['menu_wordwrap']);
$replace[0] = "["; $replace[1] = "]";
$search[0] = "["; $search[1] = "]";
$cb_message = str_replace($search, $replace, $cb_message);
global $CHATBOXSTYLE;
if(!$CHATBOXSTYLE)
{
$bullet = (defined("BULLET") ? "
" : "
");
// default chatbox style
$CHATBOXSTYLE = "\n
$bullet
{USERNAME}{TIMEDATE}{MESSAGE}
\n";
}
$search[0] = "/\{USERNAME\}(.*?)/si";
$replace[0] = $cb_nick;
$search[1] = "/\{TIMEDATE\}(.*?)/si";
$replace[1] = $datestamp;
$search[2] = "/\{MESSAGE\}(.*?)/si";
$replace[2] = ($cb['cb_blocked'] ? CHATBOX_L6 : $cb_message);
$text .= preg_replace($search, $replace, $CHATBOXSTYLE);
}
}
else
{
$text .= "".CHATBOX_L11."";
}
$total_chats = $sql -> db_Count("chatbox");
if($total_chats > $chatbox_posts || CB_MOD)
{
$text .= "
";
}
$e107cache->set("nq_chatbox", $text);
}
$caption = (file_exists(THEME."images/chatbox_menu.png") ? "
".CHATBOX_L2 : CHATBOX_L2);
if($pref['cb_layer'] == 1)
{
$text = $texta."".$text."
";
$ns -> tablerender($caption, $text, 'chatbox');
}
elseif($pref['cb_layer'] == 2 && isset($_POST['chat_submit']))
{
$text = $texta.$text;
$text = str_replace(e_IMAGE, e_IMAGE_ABS, $text);
echo $text;
}
else
{
$text = $texta.$text;
if($pref['cb_layer'] == 2)
{
$text = "".$text."
";
}
$ns -> tablerender($caption, $text, 'chatbox');
}
//$text = ($pref['cb_layer'] ? $texta."".$text."
" : $texta.$text);
//if(ADMIN && getperms("C")){$text .= "
";}
//$ns -> tablerender($caption, $text, 'chatbox');
?>