function prepare_items() { global $wpdb, $blog_id; $columns = $this->get_columns(); $hidden = $this->get_hidden_columns(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array($columns, $hidden, $sortable); $per_page = 20; $per_page = get_user_meta(get_current_user_id(), 'chat_page_chat_session_logs_per_page', true); if (!$per_page || $per_page < 1) { $per_page = 20; } $current_page = $this->get_pagenum(); $page_offset = ($current_page - 1) * intval($per_page); if (is_multisite() && is_network_admin()) { $_blog_id = 0; } else { $_blog_id = $blog_id; } if (!empty($this->filters['search']) || $this->filters['session_type'] == "private") { $sql_str_filters = ''; $sql_str_filters .= " AND (blog_id=" . $_blog_id . " OR blog_id=0) "; if (isset($this->filters['search']) && !empty($this->filters['search'])) { $sql_str_filters .= " AND `message` like '%" . $this->filters['search'] . "%' "; } if (isset($this->filters['chat_id']) && !empty($this->filters['chat_id'])) { $sql_str_filters .= " AND `chat_id`='" . $this->filters['chat_id'] . "' "; } if (isset($this->filters['session_type']) && !empty($this->filters['session_type'])) { if ($this->filters['session_type'] == "private") { global $current_user; $sql_str_filters .= " AND session_type='" . $this->filters['session_type'] . "' AND `auth_hash`='" . md5($current_user->ID) . "' "; } else { $sql_str_filters .= " AND `session_type`='" . $this->filters['session_type'] . "' "; } } else { $sql_str_filters .= " AND `session_type`!='private' "; } if (isset($this->filters['start']) && !empty($this->filters['start'])) { $sql_str_filters .= " AND `timestamp` >='" . $this->filters['start'] . " 00:00:00' "; } if (isset($this->filters['end']) && !empty($this->filters['end'])) { $sql_str_filters .= " AND `timestamp` <='" . $this->filters['end'] . " 23:59:59' "; } if (isset($this->filters['status']) && !empty($this->filters['status'])) { if ($this->filters['status'] == "hidden") { $sql_str_filters .= " AND `deleted` ='yes' "; } else { $sql_str_filters .= " AND `archived` ='" . $this->filters['status'] . "' "; } } $sql_str = "SELECT DISTINCT log_id FROM " . WPMUDEV_Chat::tablename('message') . " WHERE 1=1 "; $sql_str .= $sql_str_filters; $log_ids = $wpdb->get_col($sql_str); if ($log_ids && is_array($log_ids) && count($log_ids)) { $total_items = count($log_ids); $sql_str = "SELECT log.* FROM " . WPMUDEV_Chat::tablename('log') . " as log "; $sql_str .= " WHERE 1=1 "; $sql_str .= " AND id IN (" . implode(',', $log_ids) . ")"; $sql_str .= " ORDER BY log.start DESC LIMIT " . $page_offset . ", " . $per_page; $items = $wpdb->get_results($sql_str); } } else { $sql_str = "SELECT count(*) as total_items FROM " . WPMUDEV_Chat::tablename('log') . " as log"; $sql_str .= " WHERE 1=1 "; $sql_str_filters = ''; $sql_str_filters .= " AND blog_id=" . $_blog_id . " "; if (isset($this->filters['chat_id']) && !empty($this->filters['chat_id'])) { $sql_str_filters .= " AND chat_id='" . $this->filters['chat_id'] . "' "; } if (isset($this->filters['session_type']) && !empty($this->filters['session_type'])) { $sql_str_filters .= " AND session_type='" . $this->filters['session_type'] . "' "; } if (isset($this->filters['start']) && !empty($this->filters['start'])) { $sql_str_filters .= " AND start >='" . $this->filters['start'] . " 00:00:00' "; } if (isset($this->filters['end']) && !empty($this->filters['end'])) { $sql_str_filters .= " AND end <='" . $this->filters['end'] . " 23:59:59' "; } if (isset($this->filters['status']) && !empty($this->filters['status'])) { if ($this->filters['status'] == "hidden") { $sql_str_filters .= " AND `deleted` ='yes' "; } else { $sql_str_filters .= " AND `archived` ='" . $this->filters['status'] . "' "; } } $sql_str .= $sql_str_filters; //echo "sql_str_filters=[". $sql_str_filters ."]<br />"; //echo "sql_str=[". $sql_str ."]<br />"; $result = $wpdb->get_row($sql_str); if ($result->total_items) { $total_items = $result->total_items; } else { $total_items = 0; } //echo "total_items[". $total_items ."]<br />"; $sql_str = "SELECT log.* FROM " . WPMUDEV_Chat::tablename('log') . " as log "; $sql_str .= " WHERE 1=1 AND log.session_type != 'private' "; $sql_str .= $sql_str_filters; $sql_str .= " ORDER BY log.start DESC LIMIT " . $page_offset . ", " . $per_page; $items = $wpdb->get_results($sql_str); } if (isset($items) && count($items)) { $this->items = $items; $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => intval($per_page), 'total_pages' => ceil(intval($total_items) / intval($per_page)))); } }
function prepare_items() { global $wpdb, $blog_id; $columns = $this->get_columns(); $hidden = $this->get_hidden_columns(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array($columns, $hidden, $sortable); $current_page = $this->get_pagenum(); $per_page = get_user_meta(get_current_user_id(), 'chat_page_chat_session_messages_per_page', true); if (!$per_page || $per_page < 1) { $per_page = 20; } $current_page = $this->get_pagenum(); $page_offset = ($current_page - 1) * intval($per_page); if (empty($this->filters['chat-log-id'])) { return; } //echo "filters<pre>"; print_r($this->filters); echo "</pre>"; //echo "log_item<pre>"; print_r($this->log_item); echo "</pre>"; if (is_multisite() && is_network_admin()) { $_blog_id = 0; } else { $_blog_id = $blog_id; } if ($this->log_item->archived == 'no') { $sql_str = $wpdb->prepare("SELECT * FROM " . WPMUDEV_Chat::tablename('message') . " WHERE blog_id = %d AND chat_id = %s AND log_id=%d", $_blog_id, $this->filters['chat_id'], 0); } else { $sql_str = $wpdb->prepare("SELECT * FROM " . WPMUDEV_Chat::tablename('message') . " WHERE blog_id = %d AND chat_id = %s AND log_id=%d", $_blog_id, $this->filters['chat_id'], $this->filters['chat-log-id']); } if (!empty($this->filters['search'])) { $sql_str .= " AND message like '%" . $this->filters['search'] . "%'"; } if (isset($this->filters['status']) && !empty($this->filters['status'])) { if ($this->filters['status'] == "hidden") { $sql_str .= " AND `deleted` ='yes' "; } else { //$sql_str .= " AND `archived` ='". $this->filters['status']."' "; } } //if ($this->log_item->session_type == "private") { // echo "log_item<pre>"; print_r($this->log_item); echo "</pre>"; //} $sql_str .= " AND `session_type` ='" . $this->log_item->session_type . "' "; $names_array = array(); if (isset($this->filters['moderators']) && !empty($this->filters['moderators'])) { $names_array = array_merge($names_array, array($this->filters['moderators'])); } else { $names_array = array_merge($this->moderator_names, $names_array); } if (isset($this->filters['users']) && !empty($this->filters['users'])) { $names_array = array_merge($names_array, array($this->filters['users'])); } else { $names_array = array_merge($names_array, $this->user_names); } $names_array = array_unique($names_array); //echo "names_array<pre>"; print_r($names_array); echo "</pre>"; //echo "moderator_names<pre>"; print_r($this->moderator_names); echo "</pre>"; if (count($names_array)) { $names_str = ''; foreach ($names_array as $name) { if (!empty($names_str)) { $names_str .= ","; } $names_str .= "'" . $name . "'"; } $sql_str .= " AND name IN(" . $names_str . ") "; } $sql_str .= " ORDER BY timestamp ASC"; //echo "sql_str[". $sql_str ."]<br />"; $items = $wpdb->get_results($sql_str); if ($items) { if (count($items)) { $total_items = count($items); //echo "total_items=[". $total_items ."]<br />"; $this->items = array_slice($items, $per_page * (intval($current_page) - 1), intval($per_page), true); $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => intval($per_page), 'total_pages' => ceil(intval($total_items) / intval($per_page)))); } $total_items = count($items); } }
function chatModerateDelete() { global $wpdb, $blog_id; if (isset($_POST['cid'])) { $chat_id = intval($_POST['cid']); } if (isset($_POST['row_id'])) { $row_id = intval($_POST['row_id']); } if (isset($_POST['moderate_action'])) { $moderate_action = esc_attr($_POST['moderate_action']); } if ($chat_id > 0 && $row_id > 0 && strlen($moderate_action)) { $row_date = date('Y-m-d H:i:s', $row_id); //echo "row_date=[". $row_date ."]<br />"; $sql_str = "SELECT id, archived FROM `" . WPMUDEV_Chat::tablename('message') . "` WHERE blog_id = '" . $blog_id . "' AND chat_id = '" . $chat_id . "' AND timestamp = '" . $row_date . "' LIMIT 1;"; //echo "sql_str=[". $sql_str ."]<br />"; $chat_row = $wpdb->get_row($sql_str); //echo "chat_row<pre>"; print_r($chat_row); echo "</pre>"; if ($chat_row && isset($chat_row->archived)) { $chat_row_archived_new = ''; if ($moderate_action == "delete") { if ($chat_row->archived == "yes") { $chat_row_archived_new = 'yes-deleted'; } else { if ($chat_row->archived == "no") { $chat_row_archived_new = 'no-deleted'; } } } else { if ($moderate_action == "undelete") { if ($chat_row->archived == "yes-deleted") { $chat_row_archived_new = 'yes'; } else { if ($chat_row->archived == "no-deleted") { $chat_row_archived_new = 'no'; } } } } if (strlen($chat_row_archived_new)) { $sql_str = "UPDATE `" . WPMUDEV_Chat::tablename('message') . "` SET archived='" . $chat_row_archived_new . "' WHERE id=" . $chat_row->id . " AND blog_id = '" . $blog_id . "' AND chat_id = '" . $chat_id . "' LIMIT 1;"; //echo "sql_str=[". $sql_str ."]<br />"; $wpdb->get_results($sql_str); echo 1; die; } } } }
function chat_session_get_log_row_id($chat_session) { global $wpdb; $sql_str = $wpdb->prepare("SELECT id FROM " . WPMUDEV_Chat::tablename('log') . " WHERE blog_id = %d AND chat_id = %s AND archived = %s", $chat_session['blog_id'], $chat_session['id'], 'no'); $chat_log = $wpdb->get_row($sql_str); if (empty($chat_log) || !isset($chat_log->id)) { return '0'; } else { return $chat_log->id; } }
function wpmudev_chat_get_active_sessions_users($chat_sessions = array()) { global $wpdb; $chat_sessions_users = array(); foreach ($chat_sessions as $chat_session) { $sql_str = $wpdb->prepare("SELECT count(*) FROM " . WPMUDEV_Chat::tablename('users') . " WHERE chat_id=%s AND blog_id=%d", $chat_session['id'], $chat_session['blog_id']); //echo "sql_str[". $sql_str ."]<br />"; $chat_sessions_users[$chat_session['id']] = $wpdb->get_var($sql_str); } //echo "chat_sessions_users<pre>"; print_r($chat_sessions_users); echo "</pre>"; return $chat_sessions_users; }
function chat_session_logs_messages($table, $action, $ids = array()) { global $wpdb; //echo "table[". $table."] action[". $action ."] ids<pre>"; print_r($ids); echo "</pre>"; $sql_str = ''; switch ($table) { case 'log': if ($action == 'hide') { $sql_str = "UPDATE `" . WPMUDEV_Chat::tablename('log') . "` SET `deleted`='yes' WHERE id IN(" . implode(',', $ids) . ")"; $ret = $wpdb->query($sql_str); } else { if ($action == "unhide") { $sql_str = "UPDATE `" . WPMUDEV_Chat::tablename('log') . "` SET `deleted`='no' WHERE id IN(" . implode(',', $ids) . ")"; $ret = $wpdb->query($sql_str); } else { if ($action == "delete") { $sql_str .= "DELETE FROM `" . WPMUDEV_Chat::tablename('log') . "` WHERE id IN(" . implode(',', $ids) . "); "; $ret = $wpdb->query($sql_str); $sql_str = "DELETE FROM `" . WPMUDEV_Chat::tablename('message') . "` WHERE log_id IN(" . implode(',', $ids) . "); "; $ret = $wpdb->query($sql_str); } } } break; case 'message': if ($action == 'hide') { $sql_str = "UPDATE `" . WPMUDEV_Chat::tablename('message') . "` SET `deleted`='yes' WHERE id IN(" . implode(',', $ids) . ")"; $ret = $wpdb->query($sql_str); } else { if ($action == "unhide") { $sql_str = "UPDATE `" . WPMUDEV_Chat::tablename('message') . "` SET `deleted`='no' WHERE id IN(" . implode(',', $ids) . ")"; $ret = $wpdb->query($sql_str); } else { if ($action == "delete") { $sql_str = "DELETE FROM `" . WPMUDEV_Chat::tablename('message') . "` WHERE id IN(" . implode(',', $ids) . "); "; $ret = $wpdb->query($sql_str); } } } break; default: break; } return true; }