//
// ------------------------------------------------------------------------ //
// This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation; either version 2 of the License, or //
// (at your option) any later version. //
// //
// You may not change or alter any portion of this comment or credits //
// of supporting developers from this source code or any supporting //
// source code which is considered copyrighted (c) material of the //
// original comment or credit authors. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program; if not, write to the Free Software //
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //
// ------------------------------------------------------------------------ //
// Author: Kazumi Ono (AKA onokazu) //
// URL: http://www.myweb.ne.jp/, http://www.xoops.org/, http://jp.xoops.org/ //
// Project: The XOOPS Project //
// ------------------------------------------------------------------------- //
include 'header.php';
if ( !isset($HTTP_POST_VARS['submit']) ) {
$xoopsOption['template_main']= 'newbb_search.html';
include XOOPS_ROOT_PATH.'/header.php';
$xoopsTpl->assign("lang_keywords", _MD_KEYWORDS);
$xoopsTpl->assign("lang_searchany", _MD_SEARCHANY);
$xoopsTpl->assign("lang_searchall", _MD_SEARCHALL);
$xoopsTpl->assign("lang_forumc", _MD_FORUMC);
$xoopsTpl->assign("lang_searchallforums", _MD_SEARCHALLFORUMS);
$xoopsTpl->assign("lang_sortby", _MD_SORTBY);
$xoopsTpl->assign("lang_date", _MD_DATE);
$xoopsTpl->assign("lang_topic", _MD_TOPIC);
$xoopsTpl->assign("lang_forum", _MD_FORUM);
$xoopsTpl->assign("lang_username", _MD_USERNAME);
$xoopsTpl->assign("lang_searchin", _MD_SEARCHIN);
$xoopsTpl->assign("lang_subject", _MD_SUBJECT);
$xoopsTpl->assign("lang_body", _MD_BODY);
$query = 'SELECT forum_name,forum_id FROM '.$xoopsDB->prefix('bb_forums').' WHERE forum_type != 1';
if ( !$result = $xoopsDB->query($query) ) {
exit(""._MD_ERROROCCURED."
"._MD_COULDNOTQUERY);
}
$select = '';
$xoopsTpl->assign("forum_selection_box", $select);
} else {
$xoopsOption['template_main']= 'newbb_searchresults.html';
include XOOPS_ROOT_PATH."/header.php";
$forum = (isset($HTTP_POST_VARS['forum']) && $HTTP_POST_VARS['forum'] != 'all') ? intval($HTTP_POST_VARS['forum']) : 'all';
$xoopsTpl->assign("lang_keywords", _MD_KEYWORDS);
$xoopsTpl->assign("lang_searchany", _MD_SEARCHANY);
$xoopsTpl->assign("lang_searchall", _MD_SEARCHALL);
$addquery = '';
$subquery = '';
$query = 'SELECT u.uid,f.forum_id, p.topic_id, u.uname, p.post_time,t.topic_title,t.topic_views,t.topic_replies,f.forum_name FROM '.$xoopsDB->prefix('bb_posts').' p, '.$xoopsDB->prefix('bb_posts_text').' pt, '.$xoopsDB->prefix('users').' u, '.$xoopsDB->prefix('bb_forums').' f,'.$xoopsDB->prefix('bb_topics').' t';
$myts = MyTextSanitizer::getInstance();
if ( isset($HTTP_POST_VARS['term']) && trim($HTTP_POST_VARS['term']) != "" ) {
$terms = split(' ', $myts->oopsAddSlashes($HTTP_POST_VARS['term'])); // Get all the words into an array
if ( strlen($terms[0]) < 4 ) {
}
$addquery .= "(pt.post_text LIKE '%$terms[0]%'";
$subquery .= "(t.topic_title LIKE '%$terms[0]%'";
if ( $HTTP_POST_VARS['addterms'] == "any" ) { // AND/OR relates to the ANY or ALL on Search Page
$andor = 'OR';
} else {
$andor = 'AND';
}
$size = count($terms);
for ( $i = 1; $i < $size; $i++ ) {
if ( strlen($terms[$i]) < 4 ) {
}
$addquery .= " $andor pt.post_text LIKE '%$terms[$i]%'";
$subquery .= " $andor t.topic_title LIKE '%$terms[$i]%'";
}
$addquery .= ')';
$subquery .= ')';
}
if ($forum !='all' ) {
if ( isset($addquery) ) {
$addquery .= ' AND ';
$subquery .= ' AND ';
}
$forum = intval($HTTP_POST_VARS['forum']);
$addquery .= ' p.forum_id='.$forum;
$subquery .= ' p.forum_id='.$forum;
}
if ( isset($HTTP_POST_VARS['search_username']) && trim($HTTP_POST_VARS['search_username']) != "" ) {
$search_username = $myts->oopsAddSlashes(trim($HTTP_POST_VARS['search_username']));
if ( !$result = $xoopsDB->query("SELECT uid FROM ".$xoopsDB->prefix("users")." WHERE uname='$search_username'") ) {
redirect_header('search.php',1,_MD_ERROROCCURED);
exit();
}
$row = $xoopsDB->fetchArray($result);
if ( !$row ) {
redirect_header('search.php',1,_MD_USERNOEXIST);
exit();
}
if ( isset($addquery) ) {
$addquery .= " AND p.uid=".$row['uid']." AND u.uname='$search_username'";
$subquery .= " AND p.uid=".$row['uid']." AND u.uname='$search_username'";
} else {
$addquery .= " p.uid=".$row['uid']." AND u.uname='$search_username'";
$subquery .= " p.uid=".$row['uid']." AND u.uname='$search_username'";
}
}
if ( isset($addquery) ) {
switch ( $HTTP_POST_VARS['searchboth'] ) {
case 'both':
$query .= " WHERE ( ($subquery) OR ($addquery) ) AND ";
break;
case 'title':
$query .= " WHERE ( $subquery ) AND ";
break;
case 'text':
default:
$query .= " WHERE ( $addquery ) AND ";
break;
}
} else {
$query .= ' WHERE ';
}
$query .= ' p.post_id = pt.post_id AND p.topic_id = t.topic_id AND p.forum_id = f.forum_id AND p.uid = u.uid AND f.forum_type != 1';
$allowed = array("t.topic_title", "t.topic_views", "t.topic_replies", "f.forum_name", "u.uname");
$sortby = (!in_array($HTTP_POST_VARS['sortby'], $allowed)) ? "u.uid" : $HTTP_POST_VARS['sortby'];
$query .= ' ORDER BY '.$sortby;
if ( !$result = $xoopsDB->query($query,100,0) ) {
exit(""._MD_ERROROCCURED.""._MD_COULDNOTQUERY);
}
if ( !$row = $xoopsDB->getRowsNum($result) ) {
$xoopsTpl->assign("lang_nomatch", _MD_NOMATCH);
} else {
while ( $row = $xoopsDB->fetchArray($result) ) {
$xoopsTpl->append('results', array('forum_name' => $myts->makeTboxData4Show($row['forum_name']), 'forum_id' => $row['forum_id'], 'topic_id' => $row['topic_id'], 'topic_title' => $myts->makeTboxData4Show($row['topic_title']), 'topic_replies' => $row['topic_replies'], 'topic_views' => $row['topic_views'], 'user_id' => $row['uid'], 'user_name' => $myts->makeTboxData4Show($row['uname']), 'post_time' => formatTimestamp($row['post_time'], "m")));
}
}
}
$xoopsTpl->assign("lang_forumindex", sprintf(_MD_FORUMINDEX,$xoopsConfig['sitename']));
$xoopsTpl->assign("lang_search", _MD_SEARCH);
$xoopsTpl->assign("lang_forum", _MD_FORUM);
$xoopsTpl->assign("lang_topic", _MD_TOPIC);
$xoopsTpl->assign("lang_author", _MD_AUTHOR);
$xoopsTpl->assign('lang_replies', _MD_REPLIES);
$xoopsTpl->assign('lang_views', _MD_VIEWS);
$xoopsTpl->assign("lang_possttime", _MD_POSTTIME);
$xoopsTpl->assign("lang_searchresults", _MD_SEARCHRESULTS);
$xoopsTpl->assign("img_folder", $bbImage['folder_topic']);
include XOOPS_ROOT_PATH.'/footer.php';
?>