| Server IP : 208.122.213.31 / Your IP : 216.73.216.45 Web Server : Apache System : Linux msd6191.mjhst.com 4.18.0-553.137.1.el8_10.x86_64 #1 SMP Wed Jun 24 11:40:24 UTC 2026 x86_64 User : WHMCS_MIA_382 ( 1001) PHP Version : 7.4.33 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/httpd/html/baberankings.com.bak/members/modules/forums/ |
Upload File : |
<?
//get access rights for user
include 'modules/forums/get_rights.php';
// define search array
$search = array();
//packed query?
if ($en['packed'] != '')
$_POST['search'] = unserialize(base64_decode($en['packed']));
//create search query
//get available forums
$forums = array();
if ($_POST['search']['forums'] != 'all') {
list($t,$i) = explode('_',$_POST['search']['forums']);
if ($t == 'g') {
$res = sql_query("SELECT f_id FROM $forumtable WHERE f_group='$i' AND f_visible<='$en[level]'");
} else {
$res = sql_query("SELECT f_id FROM $forumtable WHERE f_id='$i' AND f_visible<='$en[level]'");
}
}
else {
$res = sql_query("SELECT f_id FROM $forumtable WHERE f_visible<='$en[level]'");
}
while ($line = sql_fetch_assoc($res)) $forums[] = $line['f_id'];
//grant rights to unexisting forum if none available
if (count($forums) == 0) $forums[] = -1;
$en['term'] = $term = stripslashes($_POST['search']['q']);
//result threads array
$threads = array();
//search by members?
$users = array();
if (trim($_POST['search']['user']) != '') {
$res = sql_query("SELECT m_id FROM $membtable WHERE m_user='".sql_escape_string(trim($_POST['search']['user']))."'");
if (sql_num_rows($res)>0) {
$line = sql_fetch_assoc($res);
$users[] = $line['m_id'];
} else {
$users[] = 0;
}
}
//by member ID
if ($_POST['search']['userid'] != '') {
$users = array();
$users[] = (int)$_POST['search']['userid'];
}
//get member posts
if (count($users) > 0) {
$res = sql_query("SELECT DISTINCT p_thread FROM $fposttable LEFT JOIN $fthreadtable ON p_thread=t_id WHERE (t_forum = ".implode(' OR t_forum = ',$forums).')'.(count($users) > 0 ? " AND (p_member = ".implode(' OR p_member = ',$users).')' : ''));
while ($line = sql_fetch_assoc($res))
$threads[] = $line['p_thread'];
}
// get by date
if ((int)$_POST['search']['date'] != 0) {
$search[] = 'p_time'.($_POST['search']['date_direction']=="newer" ? '>' : '<').(time() - ($_POST['search']['date'] * 86400));
}
// sorting fields
Switch ($_POST['search']['sort']) {
case 1:
$orderby = 't_last_time';
break;
case 2:
$orderby = 't_name';
break;
case 3:
$orderby = 't_posts';
break;
case 4:
$orderby = 't_views';
break;
case 5:
$orderby = 't_member';
break;
case 6:
$orderby = 't_forum';
break;
default:
$orderby = 't_last_time';
break;
}
// sorting direction
If ($_POST['search']['sort_direction']=="sort_asc") {
$sortDirection = "ASC";
} else {
$sortDirection = "DESC";
}
//find all posts
if ($_POST['search']['posts'] == 'ON') {
//all words
if ($_POST['search']['where'] == 'all') {
$where = " (MATCH (p_text) AGAINST ('".sql_escape_string($term)."')/* OR MATCH (p_title) AGAINST ('".sql_escape_string($term)."') */) ";
}
//phrase
elseif ($_POST['search']['where'] == 'phr') {
$where = " (MATCH (p_text) AGAINST ('\"".sql_escape_string($term)."\"') IN BOOLEAN MODE OR MATCH (p_title) AGAINST ('\"".sql_escape_string($term)."\"') IN BOOLEAN MODE)";
}
//any of the words
else {
$where = " (MATCH (p_text) AGAINST ('".sql_escape_string($term)."') IN BOOLEAN MODE OR MATCH (p_title) AGAINST ('".sql_escape_string($term)."') IN BOOLEAN MODE)";
}
$res = sql_query("SELECT DISTINCT p_thread FROM $fposttable LEFT JOIN $fthreadtable ON p_thread=t_id WHERE ".$where." AND (t_forum = ".implode(' OR t_forum = ',$forums).')');
while ($line = sql_fetch_assoc($res))
$threads[] = $line['p_thread'];
}
//find all threads
if ($_POST['search']['threads'] == 'ON') {
//all words
if ($_POST['search']['where'] == 'all') {
$where = " (MATCH (t_descr) AGAINST ('".sql_escape_string($term)."') OR MATCH (t_name) AGAINST ('".sql_escape_string($term)."'))";
}
//phrase
elseif ($_POST['search']['where'] == 'phr') {
$where = " (MATCH (t_descr) AGAINST ('\"".sql_escape_string($term)."\"') IN BOOLEAN MODE OR MATCH (t_name) AGAINST ('\"".sql_escape_string($term)."\"') IN BOOLEAN MODE)";
}
//any of the words
else {
$where = " (MATCH (t_descr) AGAINST ('".sql_escape_string($term)."') IN BOOLEAN MODE OR MATCH (t_name) AGAINST ('".sql_escape_string($term)."') IN BOOLEAN MODE)";
}
$res = sql_query("SELECT DISTINCT t_id FROM $fthreadtable WHERE ".$where." AND (t_forum = ".implode(' OR t_forum = ',$forums).')');
while ($line = sql_fetch_assoc($res))
$threads[] = $line['t_id'];
}
//new threads?
if ($_POST['search']['new'] == 'ON' && is_array($en['forum_read']) && count($en['forum_read']) >0) {
$unread = array();
foreach($en['forum_read'] as $key => $value)
$unread[] = $key;
$res = sql_query("SELECT DISTINCT t_id FROM $fthreadtable WHERE (t_id=".implode(' OR t_id=',$unread).") AND (t_forum = ".implode(' OR t_forum = ',$forums).')');
while ($line = sql_fetch_assoc($res))
$threads[] = $line['t_id'];
}
// display results as?
if ($_POST['search']['display_as']=='posts') {
$display_as = "LEFT JOIN $fposttable ON t_id=p_thread";
} else {
$display_as = "LEFT JOIN $fposttable ON t_last=p_id";
}
//no thread matches?
if (count($threads) == 0) $threads[] = -1;
$search[] = "(t_id = ".implode(' OR t_id = ',$threads).')';
//make search query
$q = "SELECT * FROM $fthreadtable LEFT JOIN $forumtable ON f_id=t_forum LEFT JOIN $fgrouptable ON g_id=f_group ".$display_as." WHERE ".implode(' AND ',$search).' ORDER BY t_sticky DESC, '.$orderby.' '.$sortDirection;
//process query and create data set
$res = sql_query($q);
$en['pages'] = ceil(sql_num_rows($res)/forum_num_threads);
$en['num_threads'] = sql_num_rows($res);
if ((int)$en['page'] == 0) $en['page'] = 1;
$en['from'] = ($en['page']-1) * forum_num_threads + 1;
$en['to'] = min($en['num_threads'],$en['page'] * forum_num_threads);
$from = min(sql_num_rows($res),($en['page'] - 1) * forum_num_threads);
if (sql_num_rows($res) > 0)
sql_data_seek($res,$from);
$k = 0;
$searchset = array();
while (($line = sql_fetch_assoc($res)) && ++$k <= forum_num_threads)
$searchset[] = $line;
$en['packed'] = base64_encode(serialize($_POST['search']));
//search results
load_template('modules/forums/templates/search_results.tpl');
?>