<?php
if(!defined('IN_MYMPS')) exit('FORBIDDEN');
define('CURSCRIPT','search');

$catid    = isset($catid) 	 ? intval($catid) 	 	 : '';
$cityid   = isset($cityid) 	 ? intval($cityid) 	 	 : '';
$areaid   = isset($areaid) 	 ? intval($areaid) 	 	 : '';
$posttime = isset($posttime) ? intval($posttime) 	 : '';
$tel	  = isset($tel)		 ? checkhtml($tel)	 : '';
$keywords = checkhtml($keywords);
$searchTimes=mgetcookie('searchTimes');
$searchTimes=intval($searchTimes);

if(preg_match("/from|script/i",$keywords)) $keywords = '';

$keywords = str_replace(array('/','?'),' ',$keywords);
$keywords = isset($keywords) ? trim(preg_replace("/(\s+)/",' ',$keywords)) : '';
$action = isset($action)	 ? trim(($action)) : '';

if($keywords == '请输入关键词搜索') $keywords = $_GET['keywords'] = '';

!in_array($action,array('information','store','news','group','coupon','goods')) && $action = 'information';

$pluginsettings = read_static_cache('plugin');

$allowplugin = array();
if(is_array($pluginsettings)){
	foreach($pluginsettings as $k => $v){
		if($v['disable'] != 1){
			$allowplugin[$k]['flag'] = $v['flag'];
			$allowplugin[$k]['name'] = $v['name'];
		}
	}
}

$city = get_city_caches($cityid,$areaid);
globalassign();

if($keywords || $tel){
	if($searchTimes>=9){
		require MYMPS_INC.'/member.class.php';
		$returnurl=urlencode($about['search_uri']);
		if(!$member_log -> chk_in()) write_msg('请登录会员再搜索 ^_^',$mymps_global['SiteUrl'].'/'.$mymps_global['cfg_member_logfile'].'?returnurl='.$returnurl);
	}if($searchTimes>=9){
		write_msg('您今天搜索的次数太多啦，请前往栏目地图查找信息吧 ^_^',$about['sitemap_uri']);
	}
}

switch($action){
	case 'information':
		
		if($keywords || $tel){
				msetcookie('searchTimes',$searchTimes+1,3600*24);
				if($catid){
					$modid = $db -> getOne("SELECT modid FROM `{$db_mymps}category` WHERE catid = '$catid'");
					$cat_children	  =	get_children($catid);
					$allow_identifier = allow_identifier();
					$allow_identifier = $allow_identifier[$modid]['identifier'];
					$mymps_extra_actionel = mod_identifier();
					$extra_actionel = $mymps_extra_actionel[$modid];
					$sq = $s = '';
					if($modid > 1 && is_array($allow_identifier)){
						$s = "LEFT JOIN `{$db_mymps}information_{$modid}` AS g ON a.id = g.id";
						foreach (${$_request} as $key => $val){
							if(in_array($key,$allow_identifier) && !empty($$key)){
								$val = intval($val);
								$where .= " AND g.`$key` = '$val' ";
							}
						}
					}
				}
				if(is_array($keyword = explode(' ',$keywords))){
					$or = '';
					$sqlkeywords = '';
					foreach($keyword as $k => $v){
						$sqlkeywords .= " $or a.title LIKE '%".$v."%' ";
						$or = 'OR';
					}
					$where .= " AND ($sqlkeywords)";
				}
				$where .= !empty($cityid)  ? " AND a.cityid = '$cityid'" : "";
				$where .= !empty($areaid)  ? " AND a.areaid = '$areaid'" : "";
				$where .= !empty($streetid)  ? " AND a.streetid = '$streetid'" : "";
				$where .= $tel != ''  ? " AND a.tel = '$tel'" : "";
				$where .= $catid != ''  ? " AND ".$cat_children : "";
				$where .= "AND (a.info_level = '1' OR a.info_level = '2')";
				
				$search['rows_num'] = $rows_num = $db -> getOne("SELECT COUNT(a.id) FROM `{$db_mymps}information` AS a LEFT JOIN `{$db_mymps}category` AS c ON a.catid = c.catid {$s} WHERE 1 {$where}");
				
				$param = $catid != '' && is_array($allow_identifier) ? setParam(array_merge(array('mod','action','keywords','catid','cityid','streetid','areaid','tel'),$allow_identifier)) : setParam(array('mod','action','keywords','catid','cityid','streetid','areaid','posttime','tel'));
				//echo $where;
				//exit;
				$searchresult = page1("SELECT a.id,a.cityid,a.begintime,a.title,a.content,a.ismember,a.contact_who,a.begintime,a.catid,c.catname,a.dir_typename FROM `{$db_mymps}information` AS a LEFT JOIN `{$db_mymps}category` AS c ON a.catid = c.catid {$s} WHERE 1 {$where} ORDER BY a.id DESC");
				$ids = '';
				foreach($searchresult as $k => $val){
					$result['id']			= $val['id'];
					$result['uri'] 			= Rewrite('info',array('id'=>$val['id'],'cityid'=>$val['cityid'],'dir_typename'=>$val['dir_typename']));
					$result['begintime']	= $val['begintime'];
					$result['title']		= HighLight($val['title'],$keywords);
					$result['content']		= HighLight(cutstr(clear_html($val['content']),180),$keywords);
					$result['poster']		= $val['ismember'] == 1 ? '<a target="black" href='.Rewrite('space',array("userid"=>$val["userid"])).$val["userid"].'</a>' : $val['contact_who'] ? $val['contact_who'] : '游客';
					$result['catname']		= $val['catname'];
					$result['caturi']		= Rewrite('category',array('catid'=>$val['catid'],'cityid'=>$val['cityid'],'dir_typename'=>$val['dir_typename']));
					$search['result'][$val['id']] = $result;
					$ids .= $val['id'].',';
				}
				if($idin = substr($ids,0,-1)){
					$idin =	$idin = $idin ? " AND a.id IN (".$idin.") " : "";
				}
				
				$search['pagination'] = page2();
				if($search['result'] && $catid && $idin && is_array($allow_identifier)){
					$des = get_info_option_array();
					$extra = $db ->getAll("SELECT a.* FROM `{$db_mymps}information_{$modid}` AS a WHERE 1 {$idin}"); 
					foreach($extra as $k => $v){
						unset($v['iid']);
						unset($v['content']);
						foreach($v as $u => $w){
							$g = get_info_option_titval($des[$u],$w);
							if($u != 'id' && !is_numeric($u)){
								$search['result'][$v[id]]['extra'][$u] = $g['value'];
							}
						}
					}
				}
	
			$catoption = get_categories_tree(0,'category');
		}
	break;
	case 'store':
		$search['page_title'] = ($keywords != '' ? $keywords.' - ' : '').'商家搜索 - '.$mymps_global['SiteName'];
	
		if($keywords != ''){
			msetcookie('searchTimes',$searchTimes+1,3600*24);
			if(is_array($keyword = explode(' ',$keywords))){
				$or = '';
				$sqlkeywords = '';
				foreach($keyword as $k => $v){
					$sqlkeywords .= " $or a.tname LIKE '%".$v."%' OR a.introduce LIKE '%".$v."%' OR a.userid LIKE '%".$v."%'";
					$or = 'OR';
				}
				$where .= " AND ($sqlkeywords)";
			}
			$where 	.= !empty($catid) 	? " AND b.catid IN(".get_corp_children($catid).") "  : "";
			$where 	.= !empty($cityid) 	? " AND a.cityid = '$cityid' "	: "";
			$where 	.= !empty($areaid) 	? " AND a.areaid = '$areaid' "	: "";
			$where 	.= !empty($streetid) 	? " AND a.areaid = '$streetid' "	: "";
			$where 	.= " AND a.if_corp = '1'";
			$sql = empty($catid) ? "SELECT a.* FROM `{$db_mymps}member` AS a WHERE 1 {$where} ORDER BY a.jointime DESC" : "SELECT a.* FROM `{$db_mymps}member` AS a LEFT JOIN `{$db_mymps}member_category` AS b ON a.userid = b.userid WHERE 1 {$where} ORDER BY a.jointime DESC";
			$count_sql	= empty($catid) ? "SELECT COUNT(a.id) FROM `{$db_mymps}member` AS a WHERE 1 {$where}" : "SELECT COUNT(b.id) FROM `{$db_mymps}member` AS a LEFT JOIN {$db_mymps}member_category AS b ON a.userid = b.userid WHERE 1 $where";
			$search['rows_num']	=	$rows_num 	= $db -> getOne($count_sql);
			$param = setParam(array('mod','action','catid','cityid','streetid','areaid','keywords'));
			if(is_array($res = page1($sql))){
				foreach($res as $key => $val){
					$arr['userid']		= $val['userid'];
					$arr['tel']			= $val['tel'] ? $val['tel'] : '尚未填写电话信息';
					$arr['address']		= $val['address'] ? $val['address'] : '尚未填写地址信息';
					$arr['tname']		= $val['tname'] ? $val['tname'] : $val['userid'];
					$arr['prelogo']		= $val['prelogo'] ? $val['prelogo'] : '/images/nophoto.jpg';
					$arr['tname']		= HighLight($val['tname'] ? $val['tname'] : $val['userid'],$keyword ? $keyword : $keywords);
					$arr['uri'] 		= Rewrite('store',array('uid'=>$val['id']));
					$arr['uri_aboutus'] = Rewrite('store',array('uid'=>$val['id'],'part'=>'about'));
					$arr['uri_comment'] = Rewrite('store',array('uid'=>$val['id'],'part'=>'comment'));
					$arr['uri_album'] 	= Rewrite('store',array('uid'=>$val['id'],'part'=>'album'));
					$search['result'][]	= $arr;
				}
			}
			$search['pagination']	= page2();
		}
		
		$catoption = get_corp_tree(0,'corp');
		
	break;
	
	case 'news':
		$search['page_title'] = ($keywords != '' ? $keywords.' - ' : '').'资讯搜索 - '.$mymps_global['SiteName'];
		if($keywords != ''){
			!ifplugin('news') && exit('管理员已禁用或未安装新闻插件...');
			msetcookie('searchTimes',$searchTimes+1,3600*24);
			$catoption = cat_list('channel',0,0,false,1);
			
			if($keywords != ''){
				if(is_array($keyword = explode(' ',$keywords))){
					$or = '';
					$sqlkeywords = '';
					foreach($keyword as $k => $v){
						$sqlkeywords .= " $or n.title LIKE '%".$v."%' OR n.content LIKE '%".$v."%'";
						$or = 'OR';
					}
					$where .= " AND ($sqlkeywords)";
				}
				$where .= !empty($catid)  ? " AND n.catid IN (".get_cat_children($catid,'channel').")" : "";
				$where .= $cityid ? " AND n.cityid = '$cityid'" : "";
				
				$sql = "SELECT n.*,c.catname,c.html_dir FROM `{$db_mymps}news` AS n LEFT JOIN `{$db_mymps}channel` AS c ON n.catid = c.catid WHERE 1 $where ORDER BY n.id DESC";
				$search['rows_num'] = $rows_num = $db -> getOne("SELECT COUNT(n.id) FROM `{$db_mymps}news` AS n WHERE 1 $where");
				$param = setParam(array('mod','action','cityid','catid','keywords'));
				$searchresult = page1($sql);
				foreach($searchresult as $k => $val){
					$result['id']			= $val['id'];
					$result['hit']			= $val['hit'];
					$result['uri'] 			= Rewrite('news',array('id'=>$val['id'],'cityid'=>$val['cityid']));
					$result['begintime']	= $val['begintime'];
					$result['title']		= HighLight($val['title'],$keyword ? $keyword : $keywords);
					$result['content']		= HighLight(cutstr(clear_html($val['content']),300),$keyword ? $keyword : $keywords);
					$result['catname']		= $val['catname'];
					$result['imgpath'] 		= $val['imgpath']?$val['imgpath']:'/images/nophoto.gif';
					$result['caturi']		= Rewrite('news',array('catid'=>$val['catid'],'cityid'=>$val['cityid']));
					$search['result'][] 	= $result;
				}
				$search['pagination'] = page2();
			}
		}
	break;
	
	case 'group':
		$search['page_title'] = ($keywords != '' ? $keywords.' - ' : '').'团购搜索 - '.$mymps_global['SiteName'];
		if($keywords != ''){
			require MYMPS_ROOT.'/plugin/group/include/functions.php';
			msetcookie('searchTimes',$searchTimes+1,3600*24);
			$group_class = get_group_class();
			$catoption = $group_class;
			$area_list = get_cityoptions($cityid,$areaid);
			
			require MYMPS_DATA.'/grouplevel.inc.php';
			
			if($keywords != ''){
			
				$where = "WHERE glevel > '0'";
				
				if(is_array($keyword = explode(' ',$keywords))){
					$or = '';
					$sqlkeywords = '';
					foreach($keyword as $k => $v){
						$sqlkeywords .= " $or gname LIKE '%".$v."%'";
						$or = 'OR';
					}
					$where .= " AND ($sqlkeywords)";
				}		
			
				if($cate_id) $where .= " AND cate_id = '$cate_id'";
				if($cityid) $where .= " AND cityid = '$cityid'";
				
				$search['rows_num']	= $rows_num = $db -> getOne("SELECT COUNT(groupid) FROM `{$db_mymps}group` $where");
				$param = setParam(array('mod','action','cate_id','cityid','keywords'));
				$group = page1("SELECT * FROM `{$db_mymps}group` $where ORDER BY groupid DESC");
				foreach($group as $k => $v){
					$result['groupid'] = $v['groupid'];
					$result['gname'] = $v['gname'];
					$result['des'] = clear_html($v['des']);
					$result['enddate'] = $v['enddate'];
					$result['meetdate'] = $v['meetdate'];
					$result['gaddress'] = $v['gaddress'];
					$result['glevel'] = $v['glevel'];
					$result['signintotal'] = $v['signintotal'];
					$result['commenturl'] = $v['commenturl'];
					$result['pre_picture'] = $v['pre_picture'];
					$result['uri'] = plugin_url('group',array('id'=>$v['groupid']));
					$search['result'][] 	= $result;
				}
				$search['pagination'] = page2();
			}
		}
	break;
	
	case 'coupon':
		$search['page_title'] = ($keywords != '' ? $keywords.' - ' : '').'优惠券搜索 - '.$mymps_global['SiteName'];
		if($keywords != ''){
			require MYMPS_ROOT.'/plugin/coupon/include/functions.php';
			msetcookie('searchTimes',$searchTimes+1,3600*24);
			$coupon_class = get_coupon_class();
			$catoption = $coupon_class;
			$area_list = get_cityoptions($cityid,$areaid);
			
			if($keywords != ''){
					
				$where = "WHERE status = '1' AND grade > '0'";
				
				if(is_array($keyword = explode(' ',$keywords))){
					$or = '';
					$sqlkeywords = '';
					foreach($keyword as $k => $v){
						$sqlkeywords .= " $or title LIKE '%".$v."%'";
						$or = 'OR';
					}
					$where .= " AND ($sqlkeywords)";
				}		
			
				if($cate_id) $where .= " AND cate_id = '$cate_id'";
				if($cityid) $where .= " AND cityid = '$cityid'";
				
				$search['rows_num']	= $rows_num = $db->getOne("SELECT count(id) FROM {$db_mymps}coupon $where");
				$param = setParam(array('mod','action','cate_id','cityid','keywords'));
				$coupon = page1("SELECT * FROM `{$db_mymps}coupon` $where ORDER BY id DESC");
				foreach($coupon as $k => $v){
					$result['id'] = $v['id'];
					$result['title'] = $v['title'];
					$result['des'] = $v['des'];
					$result['enddate'] = $v['enddate'];
					$result['begindate'] = $v['begindate'];
					$result['prints'] = $v['prints'];
					$result['pre_picture'] = $v['pre_picture'];
					$result['sup'] = $v['sup'];
					$result['uri'] = plugin_url('coupon',array('id'=>$v['id']));
					$search['result'][] 	= $result;
				}
				$search['pagination'] = page2();
			}
			
			$search['page_title'] = ($keywords != '' ? $keywords.' - ' : '').'优惠券搜索 - '.$mymps_global['SiteName'];
		}
	break;
	
	case 'goods':
		$search['page_title'] = ($keywords != '' ? $keywords.' - ' : '').'商品搜索 - '.$mymps_global['SiteName'];
		if($keywords != ''){
			require MYMPS_ROOT.'/plugin/goods/include/functions.php';
			msetcookie('searchTimes',$searchTimes+1,3600*24);
			$goods_class = goods_category_tree(0);
			$catoption = $goods_class;
			
			if($keywords != ''){
					
				$where = "WHERE onsale = '1'";
				
				if(is_array($keyword = explode(' ',$keywords))){
					$or = '';
					$sqlkeywords = '';
					foreach($keyword as $k => $v){
						$sqlkeywords .= " $or goodsname LIKE '%".$v."%'";
						$or = 'OR';
					}
					$where .= " AND ($sqlkeywords)";
				}		
			
				if($catid) $where .= " AND catid IN (".mymps_get_goods_children($catid).")";
				if($cityid) $where .= " AND cityid = '$cityid'";
				
				$search['rows_num'] = $rows_num = $db -> getOne("SELECT COUNT(goodsid) FROM `{$db_mymps}goods` $where");
				$param = setParam(array('mod','action','cate_id','cityid','keywords'));
				$goods = page1("SELECT * FROM `{$db_mymps}goods` $where ORDER BY dateline DESC",16);
				foreach($goods as $k => $v){
					$result['goodsid'] = $v['goodsid'];
					$result['goodsname'] = $v['goodsname'];
					$result['nowprice'] = $v['nowprice'];
					$result['pre_picture'] = $v['pre_picture'] ? $v['pre_picture'] : $mymps_global['SiteUrl'].'/images/nophoto.gif';
					$result['uri'] = Rewrite('goods',array('id'=>$v['goodsid'],'cityid'=>$v['cityid']));
					$search['result'][] = $result;
				}
				$search['pagination'] = page2();
			}
			
			$select_where_option = select_where_option('/include/selectwhere.php',$cityid,$areaid,$streetid);
		}
	break;
}

$mtime = explode(' ', microtime());
$totaltime = number_format(($mtime[1] + $mtime[0] - $mymps_starttime), 6);
$sitedebug = 'Processed in '.$totaltime.' second(s) , '.$db->query_num.' queries';
$search['tel'] = $tel;
$search['keywords'] = $keywords?$keywords:$search['tel'];
$search['page_title'] = ($search['keywords'] ? $search['keywords'].'_' : '').$city['cityname'].'同城搜索_检索'.$city['cityname'].'分类信息 - '.$city['cityname'].$mymps_global['SiteName'];

include ($keywords || $tel) ? mayi_tpl(CURSCRIPT.'_'.$action) : mayi_tpl('search_index');
is_object($db) && $db -> Close();
$city = $maincity = NULL;
unset($city,$maincity);
?>