config = $config; $this->tpl=$tpl; $this->db=$db; $this->def=$def; $this->m=$m; require(APP_PATH.'app/public/action.class.php'); require(APP_PATH.'app/model/cookie.model.php'); $this->cookie = new cookie_model($this->db,$this->def, array('uid'=>$this->uid,'username'=>$this->username,'usertype'=>$this->usertype)); $this->protocol = getprotocol($this->config['sy_weburl']); //当存在UID 的时候 判断UID是否符合当前权限验证,如不符合则清空COOKIE 防止注入 if(!empty($_COOKIE['uid'])){ $shell=$this->GET_user_shell($_COOKIE['uid'],$_COOKIE['shell']); if(!is_array($shell) || empty($shell)){ $this->cookie->unset_cookie(); $this->uid=''; $this->userdid=''; $this->username=''; $this->usertype=''; $checkUrl = $this->protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; header("location:".$checkUrl); die; }else{ $this->uid = !empty($shell['pid']) ? intval($shell['pid']) : intval($shell['uid']); $this->spid = !empty($shell['pid']) ? intval($shell['uid']) : 0; $this->userdid = isset($_COOKIE['userdid']) ? intval($_COOKIE['userdid']) : ''; $this->username = $shell['username']; $this->usertype = $_COOKIE['usertype']; $this->yunset('uid', intval($shell['uid'])); $this->yunset('usertype', $_COOKIE['usertype']); $this->yunset('username', $shell['username']); $this->yunset('spid', $this->spid); $sy_only_price = @explode(',',$this->config['sy_only_price']); $this->yunset('sy_only_price', $sy_only_price); } }else{ $this->uid = ''; } $this->obj= new model($this->db,$def,array('uid'=>$this->uid,'username'=>$this->username,'usertype'=>$this->usertype)); $path['temstyle']=TPL_PATH; $path['style']=$this->config['sy_weburl']."/app/template/".$this->config['style']; $path['client']=$this->config['sy_weburl']."/about"; $path['tplstyle']=TPL_PATH.$this->config['style']; $path['tpldir']=$this->tpl->template_dir; $path['ask_style']=$this->config['sy_weburl']."/app/template/ask"; $path['askstyle']=TPL_PATH."ask"; $path['lietoustyle']=TPL_PATH."member/lietou/"; $path['lietou_style']=$this->config['sy_weburl']."/app/template/member/lietou"; $path['adminstyle']=TPL_PATH."admin"; $path['userstyle']=TPL_PATH."member/user"; $path['user_style']=$this->config['sy_weburl']."/app/template/member/user"; $path['comstyle']=TPL_PATH."member/com"; $path['com_style']=$this->config['sy_weburl']."/app/template/member/com"; $path['trainstyle']=TPL_PATH."member/train"; $path['train_style']=$this->config['sy_weburl']."/app/template/member/train"; $path['wapstyle']=TPL_PATH."wap"; $path['wap_style']=$this->config['sy_weburl']."/app/template/wap"; $path['admin_style']=$this->config['sy_weburl']."/app/template/admin"; $path['wapadminstyle']=TPL_PATH."wapadmin"; $path['plusstyle']=$this->config['sy_weburl']."/data/plus"; $_SERVER['HTTP_REFERER'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; if($_SERVER['PHP_SELF']!='/admin/index.php'){ $path['cookie']=$_COOKIE; } $this->yunset($path); if(!($this->config['sy_wapdomain'])){ if($this->config['sy_web_site']=='1' && $this->config['sy_indexdomain']){ $this->config['sy_wapdomain'] = $this->config['sy_indexdomain'].'/'.$this->config['sy_wapdir']; }else{ $this->config['sy_wapdomain'] = $this->config['sy_weburl'].'/'.$this->config['sy_wapdir']; } $this->yunset("config_wapdomain",$this->config['sy_wapdomain']); }else{ $this->protocol_wap = $this->config['sy_wapssl']=='1' ? 'https://' : 'http://'; if(strpos($this->config['sy_wapdomain'],'http://')===false && strpos($this->config['sy_wapdomain'],'https://')===false) { $this->config['sy_wapdomain'] = $this->protocol_wap.$this->config['sy_wapdomain']; } $this->yunset("config_wapdomain",$this->config['sy_wapdomain']); } // oss关闭时,oss地址为服务器地址 if (!isset($this->config['sy_oss']) || (isset($this->config['sy_oss']) && $this->config['sy_oss'] == 2)){ $this->config['sy_ossurl'] = $this->config['sy_weburl']; } $this->yunset("config",$this->config); $this->$model(); if (($this->uid > 0 || $_SESSION['auid'] > 0) && $model!='datav'){ $this->webLog($model, $this->uid, $this->usertype); } //自动更新登录日志,排除ajax和chat,防止因并发导致重复记录 if ($this->uid && $_COOKIE['amtype'] != '1' && !in_array($_GET['m'], array('ajax','chat')) && !in_array($_GET['c'], array('chat'))) { $this->upLoginLog($shell['login_date']); } if(!file_exists(PLUS_PATH."config.php")){ $this->web_config(); } //wap底部导航的发布按钮所需数据 if($model=='wap' || $model=='wap_member'){ $this->member_fabudata(); } } //底部导航的发布所需数据 function member_fabudata(){ if($this->uid){ if($this->usertype=='1'){ if (!empty($this->config['user_number'])){ $resumeM = $this->MODEL('resume'); $num = $resumeM->getExpectNum(array('uid'=>$this->uid)); $maxnum = $this->config['user_number'] - $num; if($maxnum < 0){ $maxnum='0'; } if($num){ $num = 1; }else{ $num = 0; } $this->yunset('resume_num',$num); }else{ $maxnum = ''; } $this->yunset('fabu_resume_maxnum',$maxnum); }else if($this->usertype=='3'){ $statisM = $this -> MODEL('statis'); $statis = $statisM -> vipLtOver($this->uid); $this->yunset("addltjobnum",$statis['addltjobnum']); } } } //同步登录时间 function upLoginLog($logindate) { if ($logindate < strtotime('today') && $this->usertype > 0) { $time = time(); $ip = fun_ip_get(); if (isMobileUser()) { $content = '手机'; $port = 2; } else { $content = 'PC'; $port = 1; } $logindata = array( 'uid' => $this->uid, 'usertype' => $this->usertype, 'content' => $content . '端口延续登录' ); if ($this->spid) { $logindata['content'] .= '(子账号ID:' . $this->spid . ')'; } $logM = $this->MODEL('log'); $logM->addLoginlog($logindata); $UserInfoM = $this->MODEL('userinfo'); $UserInfoM->upInfo(array('uid' => $this->uid), array('login_ip' => $ip, 'login_date' => $time)); if ($this->spid) { $UserInfoM->upInfo(array('uid' => $this->spid), array('login_ip' => $ip, 'login_date' => $time)); } // 同步登录时间 $this->obj->update_once('company', array('login_date' => time()), array('uid' => $this->uid)); $this->obj->update_once('resume', array('login_date' => time()), array('uid' => $this->uid)); //登录自动简历刷新,在后台配置 if ($this->config['resume_sx'] == 1 && $this->usertype == 1) { $resumeM = $this->MODEL('resume'); $expect = $resumeM->getExpectByUid($this->uid, array('field' => '`id`')); if (!empty($expect)) { $resumeM->upResumeInfo(array('uid' => $this->uid), array('rData' => array('lastupdate' => time()), 'port' => $port)); } } } } /** * 网站日志 * 网站日志 * @param $model :admin、index、member、wap、wap_member、wxapp、wxapp_member * @param null $uid * @param null $usertype */ function webLog($model, $uid=null, $usertype=null) { $weblogM = $this->MODEL('weblog'); $data = array( 'uid' => $uid, 'usertype' => $usertype, 'provider' => $_POST['provider'] ); session_start(); if ($_SESSION['auid']){ $data['auid'] = $_SESSION['auid']; } $weblogM->addWebLog($model, $data); } //页面不存在跳转 function DoException(){ $this->ACT_msg("index.php","您请求的页面不存在"); } //后台模板 function yuntpl($tplarr=array()){ if(is_array($tplarr) && $tplarr!=''){ foreach($tplarr as $v){ if($v!=''){ $this->tpl->display($v.".htm"); } } exit(); }else{ echo "模版不能为空!";die; } } //前台模板 function yun_tpl($tplarr=array()){ if(is_array($tplarr) && $tplarr!=''){ foreach($tplarr as $v){ $this->tpl->display($this->config['style']."/".$this->m."/".$v.".htm"); } exit(); }else{ echo "模版不能为空!";die; } } //UC资料修改 function uc_edit_pw($post, $old = "1", $url) { $old_info = $this->obj->select_once('member', array('uid' => $post['uid']), "`name_repeat`,`username`"); if ($post['password'] != "") { if ($this->config['sy_uc_type'] == "uc_center" && $old_info['name_repeat'] != "1") { $this->obj->uc_open(); $ucresult = uc_user_edit($old_info['username'], $post['oldpw'], $post['password'], $post['email'], $old); if ($ucresult == -1) { $msg = '旧密码不正确'; } elseif ($ucresult == -4) { $msg = 'Email 格式有误'; } elseif ($ucresult == -5) { $msg = 'Email 不允许注册'; } elseif ($ucresult == -6) { $msg = '该 Email 已经被注册'; } if ($msg != "") { $this->ACT_msg($url, $msg); } } $salt = substr(uniqid(rand()), -6); $pass = passCheck($post['password'], $salt); $upData = array('password' => $pass, 'salt' => $salt); } if (is_array($post)) { foreach ($post as $k => $v) { if ($k != "password" && $k != "oldpw") { $upData[$k] = $v; } } $upData['username'] = $old_info['username']; } return $this->obj->update_once('member', $upData, array('uid' => $post['uid'])); } /** * 向smarty模版赋值 * Summary of yunset * @param mixed $name 单个变量变量名:如“webname”,或包含多个变量的数据:如“array('webname'=>'phpyun人才系统')” * @param mixed $value */ function yunset($name, $value = null) { if (is_array($name)) { foreach ($name as $k => $v) { $this->tpl->assign($k, $v); } } else { $this->tpl->assign($name, $value); } } function company() { $this->tpl->is_fun(); $company = $this->obj->select_once('company', array('uid' => $_GET['id']), "`name`,`content`"); $data['company_name'] = $company['name']; $data['company_name_desc'] = $company['content']; if ($_GET['nid']) { $news = $this->obj->select_once('company_news', array('id' => $_GET['nid']),"`title`"); $data['company_news'] = $news['title']; } if ($_GET['pid']) { $product = $this->obj->select_once('company_product', array('id' => $_GET['pid']), "`title`"); $data['company_product']= $product['title']; } $this->data = $data; } // TODO: 没有APP后台,待删除 function appadmin(){ $this->get_appadmin_source(); } //前台公共部分 function index(){ $UA = strtoupper($_SERVER['HTTP_USER_AGENT']); if(strpos($UA, 'WINDOWS NT') === true){ header("location:".Url('index',array('c'=>'wap'))); exit(); } $this->tpl->is_fun(); if(empty($_GET['keyword'])){ $_GET['keyword'] = ''; } $qq=@explode(",",$this->config['sy_qq']); $this->yunset("qq",$qq); } function wap(){ if($this->config['sy_wap_web']=='2'){ header('location:'.$this->config['sy_weburl']); } // 电脑点访问WAP,不需跳转的链接 $a = isset($_GET['a']) ? $_GET['a'] : ''; $aArray = array('getHbBase'); $UA = strtoupper($_SERVER['HTTP_USER_AGENT']); if($this->config['sy_pc_jump_wap']!='1' && strpos($UA, 'WINDOWS NT') !== false && !in_array($a,$aArray)){ //电脑访问手机端 匹配相关链接 header('location:'.Url('index',array('c'=>'wap'))); } if(is_weixin()){ //取微信分享参数 if($this->config['wx_appid'] && $this->config['wx_appsecret']){ $signPackage = getWxJsSdk(); $this->yunset('signPackage',$signPackage); } $this->yunset('isweixin',1); } $this->tpl->is_fun(); include PLUS_PATH.'/tplmoblie.cache.php'; if($tplmoblie['wapdiy']==1){ $this->yunset('tplmoblie',$tplmoblie); } $this->moreMenu(); } function wap_member(){ if($this->config['sy_wap_web']=='2'){ header('location:'.$this->config['sy_weburl']); } $UA = strtoupper($_SERVER['HTTP_USER_AGENT']); if($this->config['sy_pc_jump_wap']!='1' && strpos($UA, 'WINDOWS NT') !== false){ header('location:'.Url('index',array('c'=>'wap'))); } if(!$this->uid || !$this->username){ $this->cookie->unset_cookie(); if(is_weixin()){ // 外部链接访问,会员中心的,进入微信授权页面,已绑定的,直接登录,进到会员中心首页 if (!$_SERVER['HTTP_REFERER']){ header('location:'.Url('wap',array('c'=>'wxoauth')));die; } } header('location:'.Url('wap',array('c'=>'login')));die; }else{ $shell=$this->GET_user_shell($this->uid,$_COOKIE['shell']); if(!is_array($shell) && !$this->spid){ $this->cookie->unset_cookie(); header('location:'.Url('wap',array('c'=>'login')));die; }else{ if(is_weixin()){ if(in_array($_GET['c'],array('integral','finance','job'))){ //取微信分享参数 if($this->config['wx_appid'] && $this->config['wx_appsecret']){ $signPackage = getWxJsSdk(); $this->yunset('signPackage',$signPackage); } } $this->yunset('isweixin',1); } $this->yunset('uid',$this->uid); $this->yunset('username',$this->username); } $this->MemberLock($this->uid,array('utype'=>'wap')); } if($this->usertype==4){ $this->moreMenu(); } } function member() { $this->tpl->is_fun(); if (!$this->uid) { $login = Url('login'); $this->ACT_msg($login, '请先登录'); } $this->yunset("uid", $this->uid); $this->yunset("username", $this->username); $this->yunset("useremail", $_COOKIE['email']); $this->yunset("is_member", 1); } function wxapp(){ } function datav(){ } //生成缓存-------------开始 function web_config(){ $configM = $this->MODEL('config'); $List = $configM->getList(array('name'=>array('<>',''))); $config = $List['list']; if(is_array($config)){ foreach($config as $v){ if($v['name']=='sy_member_icon_arr' || $v['name']=='sy_member_iconv_arr'){ $configarr[$v['name']] = empty($v['config']) ? '' : unserialize($v['config']); }else{ $configarr[$v['name']] = $v['config']; } } } if(!empty($configarr)){ made_web(PLUS_PATH.'config.php',ArrayToString($configarr),'config'); } if(!file_exists(PLUS_PATH.'pimg_cache.php')){ global $config; $config = $configarr; $adM = $this->MODEL('ad'); $adM -> model_ad_arr(); } if(!file_exists(PLUS_PATH.'dbstruct.cache.php')){ include_once(LIB_PATH."cache.class.php"); $cacheclass= new cache(PLUS_PATH,$this->obj); $cacheclass->database_cache("dbstruct.cache.php"); } } function header_desc($title = "", $keyword = "", $description = "") { $this->yunset("title", $title); $this->yunset("keywords", $keyword); $this->yunset("description", $description); } //TODO:已移动到当前目录的model.php中,待修改完成后删除 //调用分页,$table表名,$where条件,$pageurl分页链接,$limit条数,$rowsname模板接收变量,$pagenavname分页模板接收变量 function get_page($table, $where = "", $pageurl = "", $limit = 20, $field = "*", $rowsname = "rows", $pagenavname = "pagenav") { $rows = array(); $page = $_GET['page'] < 1 ? 1 : $_GET['page']; $ststrsql = ($page - 1) * $limit; $num = $this->obj->DB_select_num($table, $where); $this->yunset("total", $num); if ($num > $limit) { $pages = ceil($num / $limit); $pagenav = Page($page, $num, $limit, $pageurl, $notpl = false, $this->tpl, $pagenavname); $this->yunset("pages", $pages); } $rows = $this->obj->DB_select_all($table, "$where limit $ststrsql,$limit", $field); $this->yunset($rowsname, $rows); return $rows; } //验证手机是否存在 function FetchMoblie($moblie) { $UserInfoM = $this->MODEL('userinfo'); return $UserInfoM->GetMemberOne(array('moblie' => $moblie), array('field' => "`uid`,`username`")); } function logout($result = true) { if ($this->config['sy_uc_type'] == "uc_center") { $this->obj->uc_open(); $logout = uc_user_synlogout(); $this->cookie->unset_cookie(); echo $logout; } elseif ($this->config["sy_pw_type"]) { include(APP_PATH . "/api/pw_api/pw_client_class_phpapp.php"); $username = $_SESSION["username"]; $pw = new PwClientAPI($username, "", ""); $pw->logout(); //PW同步退出 $this->cookie->unset_cookie(); } else { $this->cookie->unset_cookie(); } session_start(); unset($_SESSION['qq']); unset($_SESSION['wx']); unset($_SESSION['sina']); //PW同步退出 //$this->ACT_msg($this->config['sy_weburl'],"您已成功退出!"); if ($result) { echo 1; die; } } function del_dir($dir_adds = '', $del_def = 0) { $result = false; if (!is_dir($dir_adds)) { return false; } $handle = opendir($dir_adds); while (($file = readdir($handle)) !== false) { if ($file != '.' && $file != '..') { $dir = $dir_adds.DIRECTORY_SEPARATOR.$file; is_dir($dir) ? $this->del_dir($dir) : @unlink($dir); } } closedir($handle); if ($del_def == 0) { $result = @rmdir($dir_adds) ? true : false; } else { $result = true; } return $result; } function seo($ident,$title='',$keyword='',$description='',$settpl = true, $iswxapp = false) { if ($iswxapp){ // 微信小程序用seo include DATA_PATH.'api/wxapp/wxseo.cache.php'; }else{ include PLUS_PATH."seo.cache.php"; } $seo=$seo[$ident]; if(is_array($seo)){ foreach($seo as $k=>$v){ if($this->config['did']!="" && $this->config['did']==$v['did']){ $fzseo=$v; }else{ $seo=$v; } } if($fzseo){ $seo=$fzseo; } } $data=$this->data; //获取对应标签 if(is_array($seo)){ $cityname = !empty($this->config['cityname'])?$this->config['cityname']:$this->config["sy_indexcity"]; if($title){ $this->config['sy_webname'] = $title; $seo['title'] = $title; } if($keyword){ $this->config['sy_webkeyword'] = $keyword; $seo['keywords'] = $keyword; } if($description){ $this->config['sy_webmeta'] = $description; $seo['description'] = $description; } foreach($seo as $key=>$value){ $seo[$key] = str_replace("{webname}",$this->config['sy_webname'],$seo[$key]); $seo[$key] = str_replace("{webkeyword}",$this->config['sy_webkeyword'],$seo[$key]); $seo[$key] = str_replace("{webdesc}",$this->config['sy_webmeta'],$seo[$key]); $seo[$key] = str_replace("{weburl}",$this->config['sy_weburl'],$seo[$key]); $seo[$key] = str_replace("{city}",$cityname,$seo[$key]); if(is_array($data)){ foreach($data as $k=>$v){ $seo[$key] = str_replace("{".$k."}",$v,$seo[$key]);//替换 } } if (!empty($seo[$key])){ if(!@strpos('{seacrh_class}',$seo[$key])){ $rdata=$this->get_seacrh_class($ident,$key); if($rdata && !empty($rdata) && (count($rdata)==1&&$rdata[0])){ $seo[$key] = str_replace("{seacrh_class}",$rdata,$seo[$key]); }else{ $seo[$key] = str_replace("{seacrh_class}",'',$seo[$key]); } } if(!@strpos('{search_job}',$seo[$key])){ $rdata=$this->get_search_job($ident,$key); if($rdata && !empty($rdata) && (count($rdata)==1&&$rdata[0])){ $seo[$key] = str_replace("{search_job}",$rdata,$seo[$key]); }else{ $seo[$key] = str_replace("{search_job}",'',$seo[$key]); } } if(!@strpos('{search_city}',$seo[$key])){ $rdata=$this->get_search_city($ident,$key); if($rdata && !empty($rdata) && (count($rdata)==1&&$rdata[0])){ $seo[$key] = str_replace("{search_city}",$rdata,$seo[$key]); }else{ $seo[$key] = str_replace("{search_city}",'',$seo[$key]); } } } $seo[$key]=str_replace(' ',' ',$seo[$key]); $seo[$key]=str_replace(array("- -","- -"),'-',$seo[$key]); $seo[$key]=str_replace(array("- -","- -"),'-',$seo[$key]); if($key == 'share_pic'){ $seo[$key] = checkpic($seo[$key]); } } } $desc = mb_substr(str_replace(" ","",str_replace("\r","",str_replace("\n","",strip_tags($seo['description'])))),0,200,'utf-8'); if($settpl){ $this->yunset('title',$seo['title']); $this->yunset('keywords',$seo['keywords']); $this->yunset('description',$desc); }else{ $seo['description'] = $desc; unset($seo['did']); unset($seo['php_url']); unset($seo['rewrite_url']); return $seo; } } //获取搜索类别 function get_seacrh_class($ident,$type='title') { $cacheM = $this->MODEL('cache'); $cache = $cacheM->GetCache(array('hy')); $industry_name = $cache['industry_name']; if($ident=='com_search' || $ident=='part'){ $comcache = $cacheM->GetCache(array('com')); $comdata = $comcache['comdata']; $sex = $comcache['com_sex']; $comclass_name = $comcache['comclass_name']; } if($ident=='user_search'){ $usercache = $cacheM->GetCache(array('user')); $userdata = $usercache['userdata']; $sex = $usercache['user_sex']; $userclass_name = $usercache['userclass_name']; } $uptime = array(1=>'今天',3=>'最近3天',7=>'最近7天',30=>'最近一个月','90'=>'最近三个月'); $data = array(); foreach($_GET as $key=>$v){ switch($key){ case 'hy': $data[]=$industry_name[$v]; break; case 'rec': $data[]='推荐'; break; case 'urgent': $data[]='紧急'; break; case 'pic': $data[]='照片'; break; default: if(!in_array($key,array('idcard','work','cert'))){ if($comdata['job_'.$key]&&$comclass_name[$v]){ $data[]=$comclass_name[$v]; }else if($key=='salary'){ $data[]=$v; }else if($key=='sex'&&$sex[$v]){ $data[]=$sex[$v]; }else if($key=='uptime'&&$uptime[$v]){ $data[]=$uptime[$v]; }else if(($userdata['user_'.$key]||$key=='exp')&&$userclass_name[$v]){ $data[]=$userclass_name[$v]; } } break; } } foreach($data as $key=>$val){ if($val){ $alldata[]=$val; } } if(is_array($alldata)){ if($type=='title'){ $data = implode('-',$alldata); }else{ $data = implode(',',$alldata); } } return $data; } //获取搜索职能 function get_search_job($ident, $type = 'title') { $cacheM = $this->MODEL('cache'); $cache = $cacheM->GetCache(array('job')); $job_name = $cache['job_name']; $data = array(); $getArr = $_GET; //对职能、城市进行处理,有子级时,显示子级,不显示父级、祖父级 foreach ($getArr as $key => $v) { if ($key == 'job_post' && $v != '') { unset($getArr['job1_son']); unset($getArr['job1']); } elseif ($key == 'job1_son' && $v != '') { unset($getArr['job1']); } } foreach ($getArr as $key => $v) { switch ($key) { case 'job1': case 'job1_son': case 'job_post': $data[] = $job_name[$v]; break; } } foreach ($data as $key => $val) { if ($val) { $alldata[] = $val; } } if (is_array($alldata)) { if ($type == 'title') { $data = implode('-', $alldata); } else { $data = implode(',', $alldata); } } return $data; } //获取搜索城市 function get_search_city($ident, $type = 'title') { $cacheM = $this->MODEL('cache'); $cache = $cacheM->GetCache(array('city')); $city_name = $cache['city_name']; $data = array(); $getArr = $_GET; //对职能、城市进行处理,有子级时,显示子级,不显示父级、祖父级 foreach ($getArr as $key => $v) { if ($key == 'three_cityid' && $v != '') { unset($getArr['cityid']); unset($getArr['provinceid']); } elseif ($key == 'cityid' && $v != '') { unset($getArr['provinceid']); } } foreach ($getArr as $key => $v) { switch ($key) { case 'provinceid': case 'cityid': case 'three_cityid': $data[] = $city_name[$v]; break; } } foreach ($data as $key => $val) { if ($val) { $alldata[] = $val; } } if (is_array($alldata)) { if ($type == 'title') { $data = implode('-', $alldata); } else { $data = implode(',', $alldata); } } return $data; } function addkeywords($type, $keyword) { $info = $this->obj->select_once('hot_key', array('key_name' => $keyword, 'type' => $type)); if (is_array($info)) { $this->obj->update_once('hot_key', array('num' => array('+', 1)), array('key_name' => $keyword, 'type' => $type)); } else { $this->obj->insert_into('hot_key', array('key_name' => $keyword, 'num' => 1, 'type' => $type, 'check' => 0)); } } /** * 系统消息提醒 */ function automsg($content, $uid) { $msgM = $this->MODEL('sysmsg'); $msgM->addInfo(array('uid' => $uid, 'content' => $content)); } /** * @param $data * @return mixed */ function post_trim($data) { foreach ($data as $d_k => $d_v) { if (is_array($d_v)) { $data[$d_k] = $this->post_trim($d_v); } else { $data[$d_k] = trim($data[$d_k]); } } return $data; } function get_moblie() { if ($this->config['sy_wap_web'] == "2") { header('location:' . $this->config['sy_weburl']); } $UA = strtoupper($_SERVER['HTTP_USER_AGENT']); if ($this->config['sy_pc_jump_wap'] != '1' && strpos($UA, 'WINDOWS NT') !== false) { header('location:' . Url('index', array('c' => 'wap'))); } } /** * @desc 订阅通知 * @param $id * @param $type */ // TODO 订阅已调整为计划任务推送,采集职位/简历 不做订阅信息查询推送,待删除 function send_dingyue($id, $type) { $notice = $this->MODEL('notice'); if ($type == "2") { $job = $this->obj->select_once('company_job', array('id' => $id), '`name`,`hy`,`uid`'); if ($job['hy'] > 0) { $user = $this->obj->select_all('resume', array('hy_dy' => array('findin', $job['hy'])), '`email_dy`,`msg_dy`,`email`,`telphone`,`uid`,`name`'); if (is_array($user) && $user) { foreach ($user as $v) { $data['uid'] = $v['uid']; $data['name'] = $v['name']; $data['type'] = "userdy"; $data['jobname'] = $job['name']; if ($v['email_dy'] == "1") { $data['email'] = $v['email']; $notice->sendEmailType($data); } if ($v['msg_dy'] == "1") { $data['moblie'] = $v['telphone']; $data['port'] = '1'; $notice->sendSMSType($data); } } } } } else { $expect = $this->obj->select_once('resume_expect', array('id' => $id), '`hy`,`name`'); $user = $this->obj->select_all('company', array('hy_dy' => array('findin', $expect['hy'])), '`email_dy`,`msg_dy`,`uid`,`email`,`linktel`,`name`'); if (is_array($user) && $user) { foreach ($user as $v) { $data['uid'] = $v['uid']; $data['name'] = $v['name']; $data['type'] = "comdy"; $data['resumename'] = $expect['name']; if ($v['email_dy'] == "1") { $data['email'] = $v['email']; $notice->sendEmailType($data); } if ($v['msg_dy'] == "1") { $data['moblie'] = $v['linktel']; $data['port'] = '1'; $notice->sendSMSType($data); } } } } } /** * @desc post提交,在原页面显示提示框 * * @param string $msg 提示消息 * @param int $st 图标编号 * @param string $url 跳转地址 * @param int $tm 跳转时间 * @param string $type 1:后台操作 */ function ACT_layer_msg($msg = "操作已成功!", $st = 9, $url = '', $tm = 2, $type = '0') { //解决ie9 $.get $.post 回调函数的返回值为undefine header("Content-Type: text/html; charset=UTF-8"); echo ''; if (is_array($msg)) { $Html = ''; foreach ($msg as $k => $v) { $Html .= '
' . $v . '
'; } echo $Html; die; } if ($st == 9 && $type == '1') { $this->MODEL('log')->addAdminLog($msg); } $msg = preg_replace('/\([^\)]+?\)/x', "", str_replace(array("(", ")"), array("(", ")"), $msg)); echo ''; exit(); } /** * @desc 消息返回 * * @param $msg 信息提示 * @param string $st 图标编号9 成功 8 失败 * @param string $type 1-批量 0-单条 * @param string $url 跳转地址 * @param string $tm 时间 * @param string $error */ function layer_msg($msg, $st = '9', $type = '0', $url = '', $tm = '2', $error = '0') { if ($type == '1') { $this->ACT_layer_msg($msg, $st, $url, $tm, $type); } else { if ($st == 9) { $this->MODEL('log')->addAdminLog($msg); } $msg = preg_replace('/\([^\)]+?\)/x', "", str_replace(array("(", ")"), array("(", ")"), $msg)); $layer_msg['msg'] = $msg; $layer_msg['tm'] = $tm; $layer_msg['st'] = $st; $layer_msg['url'] = $url; $layer_msg['error'] = $error; $msg = json_encode($layer_msg); //解决ie9 $.get $.post 回调函数的返回值为undefine header("Content-Type: text/html; charset=UTF-8"); echo $msg; die; } } function wapheader($url) { $url = $this->config['sy_wapdomain'] . "/" . $url; header('Location: '.$url); exit(); } /** * 特殊字符过滤 * @param $string * @return */ function stringfilter($string) { $str = trim($string); $regex = "/\\$|\'|\\\|/"; $str = preg_replace($regex, "", $str); return $str; } public function MODEL($ModelName = null, $ModelPath = null) { require_once(APP_PATH.'app/public/action.class.php'); if ($ModelName) { if ($ModelPath) { if (file_exists($ModelPath . '/' . $ModelName . '.class.php')) { require_once($ModelPath . '/' . $ModelName . '.class.php'); } else { return null; } } else { $ModelPath = APP_PATH.'app/model/'; $ModelFileName = $ModelName.'.model.php'; if (file_exists($ModelPath.$ModelFileName)) { require_once($ModelPath.$ModelFileName); } else { return null; } } $ModelName = $ModelName.'_model'; } else { $ModelName = 'model'; } $Model = new $ModelName($this->db, $this->def, array('uid' => $this->uid, 'username' => $this->username, 'usertype' => $this->usertype), $this->tpl); return $Model; } //获取描述 function GET_content_desc($cont) { return mb_substr(strip_tags($cont), 0, 200, "utf-8"); } /** * 自动消息提示框 * @param string $url 跳转地址 * @param string $msg 提示消息 * @param int $st 1成功2失败 * @param int $tm 跳转时间 */ function ACT_msg($url = '', $msg = "操作已成功!", $st = 8, $tm = 3) { if ($url == '') { $url = $this->config['sy_weburl']; } $this->yunset(array('msg' => $msg, 'url' => $url)); if (isMobileUser()) { $this->yuntpl(array('wap/msg')); } else { $this->yuntpl(array('member/public/msg')); } exit(); } /** * wap自动消息提示框 * @param string $url 跳转地址 * @param null $msg 提示消息 * @param int $st 1成功 2失败 * @param int $tm 跳转时间 */ function ACT_msg_wap($url = '', $msg = null, $st = 1, $tm = 5) { if ($url == '') { $url = $this->config['sy_weburl']; } if ($msg == null) { $msg = '操作已成功!'; } $this->yunset(array('msg' => $msg, 'url' => $url, 'tm' => $tm)); $this->yuntpl(array('wap/msg')); exit(); } /** * 用户权限 * * @param $uid * @param $shell * @return bool|null */ function GET_user_shell($uid, $shell) { if (!preg_match("/^\d*$/", $uid)) { return false; } if (!preg_match("/^\d*$/", $_COOKIE['usertype'])) { return false; } $SQL = "SELECT `uid`,`username`,`usertype`,`password`,`salt`,`pid`,`status`,`login_date` FROM `".$this->def."member` WHERE `uid`='$uid' limit 1"; $query = $this->db->query($SQL); $us = is_array($row = $this->db->fetch_array($query)); //验证各项COOKIE信息是否对应 if ($row['status'] != '2' && $row['status'] != '4') { $shell = $us ? $shell == md5($row['username'].$row['password'].$row['salt']) : FALSE; } else { $shell = FALSE; } if ($shell) { //暂停的企业不准登录 if (!isset($_SESSION['auid']) && $row['usertype']==2) { $SQL_com = "SELECT `r_status` FROM `".$this->def."company` WHERE `uid`='$uid' limit 1"; $query_com = $this->db->query($SQL_com); $com_us = is_array($row_com = $this->db->fetch_array($query_com)); if($row_com['r_status']==4){ return FALSE; } } if ($row['usertype'] != $_COOKIE['usertype'] && $row['usertype'] != 0 && isset($_COOKIE['usertype'])) { // 当前用户登录的身份与数据库中身份不同,需判断是否为后台操作的,非后台操作需清除登录状态,重新登录。 session_start(); if (isset($_SESSION['auid'])) { $shell = TRUE; } else { $shell = FALSE; } } if ($row['usertype'] == 0 && !isset($_COOKIE['usertype'])) { $shell = TRUE; } } return $shell ? $row : NULL; } /** * 补全闭合标签 * * @param $html * @return string */ function CloseTags($html) { $html = preg_replace('/<[^>]*$/', '', $html); preg_match_all('#<([a-z]+)(?: .*)?(?#iU', $html, $result); $opentags = $result[1]; preg_match_all('##iU', $html, $result); $closetags = $result[1]; $len_opened = count($opentags); if (count($closetags) == $len_opened) { return $html; } $opentags = array_reverse($opentags); $sc = array('br', 'input', 'img', 'hr', 'meta', 'link'); for ($i = 0; $i < $len_opened; $i++) { $ot = strtolower($opentags[$i]); if (!in_array($opentags[$i], $closetags) && !in_array($ot, $sc)) { $html .= ''; } else { unset($closetags[array_search($opentags[$i], $closetags)]); } } return $html; } /** * 检查上传图片路径,该路径是否有图片,防止恶意上传 * * @param string $post 上传路径 * @param string $url 现有路径 * @return string */ // TODO:暂时无调用,待删除 function checksrc($post, $url = '') { if (strpos($post, $this->config['sy_weburl']) !== false) { $post = str_replace($this->config['sy_weburl'], '.', $post); } $post = str_replace(array('./data', '../data'), 'data', $post); if ((strpos($post, 'data/logo/') !== false || strpos($post, 'data/upload/special/') !== false) && file_exists(APP_PATH.$post)) { $picUrl = $post; } else { $src = substr($post, strpos($post, 'data/upload/')); if (file_exists(APP_PATH.$src) && $post != $url) { $picUrl = './'.$post; if ($url != '') { $url = str_replace(array('./', '../'), '', $url); } } else { $picUrl = $url; } } return $picUrl; } /** * @desc 检查账号是否被锁定 * @param $uid * @param array $data */ function MemberLock($uid, $data = array()) { $userInfoM = $this->MODEL('userinfo'); $uInfo = $userInfoM->getInfo(array('uid' => $uid), array('field' => '`status`')); if ($uInfo['status'] == 2) { $this->cookie->unset_cookie(); if ($data['utype'] == 'wap') { $data['msg'] = '账号已被锁,请联系管理员'; $data['url'] = Url('wap', array('c' => 'login')); $this->yunset("layer", $data); }else{ $this->ACT_msg(Url('login'), "账号已被锁,请联系管理员"); } } } /** * 更多栏目导航 */ function moreMenu() { include PLUS_PATH.'menu.cache.php'; $navList = isset($menu_name) && $menu_name[26] ? $menu_name[26] : array(); if (!empty($navList)) { foreach ($navList as $k => $v) { $navList[$k]['pic_n'] = checkpic($v['pic']); if ($v['type'] == '2') { $navList[$k]['url_n'] = $v['url']; } else { if (strpos($v['url'], '&') !== false && strpos($v['url'], '=') !== false) { $url = explode('&', $v['url']); $sonUrl = array(); foreach ($url as $key => $value) { $urls = explode('=', $value); $sonUrl[$urls[0]] = $urls[1]; } $navList[$k]['url_n'] = Url('wap', $sonUrl); unset($sonUrl); } else { $navList[$k]['url_n'] = Url('wap', array('c' => $v['url'])); } } } $this->yunset('navlist', $navList); } } } ?>