execute($sql); $total = $rs->fields['total']; if ($total > 0) { echo ' (' . $total . ')'; } } /* delete label */ public function deleteLabel() { global $db, $smarty, $class_filter; if ($_POST) { $id = $class_filter->clr_str($_POST['input_label']); $id_arr = explode('-', $id); $_id = intval(substr(strstr($id, 'del'), 3)); $_sid = intval($_SESSION['USER_ID']); $_for = $id_arr[0] . '-' . $id_arr[1] . '-' . $id_arr[2]; $_delete = ($_sid > 0 and $_id > 0) ? $db->execute(sprintf("DELETE FROM `db_userlabels` WHERE `lb_id`='%s' AND `usr_id`='%s' AND `lb_for`='%s' LIMIT 1;", $_id, $_sid, $_for)) : null; if ($db->Affected_Rows() > 0) { echo 1; } } echo 0; } /* new label */ public function addNewLabel() { global $class_database, $class_filter, $smarty, $db; $do_insert = 0; if ($_POST) { $smarty->assign('get_from', $class_filter->clr_str($_GET['s'])); $insert_array = array( "usr_id" => intval($_SESSION['USER_ID']), "lb_name" => $class_filter->clr_str($_POST['add_new_label']), "lb_for" => $class_filter->clr_str($_GET['s'])); $do_insert = ($_POST['add_new_label'] != '' and $class_database->doInsert('db_userlabels', $insert_array)) ? $db->Insert_ID() : 0; } echo $do_insert; } /* go to compose and process any message */ public function composeMessage() { global $smarty; if ($_POST and $_GET['r'] != 1) { $process = $_GET['f'] == '' ? self::processMessage() : ($_GET['f'] == 'comm' ? self::processComment() : null); $notify = ($process != '') ? VGenerate::noticeWrap(array($process[0], $process[1], VGenerate::noticeTpl('', $process[0], $process[1]))) : null; } $smarty->display('tpl_frontend/tpl_msg/tpl_compose.tpl'); echo ''; } /* mark message as read */ public function readMessage() { global $db, $class_filter; $mark_id = ($_GET['s'] == 'file-menu-entry7') ? $class_filter->clr_str($_POST['section_subject_value']) : intval($_POST['section_subject_value']); if ($_GET['s'] == 'message-menu-entry3') { $mark_db = $mark_id > 0 ? $db->execute(sprintf("UPDATE `db_channelcomments` SET `c_seen`='1' WHERE `c_id`='%s' AND `usr_id`='%s' LIMIT 1;", $mark_id, intval($_SESSION['USER_ID']))) : null; } elseif ($_GET['s'] == 'file-menu-entry7') { $type = substr($class_filter->clr_str($_GET['for']), 5); $mark_db = $db->execute(sprintf("UPDATE `db_%scomments` SET `c_seen`='1' WHERE `c_key`='%s' LIMIT 1;", $type, $mark_id)); } else { $mark_db = $mark_id > 0 ? $db->execute(sprintf("UPDATE `db_messaging` SET `msg_seen`='1' WHERE `msg_id`='%s' AND `msg_to`='%s' AND `msg_seen`='0' LIMIT 1;", $mark_id, intval($_SESSION['USER_ID']))) : null; } } /* css class to reflect new messages */ public function newMessageClass($msg_id) { global $class_database, $class_filter; $_s = substr($class_filter->clr_str($_GET['s']), 0, 19); switch ($_s) { case "message-menu-entry2": return $class = $class_database->singleFieldValue('db_messaging', 'msg_seen', 'msg_id', $msg_id) == 0 ? ' new-message' : null; break; case "message-menu-entry3": return $class = $class_database->singleFieldValue('db_channelcomments', 'c_seen', 'c_id', $msg_id) == 0 ? ' new-message' : null; break; } } /* get id of current label */ public function getLabelID() { global $class_filter; $get_array = explode('-', $class_filter->clr_str($_GET['s'])); return $sub_id = substr($get_array[3], 3); } /* name for current label */ public function getLabelName() { global $db; $r = $db->execute(sprintf("SELECT `lb_name` FROM `db_userlabels` WHERE `usr_id`='%s' AND `lb_for`='%s' AND `lb_id`='%s' LIMIT 1;", intval($_SESSION['USER_ID']), self::currentMenuEntry($_GET['s']), self::getLabelID())); return $r->fields['lb_name']; } /* renaming label */ public function labelRename() { global $db, $class_filter; $_s = $class_filter->clr_str($_GET['s']); $new_label = $class_filter->clr_str($_POST['current_label_name']); $rename = $new_label != '' ? $db->execute(sprintf("UPDATE `db_userlabels` SET `lb_name`='%s' WHERE `usr_id`='%s' AND `lb_for`='%s' AND `lb_id`='%s' LIMIT 1;", $new_label, intval($_SESSION['USER_ID']), self::currentMenuEntry($_s), self::getLabelID())) : null; echo $return = $db->Affected_Rows() > 0 ? VGenerate::declareJS('$("#' . $_s . '").addClass("menu-panel-entry-active");') : null; } /* selected menu entry */ public function currentMenuEntry($for) { global $smarty, $class_filter; $for = $class_filter->clr_str($for); $get_array = explode('-', $for); $new_label = $smarty->assign("show_new_label", (count($get_array) > 3 ? 'no' : 'yes')); return $menu_entry = $get_array[0] . '-' . $get_array[1] . '-' . $get_array[2]; } /* build query for non label entries */ public function noLabelQuery($lb_s = '') { global $db, $cfg, $class_filter; if ($cfg['custom_labels'] == 0) {return false;} $lb_fld = array(); $lb_for = $lb_s != '' ? explode("-", $class_filter->clr_str($lb_s)) : ($_GET['s'] != '' ? explode("-", $class_filter->clr_str($_GET['s'])) : null); if (count($lb_for) == 3) { $lb_msg = $db->execute(sprintf("SELECT `lb_ids` FROM `db_userlabels` WHERE `lb_for`='%s' AND `usr_id`='%s' AND `lb_active`='1' AND `lb_ids`!='';", ($lb_s != '' ? $lb_s : self::currentMenuEntry($_GET['s'])), intval($_SESSION['USER_ID']))); $lb_fld = $lb_msg->getrows(); } if (count($lb_fld) > 0 and count($lb_for) == 3) { foreach ($lb_fld as $lb_msg_arr) { $lb_msg_array = unserialize($lb_msg_arr[0]); foreach ($lb_msg_array as $lb_msg_id) { $query .= "`msg_id` != '" . $lb_msg_id . "' AND "; } } return " AND (" . substr($query, 0, -5) . ") "; } } /* queries for inbox/outbox/spam */ public function dbListQuery() { switch (self::currentMenuEntry($_GET['s'])) { case "message-menu-entry2":$db_add_query = "WHERE `msg_to`='" . intval($_SESSION['USER_ID']) . "' AND `msg_active`='1' AND `msg_inbox_deleted`='0' AND `msg_invite`='0'" . self::noLabelQuery(); $div_count = 'message-menu-entry6'; break; case "message-menu-entry3":$db_add_query = "WHERE `usr_id`='" . intval($_SESSION['USER_ID']) . "'"; break; case "message-menu-entry4":$db_add_query = "WHERE `msg_to`='" . intval($_SESSION['USER_ID']) . "' AND `msg_active`='1' AND `msg_invite`='1'"; $div_count = 'message-menu-entry4'; break; case "message-menu-entry5":$db_add_query = "WHERE `msg_from`='" . intval($_SESSION['USER_ID']) . "' AND `msg_active`='1' AND `msg_outbox_deleted`='0' AND `msg_invite`='0'" . self::noLabelQuery(); $div_count = 'message-menu-entry5'; break; case "message-menu-entry6":$db_add_query = "WHERE `msg_to`='" . intval($_SESSION['USER_ID']) . "' AND `msg_active`='0' AND `msg_active_deleted`='0' AND `msg_invite`='0'" . self::noLabelQuery(); $div_count = 'message-menu-entry2'; break; } return $db_add_query; } /* labels, inc. friends and blocked */ public function sectionLabel($id) { global $cfg, $class_filter, $db, $smarty, $language; $lb = $db->execute(sprintf("SELECT `lb_id`, `lb_name` FROM `db_userlabels` WHERE `usr_id`='%s' AND `lb_for`='%s' AND `lb_active`='1' ORDER BY `lb_id` ASC;", intval($_SESSION['USER_ID']), $id)); $lb_array = $lb->getrows(); $lb_count = count($lb_array); if ($lb_count > 0 or $id == 'message-menu-entry7') { $lb_js = '$(document).ready(function() { ' . $lb_j . ' $(".menu-panel-entry").mouseover(function() { var this_id = $("#"+$(this).attr("id")+" a.no-display").attr("id"); $("#"+this_id).removeClass("no-display").addClass("display"); }).mouseout(function(){ var this_id = $("#"+$(this).attr("id")+" a.display").attr("id"); $("#"+this_id).removeClass("display").addClass("no-display"); }); });'; $html = '