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 string $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) { // var_dump($ModelName); // var_dump($ModelPath); 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'; } // var_dump($ModelName); // exit(); if (!class_exists($ModelName)) { return NULL; } $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); } } } ?>