var['cb_nick'], 2); if($this->var['user_name']) { $cb_nick = "".$this->var['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); } return $cb_nick; } function sc_cb_timedate($parm='') { return e107::getDate()->convert_date($this->var['cb_datestamp'], "relative"); } function sc_cb_message($parm = '') { if($this->var['cb_blocked']) { return CHATBOX_L6; } $pref = e107::getPref(); $emotes_active = $pref['cb_emote'] ? 'USER_BODY, emotes_on' : 'USER_BODY, emotes_off'; list($cb_uid, $cb_nick) = explode(".", $this->var['cb_nick'], 2); $cb_message = e107::getParser()->toHTML($this->var['cb_message'], false, $emotes_active, $cb_uid, $pref['menu_wordwrap']); return $cb_message; $replace[0] = "["; $replace[1] = "]"; $search[0] = "["; $search[1] = "]"; $cb_message = str_replace($search, $replace, $cb_message); } function sc_cb_avatar($parm='') { return e107::getParser()->parseTemplate("{USER_AVATAR=".vartrue($this->var['user_image'])."}"); } function sc_cb_bullet($parm = '') { $bullet = ""; if(defined('BULLET')) { $bullet = ''; } elseif(file_exists(THEME.'images/bullet2.gif')) { $bullet = ''; } return $bullet; } } } if((isset($_POST['chat_submit']) || e_AJAX_REQUEST) && $_POST['cmessage'] != '') { if(!USER && !$pref['anon_post']) { // disallow post } else { $nick = trim(preg_replace("#\[.*\]#si", "", $tp -> 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->select("chatbox", "*", "cb_message='$cmessage' AND cb_datestamp+84600>".time())) { $emessage = CHATBOX_L17; } else { $datestamp = time(); $ip = e107::getIPHandler()->getIP(FALSE); 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->select("user", "*", "user_name='$nick' ")){ $emessage = CHATBOX_L1; } else { $nick = "0.".$nick; } } if(!$emessage) { $sql->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
"; } else { $texta = (e_QUERY ? "\n" : "\n"); } $texta .= "
"; if(($pref['anon_post'] == "1" && USER == FALSE)) { $texta .= "\n
"; } if($pref['cb_layer'] == 2) { $oc = "onclick=\"javascript:sendInfo('".SITEURLBASE.e_PLUGIN_ABS."chatbox_menu/chatbox_menu.php', 'chatbox_posts', this.form);\""; } else { $oc = ""; } $texta .= "
"; // $texta .= ""; // How often do we see these lately? ;-) if($pref['cb_emote'] && $pref['smiley_activate']) { $texta .= " \n"; } $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, u.user_image 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); global $CHATBOXSTYLE; if($CHATBOXSTYLE) { $legacySrch = array('{USERNAME}','{MESSAGE}','{TIMEDATE}'); $legacyRepl = array('{CB_USERNAME}','{CB_MESSAGE}','{CB_TIMEDATE}'); $CHATBOX_TEMPLATE['start'] = ""; $CHATBOX_TEMPLATE['item'] = str_replace($legacySrch,$legacyRepl,$CHATBOXSTYLE); $CHATBOX_TEMPLATE['end'] = ""; } else // default chatbox style { $tp->parseTemplate("{SETIMAGE: w=40}",true); // set thumbnail size. // FIXME - move to template $CHATBOX_TEMPLATE['start'] = ""; } // FIX - don't call getScBatch() if don't need to globally register the methods // $sc = e107::getScBatch('chatbox'); // the good way in this case - it works with any object having sc_*, models too $sc = new chatbox_shortcodes(); if($sql->gen($qry)) { $cbpost = $sql->db_getList(); $text .= "
\n"; $text .= $tp->parseTemplate($CHATBOX_TEMPLATE['start'], false, $sc); foreach($cbpost as $cb) { $sc->setVars($cb); $text .= $tp->parseTemplate($CHATBOX_TEMPLATE['item'], false, $sc); } $text .= $tp->parseTemplate($CHATBOX_TEMPLATE['end'], false, $sc); $text .= "
"; } else { $text .= "".CHATBOX_L11.""; } $total_chats = $sql->count("chatbox"); if($total_chats > $chatbox_posts || CB_MOD) { $text .= "
".(CB_MOD ? CHATBOX_L13 : CHATBOX_L12)." (".$total_chats.")
"; } $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 && e_AJAX_REQUEST) { $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 .= "
[ ".CHATBOX_L13." ]
";} //$ns -> tablerender($caption, $text, 'chatbox'); ?>