DiscuzX/upload/source/include/spacecp/spacecp_search.php

168 lines
5.5 KiB
PHP
Raw Normal View History

2016-12-15 08:20:54 -05:00
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: spacecp_search.php 28292 2012-02-27 07:23:14Z monkey $
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
$myfields = array('uid','gender','birthyear','birthmonth','birthday','birthprovince','birthcity','resideprovince','residecity', 'residedist', 'residecommunity');
loadcache('profilesetting');
$fields = array();
foreach ($_G['cache']['profilesetting'] as $key => $value) {
if($value['title'] && $value['available'] && $value['allowsearch'] && !in_array($key, $myfields)) {
$fields[$value['fieldid']] = $value;
}
}
$nowy = dgmdate($_G['timestamp'], 'Y');
$_GET = daddslashes($_GET);
if(!empty($_GET['searchsubmit']) || !empty($_GET['searchmode'])) {
$_GET['searchsubmit'] = $_GET['searchmode'] = 1;
$wherearr = $fromarr = $uidjoin = array();
$fsql = '';
$fromarr['member'] = DB::table('common_member').' s';
if($searchkey = stripsearchkey($_GET['searchkey'])) {
$wherearr[] = 's.'.DB::field('username', $searchkey);
$searchkey = dhtmlspecialchars($searchkey);
} else {
foreach (array('uid','username','videophotostatus','avatarstatus') as $value) {
if($_GET[$value]) {
if($value == 'username' && empty($_GET['precision'])) {
$_GET[$value] = stripsearchkey($_GET[$value]);
$wherearr[] = 's.'.DB::field($value, '%'.$_GET[$value].'%', 'like');
} else {
$wherearr[] = 's.'.DB::field($value, $_GET[$value]);
}
}
}
}
$startage = $endage = 0;
if($_GET['endage']) {
$startage = $nowy - intval($_GET['endage']);
}
if($_GET['startage']) {
$endage = $nowy - intval($_GET['startage']);
}
if($startage && $endage && $endage > $startage) {
$wherearr[] = 'sf.'.DB::field('birthyear', $startage, '>=').' AND sf.'.DB::field('birthyear', $endage, '<=');
} else if($startage && empty($endage)) {
$wherearr[] = 'sf.'.DB::field('birthyear', $startage, '>=');
} else if(empty($startage) && $endage) {
$wherearr[] = 'sf.'.DB::field('birthyear', $endage, '<=');
}
$havefield = 0;
foreach ($myfields as $fkey) {
$_GET[$fkey] = trim($_GET[$fkey]);
if($_GET[$fkey]) {
$havefield = 1;
$wherearr[] = 'sf.'.DB::field($fkey, $_GET[$fkey]);
}
}
foreach ($fields as $fkey => $fvalue) {
$_GET['field_'.$fkey] = empty($_GET['field_'.$fkey])?'':stripsearchkey($_GET['field_'.$fkey]);
if($_GET['field_'.$fkey]) {
$havefield = 1;
$wherearr[] = 'sf.'.DB::field($fkey, '%'.$_GET['field_'.$fkey].'%', 'like');
}
}
if($havefield || $startage || $endage) {
$fromarr['profile'] = DB::table('common_member_profile').' sf';
$wherearr['profile'] = "sf.uid=s.uid";
}
$list = array();
if($wherearr) {
$space['friends'] = array();
$query = C::t('home_friend')->fetch_all_by_uid($_G['uid'], 0, 0);
foreach($query as $value) {
$space['friends'][$value['fuid']] = $value['fuid'];
}
foreach(C::t('common_member')->fetch_all_for_spacecp_search($wherearr, $fromarr, 0, 100) as $value) {
$value['isfriend'] = ($value['uid']==$space['uid'] || $space['friends'][$value['uid']])?1:0;
$list[$value['uid']] = $value;
}
$follows = C::t('home_follow')->fetch_all_by_uid_followuid($_G['uid'], array_keys($list));
foreach($list as $uid => $value) {
$list[$uid]['follow'] = isset($follows[$uid]) ? 1 : 0;
}
}
} else {
$yearhtml = '';
for ($i=0; $i<50; $i++) {
$they = $nowy - $i;
$yearhtml .= "<option value=\"$they\">$they</option>";
}
$sexarr = array($space['sex']=>' checked=\"checked\"');
$birthyeayhtml = '';
for ($i=0; $i<100; $i++) {
$they = $nowy - $i;
if(empty($_GET['all'])) $selectstr = $they == $space['birthyear']?' selected=\"selected\"':'';
$birthyeayhtml .= "<option value=\"$they\"$selectstr>$they</option>";
}
$birthmonthhtml = '';
for ($i=1; $i<13; $i++) {
if(empty($_GET['all'])) $selectstr = $i == $space['birthmonth']?' selected=\"selected\"':'';
$birthmonthhtml .= "<option value=\"$i\"$selectstr>$i</option>";
}
$birthdayhtml = '';
for ($i=1; $i<29; $i++) {
if(empty($_GET['all'])) $selectstr = $i == $space['birthday']?' selected=\"selected\"':'';
$birthdayhtml .= "<option value=\"$i\"$selectstr>$i</option>";
}
$bloodhtml = '';
foreach (array('A','B','O','AB') as $value) {
if(empty($_GET['all'])) $selectstr = $value == $space['blood']?' selected=\"selected\"':'';
$bloodhtml .= "<option value=\"$value\"$selectstr>$value</option>";
}
$marryarr = array($space['marry'] => ' selected');
include_once libfile('function/profile');
$birthcityhtml = showdistrict(array(0,0), array('birthprovince', 'birthcity'), 'birthcitybox', null, 'birth');
$residecityhtml = showdistrict(array(0,0, 0, 0), array('resideprovince', 'residecity', 'residedist', 'residecommunity'), 'residecitybox', null, 'reside');
foreach ($fields as $fkey => $fvalue) {
if(empty($fvalue['choices'])) {
$fvalue['html'] = '<input type="text" name="field_'.$fkey.'" class="px" value="" />';
} else {
$fvalue['html'] = "<select name=\"field_$fkey\"><option value=\"\">---</option>";
$optionarr = explode("\n", $fvalue['choices']);
foreach ($optionarr as $ov) {
$ov = trim($ov);
if($ov) {
$fvalue['html'] .= "<option value=\"$ov\">$ov</option>";
}
}
$fvalue['html'] .= "</select>";
}
$fields[$fkey] = $fvalue;
}
}
$navtitle = lang('core', 'title_search_friend');
$actives = array($op=>' class="a"', 'search'=>' class="a"');
include template('home/spacecp_search');
?>