ismoderator_by_uid_orgid($id,$_G['uid']);
if(!$moderator || $ismoderator){
$disable='';
$type='user';
}else{
$disable='"disabled":true,';
$type="disabled";
}
$data=array();
if($_GET['id']=='#'){
if($_G['adminid']!=1 && $moderator) $topids=C::t('organization_admin')->fetch_toporgids_by_uid($_G['uid']);
foreach(C::t('organization')->fetch_all_by_forgid($id,false,-1) as $value){
if($_G['adminid']!=1 && $moderator && !in_array($value['orgid'],$topids)) continue;
if($value['type']=='2'){
continue;
}elseif($value['type']=='1' && $range==1){
continue;
}elseif($value['type']=='0' && $range==2){
continue;
}
if(!$moderator || C::t('organization_admin')->ismoderator_by_uid_orgid($value['orgid'],$_G['uid'])){
$orgdisable=false;
$orgtype='organization';
}else{
$orgdisable=true;
$orgtype='disable';
}
$arr = array(
'id'=>$value['orgid'],
'text'=>$value['orgname'],
'state'=>array('disabled'=>$orgdisable),
"type"=>$orgtype,
'children'=>true);
if(preg_match('/^\d+$/',$value['aid']) && $value['aid'] > 0){
$arr['text'] = $value['orgname'];
$arr['icon']='index.php?mod=io&op=thumbnail&width=24&height=24&path=' . dzzencode('attach::' . $value['aid']);
}else{
$arr['text'] = avatar_group($value['orgid'],$value).$value['orgname'];
$arr['label'] = $value['orgname'];
$arr['icon'] = false;
}
$data[]=$arr;
}
if($stype!=1){
$data[]=array('id'=>'other','text'=>'无'.$zero,'state'=>array('disabled'=>$disable),"type"=>($type=="disabled")?$type:'default','children'=>true,'label'=>$zero);
}
}else{
//获取用户列表
if($_GET['id']=='other'){//无机构用户
if(($moderator && $_G['adminid']!=1) || $nouser || $stype==1){
}else{
$uids = array();
$datas = array();
foreach(C::t('organization_user')->fetch_user_not_in_orgid($limit) as $value){
if($exids && in_array($value['uid'],$exids)) continue;
$uids[] = $value['uid'];
$tmpdata=array('id'=>$value['uid'],'text'=>$value['username'].''.$value['email'].'','icon'=>'dzz/system/images/user.png','label'=>$value['username'],'state'=>array('disabled'=>$disable),"type"=>$type,'li_attr'=>array('uid'=>$value['uid']));
$datas[] = $tmpdata;
}
getuserIcon($uids,$datas,$data);
}
}else{
foreach(C::t('organization')->fetch_all_by_forgid($id) as $value){
if(!$moderator || C::t('organization_admin')->ismoderator_by_uid_orgid($value['orgid'],$_G['uid'])){
$orgdisable='';
$orgtype='organization';
}else{
$orgdisable='"disabled":true,';
$orgtype='disabled';
}
$arr = array(
'id'=>$value['orgid'],
'text'=>$value['orgname'],
'state'=>array('disabled'=>$orgdisable),
"type"=>$orgtype,
'children'=>true);
if(preg_match('/^\d+$/',$value['aid']) && $value['aid'] > 0){
$arr['text'] = $value['orgname'];
$arr['icon']='index.php?mod=io&op=thumbnail&width=24&height=24&path=' . dzzencode('attach::' . $value['aid']);
}else{
$arr['text'] = avatar_group($value['orgid'],$value).$value['orgname'];;
$arr['icon'] = false;
}
$arr['label'] = $value['orgname'];
$data[]=$arr;
}
if( $nouser || $stype==1 || ($moderator && !$ismoderator)){
}else{
$uids = array();
$datas = array();
foreach(C::t('organization_user')->fetch_user_by_orgid($id,$limit) as $value){
if($exids && in_array($value['uid'],$exids)) continue;
if(!$value['uid']) continue;
$uids[] = $value['uid'];
if($showjob && $value['jobid']) $jobname=DB::result_first("select name from %t where jobid=%d",array('organization_job',$value['jobid']));
$tmpdata=array('id'=>$value['uid'],'label'=>$value['username'],'text'=>$value['username'].($jobname?' ['.$jobname.']':'').''.$value['email'].'','icon'=>'dzz/system/images/user.png','state'=>array('disabled'=>$disable),"type"=>$type,'li_attr'=>array('uid'=>$value['uid']));
$datas[] = $tmpdata;
}
getuserIcon($uids,$datas,$data);
}
}
}
exit(json_encode($data));
}elseif($_GET['do']=='search'){
$nouser=intval($_GET['nouser']);
$str=trim($_GET['str']);
$str='%'.$str.'%';
$sql="username LIKE %s";
$sql_org="orgname LIKE %s";
//搜索用户
$data=array('other');
if(!$nouser){
$uids=array();
foreach(DB::fetch_all("select * from %t where $sql ",array('user',$str)) as $value){
$uids[]=$value['uid'];
$data['uid_'.$value['uid']]='uid_'.$value['uid'];
}
$orgids=array();
foreach($orgusers=C::t('organization_user')->fetch_all_by_uid($uids) as $value){
$data['uid_'.$value['uid']]='uid_'.$value['uid'];
$orgids[]=$value['orgid'];
}
}
foreach(DB::fetch_all("select orgid from %t where $sql_org",array('organization',$str)) as $value){
$orgids[]=$value['orgid'];
}
$orgids=array_unique($orgids);
foreach($orgids as $orgid){
$uporgids= C::t('organization')->fetch_parent_by_orgid($orgid,true);
foreach($uporgids as $value){
$data[$value]=$value;
}
}
$temp=array();
foreach($data as $value){
$temp[]=$value;
}
exit(json_encode($temp));
}
function getuserIcon($uids,$datas,&$data){
$uids = array_unique($uids);
$avatars = array();
foreach(DB::fetch_all('select u.avatarstatus,u.uid,s.svalue from %t u left join %t s on u.uid=s.uid and s.skey=%s where u.uid in(%n)',array('user','user_setting','headerColor',$uids)) as $v){
if($v['avatarstatus'] == 1){
$avatars[$v['uid']]['avatarstatus'] = 1;
}else{
$avatars[$v['uid']]['avatarstatus'] = 0;
$avatars[$v['uid']]['headerColor'] = $v['svalue'];
}
}
$userarr = array();
$data1 = array();
foreach($datas as $v){
$uid=$v['li_attr']['uid'];
$avatarstatus = $avatars[$uid]['avatarstatus'];
$v['textname']=$v['text'];
if($avatars[$v['li_attr']['uid']]['avatarstatus']){
$v['icon'] = 'avatar.php?uid='.$v['li_attr']['uid'];
}elseif($avatars[$uid]['headerColor']){
$v['headercolor'] = $avatars[$uid]['headerColor'];
$v['firstword'] = strtoupper(new_strsubstr($v['text'],1,''));
$v['icon'] = false;
$v['text']= '/i",'',$v['text']).'">'.$v['firstword'].''.$v['text'];
$v['label']= $v['label'];
}else{
$v['icon'] = false;
$v['text']= avatar_block($uid).$v['text'];
$v['label']= $v['label'];
}
$data[] = $v;
}
}
// $ismobile=helper_browser::ismobile();
// include template('orgtree');
?>