<?php
// ##############################################################################||
// #
// # PowerBB Version 2.0.0
// # http://www.PBBoard.com
// # Copyright (c) 2009 by Abu.Rakan
// #
// # filename : search.module.php
// #
// ##############################################################################||
(!defined('IN_PowerBB')) ? die() : '';
$CALL_SYSTEM = array();
$CALL_SYSTEM['SEARCH'] = true;
$CALL_SYSTEM['SECTION'] = true;
$CALL_SYSTEM['SUBJECT'] = true;
$CALL_SYSTEM['REPLY'] = true;
$CALL_SYSTEM['GROUP'] = true;
$CALL_SYSTEM['TAG'] = true;
define('COMMON_FILE_PATH',dirname(__FILE__) . '/common.module.php');
include('common.php');
define('CLASS_NAME','PowerBBSearchEngineMOD');
class PowerBBSearchEngineMOD
{
function run()
{
global $PowerBB;
$this->_GetJumpSectionsList();
$option = (isset($PowerBB->_GET['option'])) ? $PowerBB->_GET['option'] : $PowerBB->_POST['option'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$exactname = $PowerBB->functions->CleanVariable($exactname,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$count = $PowerBB->functions->CleanVariable($count,'sql');
/** Show search form **/
if ($PowerBB->_GET['index'])
{
$this->_SearchForm();
}
/** **/
/** Show the results of search **/
elseif ($PowerBB->_GET['start'])
{
$this->_StartSearch();
}
/** **/
elseif($option == '1')
{
$this->_StartSearchAllSection();
}
elseif($option == '2')
{
$this->_StartSearchOneSection();
}
elseif($option == '3')
{
$this->_StartSearchUsernameSubject();
}
elseif($option == '4')
{
$this->_StartSearchUsernameReply();
}
elseif($option == '5')
{
$this->_StartSearchTag();
}
/** **/
else
{
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['path_not_true']);
}
}
/**
* Get the list of sections to show it in a list , and show search form
*/
function _SearchForm()
{
global $PowerBB;
$PowerBB->functions->ShowHeader();
if (!$PowerBB->_CONF['group_info']['search_allow'])
{
if (!$PowerBB->_CONF['member_permission'])
{
$PowerBB->template->display('login');
$PowerBB->functions->error_stop();
}
else
{
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_online']);
}
}
//////////
$SecArr = array();
$SecArr['get_from'] = 'db';
$SecArr['proc'] = array();
$SecArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$SecArr['order'] = array();
$SecArr['order']['field'] = 'sort';
$SecArr['order']['type'] = 'ASC';
$SecArr['where'] = array();
$SecArr['where'][0]['name'] = 'parent';
$SecArr['where'][0]['oper'] = '=';
$SecArr['where'][0]['value'] = '0';
$SecArr['where'][1] = array();
$SecArr['where'][1]['con'] = 'AND';
$SecArr['where'][1]['name'] = 'sec_section';
$SecArr['where'][1]['oper'] = '<>';
$SecArr['where'][1]['value'] = '1';
$SecArr['where'][2] = array();
$SecArr['where'][2]['con'] = 'AND';
$SecArr['where'][2]['name'] = 'hide_subject';
$SecArr['where'][2]['oper'] = '<>';
$SecArr['where'][2]['value'] = '1';
// Get main sections
$cats = $PowerBB->section->GetSectionsList($SecArr);
// We will use forums_list to store list of forums which will view in main page
$PowerBB->_CONF['template']['foreach']['forums_list'] = array();
// Loop to read the information of main sections
foreach ($cats as $cat)
{
// Get the groups information to know view this section or not
$groups = unserialize(base64_decode($cat['sectiongroup_cache']));
if (is_array($groups[$PowerBB->_CONF['group_info']['id']]))
{
if ($groups[$PowerBB->_CONF['group_info']['id']]['view_section'])
{
$PowerBB->_CONF['template']['foreach']['forums_list'][$cat['id'] . '_m'] = $cat;
}
}
unset($groups);
if (!empty($cat['forums_cache']))
{
$forums = unserialize(base64_decode($cat['forums_cache']));
foreach ($forums as $forum)
{
if (is_array($forum['groups'][$PowerBB->_CONF['group_info']['id']]))
{
if ($forum['groups'][$PowerBB->_CONF['group_info']['id']]['view_section'])
{
//////////
// Get the first-level sub forums as a _link_ and store it in $forum['sub']
$forum['is_sub'] = 0;
$forum['sub'] = '';
if (!empty($forum['forums_cache']))
{
$subs = unserialize(base64_decode($forum['forums_cache']));
if (is_array($subs))
{
foreach ($subs as $sub)
{
if (is_array($sub['groups'][$PowerBB->_CONF['group_info']['id']]))
{
if ($sub['groups'][$PowerBB->_CONF['group_info']['id']]['view_section'])
{
if (!$forum['is_sub'])
{
$forum['is_sub'] = 1;
}
$forum['sub'] .= ('<option value="' .$sub['id'] . '">---' . $sub['title'] . '</option>');
}
}
}
}
}
$PowerBB->_CONF['template']['foreach']['forums_list'][$forum['id'] . '_f'] = $forum;
}
} // end if is_array
} // end foreach ($forums)
} // end !empty($forums_cache)
} // end foreach ($cats)
//////////
$PowerBB->template->display('search');
////////
// Where is the member now?
if ($PowerBB->_CONF['member_permission'])
{
$UpdateOnline = array();
$UpdateOnline['field'] = array();
$UpdateOnline['field']['user_location'] = ( $PowerBB->_CONF['template']['lang']['search_in_Forum'].'<a href="index.php?page=search&index=1">' .$PowerBB->_CONF['template']['lang']['Search_Engine'].'</a>');
$UpdateOnline['where'] = array('username',$PowerBB->_CONF['member_row']['username']);
$update = $PowerBB->online->UpdateOnline($UpdateOnline);
}
//////////
$PowerBB->functions->GetFooter();
}
function __GetGroup()
{
global $PowerBB;
$section = (isset($PowerBB->_GET['section'])) ? $PowerBB->_GET['section'] : $PowerBB->_POST['section'];
/** Get section's group information and make some checks **/
$SecGroupArr = array();
$SecGroupArr['where'] = array();
$SecGroupArr['where'][0] = array();
$SecGroupArr['where'][0]['name'] = 'section_id';
$SecGroupArr['where'][0]['value'] = $section;
$SecGroupArr['where'][1] = array();
$SecGroupArr['where'][1]['con'] = 'AND';
$SecGroupArr['where'][1]['name'] = 'group_id';
$SecGroupArr['where'][1]['value'] = $PowerBB->_CONF['group_info']['id'];
// Finally get the permissions of group
$this->SectionGroup = $PowerBB->group->GetSectionGroupInfo($SecGroupArr);
$PowerBB->template->assign('section_group',$this->SectionGroup);
}
/**
* Get the results of search one section
*/
function _StartSearch()
{
global $PowerBB;
$flood_search = ($PowerBB->_CONF['member_row']['lastsearch_time'] - time() + $PowerBB->_CONF['info_row']['flood_search']);
if ((time() - $PowerBB->_CONF['info_row']['flood_search']) <= $PowerBB->_CONF['member_row']['lastsearch_time'])
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['flood_search1']. ' ' .$flood_search . ' ' .$PowerBB->_CONF['template']['lang']['flood_search2']);
}
else
{
$keyword = (isset($PowerBB->_GET['keyword'])) ? $PowerBB->_GET['keyword'] : $PowerBB->_POST['keyword'];
$username = (isset($PowerBB->_GET['username'])) ? $PowerBB->_GET['username'] : $PowerBB->_POST['username'];
$tag = (isset($PowerBB->_GET['tag'])) ? $PowerBB->_GET['tag'] : $PowerBB->_POST['tag'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$exactname = $PowerBB->functions->CleanVariable($exactname,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$count = $PowerBB->functions->CleanVariable($count,'sql');
if (!$PowerBB->_POST['ajax'])
{
if (!$keyword And !$username And !$tag)
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['Please_enter_the_word_search']);
}
}
else
{
/*
$this->_StartSearchAllSection();
$this->_StartSearchOneSection();
$this->_StartSearchUsernameSubject();
$this->_StartSearchUsernameReply();
$this->_StartSearchTag();
*/
}
$characters >= '1';
if (isset($keyword{$characters}))
{
$this->_StartSearchKeyword();
}
if (isset($username{$characters}))
{
$this->_StartSearchUser();
}
if (isset($tag{$characters}))
{
$this->_SearchTag();
}
$MemberArr = array();
$MemberArr['field'] = array();
$MemberArr['field']['lastsearch_time'] = $PowerBB->_CONF['now'];
$MemberArr['where'] = array('id',$PowerBB->_CONF['member_row']['id']);
$UpdateMember = $PowerBB->member->UpdateMember($MemberArr);
$PowerBB->functions->GetFooter();
}
}
function _StartSearchKeyword()
{
global $PowerBB;
$keyword = (isset($PowerBB->_GET['keyword'])) ? $PowerBB->_GET['keyword'] : $PowerBB->_POST['keyword'];
$section = (isset($PowerBB->_GET['section'])) ? $PowerBB->_GET['section'] : $PowerBB->_POST['section'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$search_only = (isset($PowerBB->_GET['search_only'])) ? $PowerBB->_GET['search_only'] : $PowerBB->_POST['search_only'];
$option = (isset($PowerBB->_GET['option'])) ? $PowerBB->_GET['option'] : $PowerBB->_POST['option'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'intval');
$option = $PowerBB->functions->CleanVariable($option,'intval');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'trim');
$section = $PowerBB->functions->CleanVariable($section,'trim');
if ($PowerBB->section->IsSection(array('where' => array('sec_section','1'))))
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>0");
}
else
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>1");
}
if (!isset($keyword{$PowerBB->_CONF['info_row']['characters_keyword_search']}))
{
$PowerBB->functions->ShowHeader();
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['characters_keyword_search'],$stop);
}
if ($username)
{
$this->_StartSearchUser();
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
//////////
if ($section == 'all')
{
if ($search_only == '1')
{
$subject_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE text LIKE '%$keyword%' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
if ($subject_nm > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=1&keyword=' . $keyword . '&search_only=1&section=all&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
if ($search_only == '2')
{
$reply_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['reply'] . " WHERE text LIKE '%$keyword%' AND delete_topic<>'1' AND review_reply<>'1'"));
if ($reply_nm > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=1&keyword=' . $keyword . '&search_only=2&section=all&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
if ($search_only == '3')
{
$subject_title = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE text LIKE '%$keyword%' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
if ($subject_title > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=1&keyword=' . $keyword . '&search_only=3&section=all&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
}
else
{
if ($search_only == '1')
{
$subject_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE text LIKE '%$keyword%' AND section = '$section' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
if ($subject_nm > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=2&keyword=' . $keyword . '&search_only=1&section=' . $section . '&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
if ($search_only == '2')
{
$reply_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['reply'] . " WHERE text LIKE '%$keyword%' AND section = '$section' AND delete_topic<>'1' AND review_reply<>'1'"));
if ($reply_nm > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=2&keyword=' . $keyword . '&search_only=2&section=' . $section . '&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
if ($search_only == '3')
{
$subject_title = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE title LIKE '%$keyword%' AND section = '$section' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
if ($subject_title > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=2&keyword=' . $keyword . '&search_only=3&section=' . $section . '&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
}
}
function _StartSearchUser()
{
global $PowerBB;
$keyword = (isset($PowerBB->_GET['keyword'])) ? $PowerBB->_GET['keyword'] : $PowerBB->_POST['keyword'];
$username = (isset($PowerBB->_GET['username'])) ? $PowerBB->_GET['username'] : $PowerBB->_POST['username'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$exactname = (isset($PowerBB->_GET['exactname'])) ? $PowerBB->_GET['exactname'] : $PowerBB->_POST['exactname'];
$starteronly = (isset($PowerBB->_GET['starteronly'])) ? $PowerBB->_GET['starteronly'] : $PowerBB->_POST['starteronly'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$exactname = $PowerBB->functions->CleanVariable($exactname,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$count = $PowerBB->functions->CleanVariable($count,'sql');
if ($PowerBB->section->IsSection(array('where' => array('sec_section','1'))))
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>0");
}
else
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>1");
}
if (empty($username))
{
$PowerBB->functions->ShowHeader();
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['Please_write_the_name_of_the_member'],$stop);
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
//////////
if ($starteronly == '0')
{
$username_subject_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE writer LIKE '$username' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
if ($username_subject_nm > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
if ($exactname)
{
$PowerBB->functions->redirect('index.php?page=search&option=3&username=' . $username . '&starteronly=0&section=all&exactname=' . $exactname . '&sort_order='.$sort_order);
}
else
{
$PowerBB->functions->redirect('index.php?page=search&option=3&username=' . $username . '&starteronly=0&section=all&sort_order='.$sort_order);
}
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
elseif ($starteronly == '1')
{
$forum_not = $PowerBB->_CONF['info_row']['last_subject_writer_not_in'];
$username_reply_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['reply'] . " WHERE writer = '$username' AND section not in (" .$forum_not. ") AND delete_topic<>1 AND review_reply<>1"));
if ($username_reply_nm > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=4&username=' . $username . '&starteronly=0&section=all&exactname=' . $exactname . '&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
}
function _SearchTag()
{
global $PowerBB;
$tag = (isset($PowerBB->_GET['tag'])) ? $PowerBB->_GET['tag'] : $PowerBB->_POST['tag'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$exactname = $PowerBB->functions->CleanVariable($exactname,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$count = $PowerBB->functions->CleanVariable($count,'sql');
if (empty($tag))
{
$PowerBB->functions->ShowHeader();
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['Please_write_tag_word'],$stop);
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
//////////
$TotalArr = array();
$TotalArr['where'] = array('tag',$tag);
$tag_nm = $PowerBB->tag->GetSubjectNumber($TotalArr);
if ($tag_nm > '0')
{
$PowerBB->functions->msg($PowerBB->_CONF['template']['lang']['Search_successful']);
$PowerBB->functions->redirect('index.php?page=search&option=5&tag=' . $tag . '&sort_order='.$sort_order);
}
else
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
}
function _StartSearchAllSection()
{
global $PowerBB;
$keyword = (isset($PowerBB->_GET['keyword'])) ? $PowerBB->_GET['keyword'] : $PowerBB->_POST['keyword'];
$section = (isset($PowerBB->_GET['section'])) ? $PowerBB->_GET['section'] : $PowerBB->_POST['section'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$search_only = (isset($PowerBB->_GET['search_only'])) ? $PowerBB->_GET['search_only'] : $PowerBB->_POST['search_only'];
$option = (isset($PowerBB->_GET['option'])) ? $PowerBB->_GET['option'] : $PowerBB->_POST['option'];
$count = (isset($PowerBB->_GET['count'])) ? $PowerBB->_GET['count'] : $PowerBB->_POST['count'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$count = $PowerBB->functions->CleanVariable($count,'intval');
$search_only = $PowerBB->functions->CleanVariable($search_only,'intval');
$option = $PowerBB->functions->CleanVariable($option,'intval');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'trim');
if ($section != 'all'
and $section != is_numeric($section))
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($sort_order != 'DESC'
and $sort_order != 'ASC')
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($PowerBB->section->IsSection(array('where' => array('sec_section','1'))))
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>0");
}
else
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>1");
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
$sec = ' AND section = ';
if ($search_only == '1')
{
$subject_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE text LIKE '%$keyword%' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
$PowerBB->template->assign('nm',$subject_nm);
$SubjectArr = array();
$SubjectArr['where'] = array();
$SubjectArr['where'][0] = array();
$SubjectArr['where'][0]['name'] = 'text';
$SubjectArr['where'][0]['oper'] = 'LIKE';
$SubjectArr['where'][0]['value'] = '%' .$keyword .'%';
$SubjectArr['where'][1] = array();
$SubjectArr['where'][1]['con'] = 'AND';
$SubjectArr['where'][1]['name'] = 'review_subject<>1 AND sec_subject<>1 AND delete_topic';
$SubjectArr['where'][1]['oper'] = '<>';
$SubjectArr['where'][1]['value'] = '1';
$SubjectArr['order'] = array();
$SubjectArr['order']['field'] = 'id';
$SubjectArr['order']['type'] = $sort_order;
$SubjectArr['proc'] = array();
// Ok Mr.XSS go to hell !
$SubjectArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$SubjectArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$SubjectArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($subject_nm == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$SubjectArr['pager'] = array();
$SubjectArr['pager']['total'] = $subject_nm;
if ($subject_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$SubjectArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$SubjectArr['pager']['perpage'] = $subject_nm;
}
$SubjectArr['pager']['count'] = $count;
$SubjectArr['pager']['location'] = 'index.php?page=search&option=1&keyword=' . $keyword . '&search_only=1&section=all&sort_order='.$sort_order;
$SubjectArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['SubjectList'] = $PowerBB->subject->GetSubjectList($SubjectArr);
$PowerBB->_CONF['template']['PagerLocation'] = $SubjectArr['pager']['location'];
}
if ($search_only == '2')
{
$reply_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['reply'] . " WHERE text LIKE '%$keyword%' AND delete_topic<>'1' AND review_reply<>'1'"));
$PowerBB->template->assign('nm',$reply_nm);
$ReplyArr = array();
$ReplyArr['where'] = array();
$ReplyArr['where'][0] = array();
$ReplyArr['where'][0]['name'] = 'text';
$ReplyArr['where'][0]['oper'] = 'LIKE';
$ReplyArr['where'][0]['value'] = '%' .$keyword .'%';
$ReplyArr['order'] = array();
$ReplyArr['order']['field'] = 'id';
$ReplyArr['order']['type'] = $sort_order;
$ReplyArr['where'][1] = array();
$ReplyArr['where'][1]['con'] = 'AND';
$ReplyArr['where'][1]['name'] = 'review_reply<>1 AND delete_topic';
$ReplyArr['where'][1]['oper'] = '<>';
$ReplyArr['where'][1]['value'] = '1';
$ReplyArr['proc'] = array();
// Ok Mr.XSS go to hell !
$ReplyArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$ReplyArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$ReplyArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($reply_nm == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$ReplyArr['pager'] = array();
$ReplyArr['pager']['total'] = $reply_nm ;
if ($reply_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$ReplyArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$ReplyArr['pager']['perpage'] = $reply_nm;
}
$ReplyArr['pager']['count'] = $count;
$ReplyArr['pager']['location'] = 'index.php?page=search&option=1&keyword=' . $keyword . '&search_only=2&section=all&sort_order='.$sort_order;
$ReplyArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['ReplyList'] = $PowerBB->reply->GetReplyList($ReplyArr);
$PowerBB->_CONF['template']['PagerLocation'] = $ReplyArr['pager']['location'];
}
if ($search_only == '3')
{
$subject_title = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE title LIKE '%$keyword%' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
$PowerBB->template->assign('nm',$subject_title);
$SubjectTitleArr = array();
$SubjectTitleArr['where'] = array();
$SubjectTitleArr['where'][0] = array();
$SubjectTitleArr['where'][0]['name'] = 'title';
$SubjectTitleArr['where'][0]['oper'] = 'LIKE';
$SubjectTitleArr['where'][0]['value'] = '%' .$keyword .'%';
$SubjectTitleArr['where'][1] = array();
$SubjectTitleArr['where'][1]['con'] = 'AND';
$SubjectTitleArr['where'][1]['name'] = 'review_subject<>1 AND sec_subject<>1 AND delete_topic';
$SubjectTitleArr['where'][1]['oper'] = '<>';
$SubjectTitleArr['where'][1]['value'] = '1';
$SubjectTitleArr['order'] = array();
$SubjectTitleArr['order']['field'] = 'id';
$SubjectTitleArr['order']['type'] = $sort_order;
$SubjectTitleArr['proc'] = array();
// Ok Mr.XSS go to hell !
$SubjectTitleArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$SubjectTitleArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$SubjectTitleArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($subject_title == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$SubjectTitleArr['pager'] = array();
$SubjectTitleArr['pager']['total'] = $subject_title;
if ($subject_title > $PowerBB->_CONF['info_row']['perpage'])
{
$SubjectTitleArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$SubjectTitleArr['pager']['perpage'] = $subject_title;
}
$SubjectTitleArr['pager']['count'] = $count;
$SubjectTitleArr['pager']['location'] = 'index.php?page=search&option=1&keyword=' . $keyword . '&search_only=3&section=all&sort_order='.$sort_order;
$SubjectTitleArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['SubjectTitleList'] = $PowerBB->subject->GetSubjectList($SubjectTitleArr);
$PowerBB->_CONF['template']['PagerLocation'] = $SubjectTitleArr['pager']['location'];
}
//////////
if ($subject_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
if ($subject_title > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
if ($reply_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
$PowerBB->template->assign('keyword',$keyword);
$PowerBB->template->display('search_results_all');
if ($PowerBB->_CONF['info_row']['ajax_search'])
{
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->GetFooter();
}
}
else
{
$PowerBB->functions->GetFooter();
}
}
function _StartSearchOneSection()
{
global $PowerBB;
$keyword = (isset($PowerBB->_GET['keyword'])) ? $PowerBB->_GET['keyword'] : $PowerBB->_POST['keyword'];
$section = (isset($PowerBB->_GET['section'])) ? $PowerBB->_GET['section'] : $PowerBB->_POST['section'];
$username = (isset($PowerBB->_GET['username'])) ? $PowerBB->_GET['username'] : $PowerBB->_POST['username'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$search_only = (isset($PowerBB->_GET['search_only'])) ? $PowerBB->_GET['search_only'] : $PowerBB->_POST['search_only'];
$count = (isset($PowerBB->_GET['count'])) ? $PowerBB->_GET['count'] : $PowerBB->_POST['count'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$exactname = $PowerBB->functions->CleanVariable($exactname,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$count = $PowerBB->functions->CleanVariable($count,'intval');
$search_only = $PowerBB->functions->CleanVariable($search_only,'intval');
$option = $PowerBB->functions->CleanVariable($option,'intval');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'trim');
if ($section != 'all'
and $section != is_numeric($section))
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($sort_order != 'DESC'
and $sort_order != 'ASC')
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
$sec = ' AND section = ';
if ($search_only == '1')
{
$subject_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE text LIKE '%$keyword%' AND section = '$section' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
$PowerBB->template->assign('nm',$subject_nm);
$SubjectOneArr = array();
$SubjectOneArr['where'] = array();
$SubjectOneArr['where'][0] = array();
$SubjectOneArr['where'][0]['name'] = 'text LIKE ';
$SubjectOneArr['where'][0]['oper'] = "'".'%' .$keyword .'%'."' $sec";
$SubjectOneArr['where'][0]['value'] = $section;
$SubjectOneArr['where'][1] = array();
$SubjectOneArr['where'][1]['con'] = 'AND';
$SubjectOneArr['where'][1]['name'] = 'review_subject<>1 AND sec_subject<>1 AND delete_topic';
$SubjectOneArr['where'][1]['oper'] = '<>';
$SubjectOneArr['where'][1]['value'] = '1';
$SubjectOneArr['order'] = array();
$SubjectOneArr['order']['field'] = 'id';
$SubjectOneArr['order']['type'] = $sort_order;
$SubjectOneArr['proc'] = array();
$SubjectOneArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$SubjectOneArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$SubjectOneArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($subject_nm == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$SubjectOneArr['pager'] = array();
$SubjectOneArr['pager']['total'] = $subject_nm;
if ($subject_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$SubjectOneArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$SubjectOneArr['pager']['perpage'] = $subject_nm;
}
$SubjectOneArr['pager']['count'] = $count;
$SubjectOneArr['pager']['location'] = 'index.php?page=search&option=2&keyword=' . $keyword . '&search_only=1&section=' . $section . '&sort_order='.$sort_order;
$SubjectOneArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['SubjectListOne'] = $PowerBB->subject->GetSubjectList($SubjectOneArr);
$PowerBB->_CONF['template']['PagerLocation'] = $SubjectOneArr['pager']['location'];
}
if ($search_only == '2')
{
$reply_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['reply'] . " WHERE text LIKE '%$keyword%' AND section = '$section' AND delete_topic<>'1' AND review_reply<>'1'"));
$PowerBB->template->assign('nm',$reply_nm);
$ReplyOneArr = array();
$ReplyOneArr['where'] = array();
$ReplyOneArr['where'][0] = array();
$ReplyOneArr['where'][0]['name'] = 'text LIKE ';
$ReplyOneArr['where'][0]['oper'] = "'".'%' .$keyword .'%'."' $sec";
$ReplyOneArr['where'][0]['value'] = $section;
$ReplyOneArr['where'][1] = array();
$ReplyOneArr['where'][1]['con'] = 'AND';
$ReplyOneArr['where'][1]['name'] = 'review_reply<>1 AND delete_topic';
$ReplyOneArr['where'][1]['oper'] = '<>';
$ReplyOneArr['where'][1]['value'] = '1';
$ReplyOneArr['order'] = array();
$ReplyOneArr['order']['field'] = 'id';
$ReplyOneArr['order']['type'] = $sort_order;
$ReplyOneArr['proc'] = array();
// Ok Mr.XSS go to hell !
$ReplyOneArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$ReplyOneArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$ReplyOneArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($reply_nm == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$ReplyOneArr['pager'] = array();
$ReplyOneArr['pager']['total'] = $reply_nm;
if ($reply_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$ReplyOneArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$ReplyOneArr['pager']['perpage'] = $reply_nm;
}
$ReplyOneArr['pager']['count'] = $count;
$ReplyOneArr['pager']['location'] = 'index.php?page=search&option=2&keyword=' . $keyword . '&search_only=2&section=' . $section . '&sort_order='.$sort_order;
$ReplyOneArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['ReplyListOne'] = $PowerBB->reply->GetReplyList($ReplyOneArr);
$PowerBB->_CONF['template']['PagerLocation'] = $ReplyOneArr['pager']['location'];
}
if ($search_only == '3')
{
$subject_title = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE title LIKE '%$keyword%' AND section = '$section' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
$PowerBB->template->assign('nm',$subject_title);
$SubjectTitleOneArr = array();
$SubjectTitleOneArr['where'] = array();
$SubjectTitleOneArr['where'][0] = array();
$SubjectTitleOneArr['where'][0]['name'] = 'title LIKE ';
$SubjectTitleOneArr['where'][0]['oper'] = "'".'%' .$keyword .'%'."' $sec";
$SubjectTitleOneArr['where'][0]['value'] = $section;
$SubjectTitleOneArr['where'][1] = array();
$SubjectTitleOneArr['where'][1]['con'] = 'AND';
$SubjectTitleOneArr['where'][1]['name'] = 'review_subject<>1 AND sec_subject<>1 AND delete_topic';
$SubjectTitleOneArr['where'][1]['oper'] = '<>';
$SubjectTitleOneArr['where'][1]['value'] = '1';
$SubjectTitleOneArr['order'] = array();
$SubjectTitleOneArr['order']['field'] = 'id';
$SubjectTitleOneArr['order']['type'] = $sort_order;
$SubjectTitleOneArr['proc'] = array();
// Ok Mr.XSS go to hell !
$SubjectTitleOneArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$SubjectTitleOneArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$SubjectTitleOneArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($subject_title == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$SubjectTitleOneArr['pager'] = array();
$SubjectTitleOneArr['pager']['total'] = $subject_title;
if ($subject_title > $PowerBB->_CONF['info_row']['perpage'])
{
$SubjectTitleOneArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$SubjectTitleOneArr['pager']['perpage'] = $subject_title;
}
$SubjectTitleOneArr['pager']['count'] = $count;
$SubjectTitleOneArr['pager']['location'] = 'index.php?page=search&option=2&keyword=' . $keyword . '&search_only=3&section=' . $section . '&sort_order='.$sort_order;
$SubjectTitleOneArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['SubjectTitleListOne'] = $PowerBB->subject->GetSubjectList($SubjectTitleOneArr);
$PowerBB->_CONF['template']['PagerLocation'] = $SubjectTitleOneArr['pager']['location'];
}
//////////
if ($subject_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
if ($subject_title > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
if ($reply_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
$PowerBB->template->assign('keyword',$keyword .$username);
$PowerBB->template->display('search_results_one');
if ($PowerBB->_CONF['info_row']['ajax_search'])
{
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->GetFooter();
}
}
else
{
$PowerBB->functions->GetFooter();
}
}
function _StartSearchUsernameSubject()
{
global $PowerBB;
$username = (isset($PowerBB->_GET['username'])) ? $PowerBB->_GET['username'] : $PowerBB->_POST['username'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$exactname = (isset($PowerBB->_GET['exactname'])) ? $PowerBB->_GET['exactname'] : $PowerBB->_POST['exactname'];
$count = (isset($PowerBB->_GET['count'])) ? $PowerBB->_GET['count'] : $PowerBB->_POST['count'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$count = $PowerBB->functions->CleanVariable($count,'intval');
$exactname = $PowerBB->functions->CleanVariable($exactname,'intval');
$search_only = $PowerBB->functions->CleanVariable($search_only,'intval');
$option = $PowerBB->functions->CleanVariable($option,'intval');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'trim');
if ($section != 'all'
and $section != is_numeric($section))
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($sort_order != 'DESC'
and $sort_order != 'ASC')
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($PowerBB->section->IsSection(array('where' => array('sec_section','1'))))
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>0");
}
else
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>1");
}
if (empty($username))
{
$PowerBB->functions->ShowHeader();
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['Please_write_the_name_of_the_member'],$stop);
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
$username_subject_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['subject'] . " WHERE writer LIKE '$username' AND delete_topic<>'1' AND review_subject<>'1' AND sec_subject<>'1'"));
$PowerBB->template->assign('username_nm',$username_subject_nm);
$MemSubjectArr = array();
$MemSubjectArr['where'] = array();
$MemSubjectArr['where'][0] = array();
$MemSubjectArr['where'][0]['name'] = 'writer';
$MemSubjectArr['where'][0]['oper'] = 'LIKE';
if ($exactname == '1')
{
$MemSubjectArr['where'][0]['value'] = $username;
}
else
{
$MemSubjectArr['where'][0]['value'] = '%' .$username .'%';
}
$MemSubjectArr['where'][1] = array();
$MemSubjectArr['where'][1]['con'] = 'AND';
$MemSubjectArr['where'][1]['name'] = 'review_subject<>1 AND sec_subject<>1 AND delete_topic';
$MemSubjectArr['where'][1]['oper'] = '<>';
$MemSubjectArr['where'][1]['value'] = '1';
$MemSubjectArr['order'] = array();
$MemSubjectArr['order']['field'] = 'id';
$MemSubjectArr['order']['type'] = $sort_order;
$MemSubjectArr['proc'] = array();
// Ok Mr.XSS go to hell !
$MemSubjectArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$MemSubjectArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$MemSubjectArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($username_subject_nm == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$MemSubjectArr['pager'] = array();
$MemSubjectArr['pager']['total'] = $username_subject_nm;
if ($username_subject_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$MemSubjectArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$MemSubjectArr['pager']['perpage'] = $username_subject_nm;
}
$MemSubjectArr['pager']['count'] = $count;
if ($exactname == '1')
{
$MemSubjectArr['pager']['location'] = 'index.php?page=search&option=3&username=' . $username . '&starteronly=0&section=all&exactname=' . $exactname . '&sort_order='.$sort_order;
}
else
{
$MemSubjectArr['pager']['location'] = 'index.php?page=search&option=3&username=' . $username . '&starteronly=0&section=all&sort_order='.$sort_order;
}
$MemSubjectArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['MembersListSubject'] = $PowerBB->subject->GetSubjectList($MemSubjectArr);
$PowerBB->_CONF['template']['PagerLocation'] = $MemSubjectArr['pager']['location'];
if ($username_subject_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
$PowerBB->template->assign('search_username_subjects',1);
$PowerBB->template->assign('keyword',$username);
$PowerBB->template->display('search_results_username_subject');
if ($PowerBB->_CONF['info_row']['ajax_search'])
{
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->GetFooter();
}
}
else
{
$PowerBB->functions->GetFooter();
}
}
function _StartSearchUsernameReply()
{
global $PowerBB;
$username = (isset($PowerBB->_GET['username'])) ? $PowerBB->_GET['username'] : $PowerBB->_POST['username'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$exactname = (isset($PowerBB->_GET['exactname'])) ? $PowerBB->_GET['exactname'] : $PowerBB->_POST['exactname'];
$starteronly = (isset($PowerBB->_GET['starteronly'])) ? $PowerBB->_GET['starteronly'] : $PowerBB->_POST['starteronly'];
$count = (isset($PowerBB->_GET['count'])) ? $PowerBB->_GET['count'] : $PowerBB->_POST['count'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$exactname = $PowerBB->functions->CleanVariable($exactname,'intval');
$count = $PowerBB->functions->CleanVariable($count,'intval');
$search_only = $PowerBB->functions->CleanVariable($search_only,'intval');
$option = $PowerBB->functions->CleanVariable($option,'intval');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'trim');
if ($section != 'all'
and $section != is_numeric($section))
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($sort_order != 'DESC'
and $sort_order != 'ASC')
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($PowerBB->section->IsSection(array('where' => array('sec_section','1'))))
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>0");
}
else
{
$SectionInfo = $PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['section'] . " WHERE sec_section<>1");
}
if (empty($username))
{
$PowerBB->functions->ShowHeader();
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['Please_write_the_name_of_the_member'],$stop);
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
$forum_not = $PowerBB->_CONF['info_row']['last_subject_writer_not_in'];
$username_reply_nm = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['reply'] . " WHERE writer LIKE '$username' AND section not in (" .$forum_not. ") AND delete_topic<>1 AND review_reply<>1"));
$PowerBB->template->assign('username_nm',$username_reply_nm);
$MemReplyArr = array();
$MemReplyArr['where'] = array();
$MemReplyArr['where'][0] = array();
$MemReplyArr['where'][0]['name'] = 'writer';
$MemReplyArr['where'][0]['oper'] = 'LIKE';
if ($exactname == '1')
{
$MemReplyArr['where'][0]['value'] = $username;
}
else
{
$MemReplyArr['where'][0]['value'] = '%' .$username .'%';
}
$MemReplyArr['where'][1] = array();
$MemReplyArr['where'][1]['con'] = 'AND';
$MemReplyArr['where'][1]['name'] = 'section not in (' .$forum_not. ') AND review_reply<>1 AND delete_topic';
$MemReplyArr['where'][1]['oper'] = '<>';
$MemReplyArr['where'][1]['value'] = '1';
$MemReplyArr['order'] = array();
$MemReplyArr['order']['field'] = 'id';
$MemReplyArr['order']['type'] = $sort_order;
$MemReplyArr['proc'] = array();
// Ok Mr.XSS go to hell !
$MemReplyArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$MemReplyArr['proc']['native_write_time'] = array('method'=>'date','store'=>'write_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
$MemReplyArr['proc']['write_time'] = array('method'=>'date','store'=>'reply_date','type'=>$PowerBB->_CONF['info_row']['timesystem']);
if ($username_reply_nm == '0')
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results'],$stop);
}
else
{
// Pager setup
$MemReplyArr['pager'] = array();
$MemReplyArr['pager']['total'] = $username_reply_nm;
if ($username_reply_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$MemReplyArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['perpage'];
}
else
{
$MemReplyArr['pager']['perpage'] = $username_reply_nm;
}
$MemReplyArr['pager']['count'] = $count;
if ($exactname == '1')
{
$MemReplyArr['pager']['location'] = 'index.php?page=search&option=4&username=' . $username . '&starteronly=0&section=all&exactname=' . $exactname . '&sort_order='.$sort_order;
}
else
{
$MemReplyArr['pager']['location'] = 'index.php?page=search&option=3&username=' . $username . '&starteronly=0&section=all&sort_order='.$sort_order;
}
$MemReplyArr['pager']['var'] = 'count';
}
$PowerBB->_CONF['template']['while']['MembersListReply'] = $PowerBB->reply->GetReplyList($MemReplyArr);
$PowerBB->_CONF['template']['PagerLocation'] = $MemReplyArr['pager']['location'];
if ($username_reply_nm > $PowerBB->_CONF['info_row']['perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
$PowerBB->template->assign('keyword',$username);
$PowerBB->template->display('search_results_username_reply');
if ($PowerBB->_CONF['info_row']['ajax_search'])
{
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->GetFooter();
}
}
else
{
$PowerBB->functions->GetFooter();
}
}
function _StartSearchTag()
{
global $PowerBB;
$tag = (isset($PowerBB->_GET['tag'])) ? $PowerBB->_GET['tag'] : $PowerBB->_POST['tag'];
$sort_order = (isset($PowerBB->_GET['sort_order'])) ? $PowerBB->_GET['sort_order'] : $PowerBB->_POST['sort_order'];
$count = (isset($PowerBB->_GET['count'])) ? $PowerBB->_GET['count'] : $PowerBB->_POST['count'];
$keyword = $PowerBB->functions->CleanVariable($keyword,'sql');
$section = $PowerBB->functions->CleanVariable($section,'sql');
$username = $PowerBB->functions->CleanVariable($username,'sql');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'sql');
$search_only = $PowerBB->functions->CleanVariable($search_only,'sql');
$tag = $PowerBB->functions->CleanVariable($tag,'sql');
$starteronly = $PowerBB->functions->CleanVariable($starteronly,'sql');
$exactname = $PowerBB->functions->CleanVariable($exactname,'sql');
$option = $PowerBB->functions->CleanVariable($option,'sql');
$count = $PowerBB->functions->CleanVariable($count,'intval');
$search_only = $PowerBB->functions->CleanVariable($search_only,'intval');
$option = $PowerBB->functions->CleanVariable($option,'intval');
$sort_order = $PowerBB->functions->CleanVariable($sort_order,'trim');
if ($section != 'all'
and $section != is_numeric($section))
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
if ($sort_order != 'DESC'
and $sort_order != 'ASC')
{
$PowerBB->functions->ShowHeader();
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['no_search_results']);
}
// Clean the id from any strings
if (empty($tag))
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['path_not_true'],$stop);
}
if (!$PowerBB->_POST['ajax'])
{
$PowerBB->functions->ShowHeader();
}
$TotalArr = array();
$TotalArr['where'] = array('tag',$tag);
$tag_nm = $PowerBB->tag->GetSubjectNumber($TotalArr);
$TagArr = array();
$TagArr['where'] = array();
$TagArr['where'][0] = array();
$TagArr['where'][0]['name'] = 'tag';
$TagArr['where'][0]['oper'] = 'LIKE';
$TagArr['where'][0]['value'] = $tag;
// Pager setup
$TagArr['pager'] = array();
$TagArr['pager']['total'] = $tag_nm;
if ($tag_nm > $PowerBB->_CONF['info_row']['subject_perpage'])
{
$TagArr['pager']['perpage'] = $PowerBB->_CONF['info_row']['subject_perpage']; // TODO
}
else
{
$TagArr['pager']['perpage'] = $tag_nm;
}
$TagArr['pager']['count'] = $count;
$TagArr['pager']['location'] = 'index.php?page=search&option=5&tag=' . $tag . '&sort_order='.$sort_order;
$TagArr['pager']['var'] = 'count';
$TagArr['order'] = array();
$TagArr['order']['field'] = 'id';
$TagArr['order']['type'] = $sort_order;
$PowerBB->_CONF['template']['while']['Subject'] = $PowerBB->tag->GetSubjectList($TagArr);
$PowerBB->_CONF['template']['PagerLocation'] = $TagArr['pager']['location'];
if (!$PowerBB->_CONF['template']['while']['Subject'])
{
$stop = ($PowerBB->_CONF['info_row']['ajax_search'] and !$PowerBB->_POST['ajax']) ? false : true;
$PowerBB->functions->error($PowerBB->_CONF['template']['lang']['taag_requested_does_not_exist'],$stop);
}
$PowerBB->template->assign('tags',$tag);
if ($tag_nm > $PowerBB->_CONF['info_row']['subject_perpage'])
{
$PowerBB->template->assign('pager',$PowerBB->pager->show());
}
$PowerBB->template->assign('tags_nm',$tag_nm);
$PowerBB->template->display('search_results_tags');
$PowerBB->functions->GetFooter();
}
/**
* Get the Jump Sections List
*/
function _GetJumpSectionsList()
{
global $PowerBB;
//////////
$SecArr = array();
$SecArr['get_from'] = 'db';
$SecArr['proc'] = array();
$SecArr['proc']['*'] = array('method'=>'clean','param'=>'html');
$SecArr['order'] = array();
$SecArr['order']['field'] = 'sort';
$SecArr['order']['type'] = 'ASC';
$SecArr['where'] = array();
$SecArr['where'][0]['name'] = 'parent';
$SecArr['where'][0]['oper'] = '=';
$SecArr['where'][0]['value'] = '0';
// Get main sections
$catsy = $PowerBB->section->GetSectionsList($SecArr);
// We will use forumsy_list to store list of forums which will view in main page
$PowerBB->_CONF['template']['foreach']['forumsy_list'] = array();
// Loop to read the information of main sections
foreach ($catsy as $caty)
{
// Get the groups information to know view this section or not
$groups = unserialize(base64_decode($caty['sectiongroup_cache']));
if (is_array($groups[$PowerBB->_CONF['group_info']['id']]))
{
if ($groups[$PowerBB->_CONF['group_info']['id']]['view_section'])
{
$PowerBB->_CONF['template']['foreach']['forumsy_list'][$caty['id'] . '_m'] = $caty;
}
}
unset($groups);
if (!empty($caty['forums_cache']))
{
$forumsy = unserialize(base64_decode($caty['forums_cache']));
foreach ($forumsy as $forumy)
{
if (is_array($forumy['groups'][$PowerBB->_CONF['group_info']['id']]))
{
if ($forumy['groups'][$PowerBB->_CONF['group_info']['id']]['view_section'])
{
//////////
// Get the first-level sub forums as a _link_ and store it in $forumy['sub']
$forumy['is_sub'] = 0;
$forumy['sub'] = '';
if (!empty($forumy['forums_cache']))
{
$subsy = unserialize(base64_decode($forumy['forums_cache']));
if (is_array($subsy))
{
foreach ($subsy as $suby)
{
if (is_array($suby['groups'][$PowerBB->_CONF['group_info']['id']]))
{
if ($suby['groups'][$PowerBB->_CONF['group_info']['id']]['view_section'])
{
if (!$forumy['is_sub'])
{
$forumy['is_sub'] = 1;
}
$forumy['sub'] .= ('<option value="index.php?page=forum&show=1&id=' . $suby['id'] . '">---' . $suby['title'] . '</option>');
}
}
}
}
}
$PowerBB->_CONF['template']['foreach']['forumsy_list'][$forumy['id'] . '_f'] = $forumy;
}
} // end if is_array
} // end foreach ($forumsy)
} // end !empty($forums_cache)
} // end foreach ($catsy)
//////////
}
}
?>