public static function search($s, $per_page = null) { global $wpdb; $model = new MM_Conversation_Model(); if (!empty($s)) { if (!$per_page) { $per_page = mmg()->setting()->per_page; } $paged = mmg()->get('mpaged', 1); $offset = ($paged - 1) * $per_page; $total_pages = ceil(self::count_all() / $per_page); mmg()->global['conversation_total_pages'] = $total_pages; if (is_admin()) { $sql = "SELECT conversation.id FROM wp_mm_conversation conversation\r\n INNER JOIN wp_mm_status mstat ON mstat.conversation_id = conversation.id\r\n INNER JOIN wp_postmeta meta ON meta.meta_key='_conversation_id' AND meta.meta_value = conversation.id\r\n INNER JOIN wp_posts posts ON posts.ID = meta.post_id\r\n INNER JOIN wp_users users ON users.id = posts.post_author\r\n WHERE (posts.post_title LIKE %s OR posts.post_content LIKE %s OR users.user_login LIKE %s) AND site_id=%d\r\n GROUP BY conversation.id LIMIT %d,%d"; $sql = $wpdb->prepare($sql, "%{$s}%", "%{$s}%", "%{$s}%", get_current_blog_id(), $offset, $per_page); } else { $sql = "SELECT conversation.id FROM wp_mm_conversation conversation\r\n INNER JOIN wp_mm_status mstat ON mstat.conversation_id = conversation.id\r\n INNER JOIN wp_postmeta meta ON meta.meta_key='_conversation_id' AND meta.meta_value = conversation.id\r\n INNER JOIN wp_posts posts ON posts.ID = meta.post_id\r\n INNER JOIN wp_users users ON users.id = posts.post_author\r\n WHERE mstat.user_id= %d AND (posts.post_title LIKE %s OR posts.post_content LIKE %s OR users.user_login LIKE %s) AND site_id=%d\r\n GROUP BY conversation.id LIMIT %d,%d"; $sql = $wpdb->prepare($sql, get_current_user_id(), "%{$s}%", "%{$s}%", "%{$s}%", get_current_blog_id(), $offset, $per_page); } $ids = $wpdb->get_col($sql); $ids = array_filter(array_unique($ids)); if (empty($ids)) { return array(); } $models = $model->find_all_by_ids($ids, false, false, 'date_created DESC'); return $models; } else { return self::get_conversation(); } }