<a href="index.php?mod=<?php echo $member['username']; ?> &type=my_verify">等待审核</a> </li> <?php if (!empty($GLOBALS['_J']['pluginhooks']['global_header_mynav2'])) { echo $GLOBALS['_J']['pluginhooks']['global_header_mynav2']; } ?> <li> <a href="index.php?mod=topic&code=recd">[官方推荐]</a> <a href="index.php?mod=topic&code=topicnew">最新被<?php echo $this->Config['changeword']['dig']; ?> </a> <a href="index.php?mod=topic&code=topicnew&orderby=post">最新发布</a> <?php if ($this->Config['vest_enable']) { ?> <?php if (!$this->Config['vest_role'] || jsg_find($this->Config['vest_role'], $member['role_id'])) { ?> <a href="index.php?mod=settings&code=vest" target=_blank>添加新马甲</a> <?php } ?> <?php $vest = jlogic('member_vest')->get_member_vest(MEMBER_ID); ?> <?php if ($vest) { ?> <a href="javascript:void(0);" title="可使用下面帐号登录">已有马甲:</a> <?php if (is_array($vest)) { foreach ($vest as $k => $v) { ?> <?php
function HasPermission($mod, $code, $is_admin = 0, $uid = 0) { $MemberFields = array(); if ($uid) { if (is_array($uid)) { $MemberFields = $uid; } elseif (($uid = max(0, (int) $uid)) > 0 && $uid != $this->MemberFields['uid']) { $MemberFields = jsg_member_info($uid); } if ($MemberFields && ($_role_info = jtable('role')->row($MemberFields['role_id']))) { $MemberFields = array_merge($MemberFields, $_role_info); } } if (!$MemberFields || $MemberFields['uid'] < 1) { $MemberFields = $this->MemberFields; } $mod = trim($mod); $action = trim($code); $role_id = (int) $MemberFields['role_id']; $role_name = $MemberFields['role_name']; $role_privilege = $MemberFields['role_privilege']; if ($role_id < 1 && true !== JISHIGOU_FOUNDER) { $this->_SetError("角色编号不能为空,或者该编号在服务器上已经删除"); return false; } $is_admin = $is_admin ? 1 : 0; if (!isset($this->ActionList[$mod])) { $this->ActionList[$mod] = jtable('role_action')->get_list($mod, $is_admin); } $current_action = array(); if (($current_action_id = $this->ActionList[$mod]['index'][$action]) !== null || ($current_action_id = $this->ActionList[$mod]['index']["*"]) !== null) { $current_action = $this->ActionList[$mod]['info'][$current_action_id]; $current_action['id'] = $current_action_id; $current_action['mod'] = $mod; $this->_SetCurrentAction($current_action); if (true === JISHIGOU_FOUNDER) { return true; } if ($current_action['allow_all'] == 1) { return true; } if ($current_action['allow_all'] == '-1') { $this->_SetError("系统已经禁止<B>{$current_action['name']}</B>的任何操作"); return false; } if ($MemberFields['role_privilege'] == "*") { return true; } if (false === jsg_find($role_privilege, $current_action_id, ',')) { if ($ActionList[$current_action_id]['message']) { $message = $ActionList[$current_action_id]['message']; } else { $message = "您的角色({$role_name})没有{$current_action['name']}权限"; if (5 == $role_id) { $message .= ";<br />请先通过<a href='index.php?mod=settings#modify_email_area'>邮件验证</a>或者<a href='index.php?mod=other&code=contact'>联系我们</a>"; } } $this->_SetError($message); return false; } } else { $this->_SetCurrentAction($current_action); if (!$GLOBALS['_J']['config']['safe_mode']) { return true; } if (!$is_admin) { return true; } if ('POST' != $_SERVER['REQUEST_METHOD']) { return true; } if (!$GLOBALS['_J']['config']['jishigou_founder']) { return true; } $error = "操作模块:{$mod}<br>操作指令:{$action}<br><br>"; $error .= "由于此操作在系统中没有权限控制,您暂时无法执行该操作,请联系网站的超级管理员。"; $this->_SetError($error); return false; } return true; }
function _process_allows($role, $data = array(), $posts = array()) { $posts = $posts ? $posts : $this->Post; foreach ($posts as $k => $v) { if ('allow_' == substr($k, 0, 6)) { $vv = implode(',', $v); $vs = array(); if (jsg_find($vv, 0)) { $vs[] = 0; } elseif (jsg_find($vv, -1)) { $vs[] = -1; $vs[] = $role['id']; } elseif (jsg_find($vv, -2)) { $vs[] = -2; } else { foreach ($v as $i) { $i = (int) $i; if ($i > 0) { $vs[] = $i; } } if ($vs) { $vs[] = -3; } } $vss = 0; if ($vs) { array_unique($vs); sort($vs); $vss = implode(',', $vs); } $data[$k] = $vss; } } return $data; }
function Main() { $member = jsg_member_info(MEMBER_ID); $_act_list = array('imjiqiren' => 1, 'qqrobot' => 1, 'sms' => 1, 'sina' => 1, 'qqwb' => 1); if (isset($_act_list[$this->Code])) { $this->Messager(null, "index.php?mod=tools&code={$this->Code}"); } if ('email' == $this->Code) { $this->Messager(null, 'index.php?mod=settings&code=base#modify_email_area'); } $act_list = array('base' => '我的资料', 'face' => '我的头像', 'secret' => '修改密码', 'user_tag' => array('name' => '我的标签', 'link_mod' => 'user_tag'), 'vip_intro' => array('name' => '申请V认证', 'link_mod' => 'other', 'link_code' => 'vip_intro')); if ($member['validate'] && $member['validate_extra']) { $act_list['validate_extra'] = '专题设置'; } if ($this->Config['sendmailday'] && $this->Config['sendmailday'] > 0) { $act_list['sendmail'] = '邮件提醒'; } if ($this->Config['vest_enable']) { $act_list['vest'] = '我的马甲'; } $this->Code = $act = $this->Code ? $this->Code : 'base'; $member_nickname = $member['nickname']; if ('face' == $act) { if (true === UCENTER_FACE && true === UCENTER) { include_once ROOT_PATH . './api/uc_client/client.php'; $uc_avatarflash = uc_avatar(MEMBER_UCUID, 'avatar', 'returnhtml'); $query = $this->DatabaseHandler->Query("select * from " . TABLE_PREFIX . "members where `uid`='{$member['uid']}'"); $_member_info = $query->GetRow(); if ($member['uid'] > 0 && MEMBER_UCUID > 0 && !$_member_info['face']) { $uc_check_result = uc_check_avatar(MEMBER_UCUID); if ($uc_check_result) { $this->DatabaseHandler->Query("update " . TABLE_PREFIX . "members set `face`='./images/noavatar.gif' where `uid`='{$member['uid']}'"); } } } elseif (true === UCENTER_FACE && true === PWUCENTER) { $pwuc_avatarflash = true; $pwurl_setuserface = UC_API . '/profile.php?action=modify&info_type=face'; } else { $temp_face = ''; if ($this->Get['temp_face'] && is_image($this->Get['temp_face'])) { $temp_face = $this->Get['temp_face']; $member['face_original'] = $temp_face; } } } elseif ('base' == $act) { $op = jget('op'); $groupProfile = jconf::get('groupprofile'); $sql = "select * from `" . TABLE_PREFIX . "memberfields` where `uid`='{$member['uid']}'"; $query = $this->DatabaseHandler->Query($sql); $memberfields = $query->GetRow(); if (!$memberfields) { $memberfields = array(); $memberfields['uid'] = $member['uid']; $sql = "insert into `" . TABLE_PREFIX . "memberfields` (`uid`) values ('{$member['uid']}')"; $this->DatabaseHandler->Query($sql); } $privacy = array(); if ($memberfields['profile_set']) { $privacy = unserialize($memberfields['profile_set']); } #附加信息 $member_profile = DB::fetch_first("select * from `" . TABLE_PREFIX . "members_profile` where `uid` = '{$member['uid']}'"); if ($member_profile) { if ($member_profile['birthcity']) { $birthcity = explode('-', $member_profile['birthcity']); $b_province = $birthcity[0]; $b_city = $birthcity[1]; $b_area = $birthcity[2]; $b_street = $birthcity[3]; } $member = array_merge($member_profile, $member); } $query = $this->DatabaseHandler->Query("select * from " . TABLE_PREFIX . "common_district where `upid` = '0' order by list"); while ($rsdb = $query->GetRow()) { $province[$rsdb['id']]['value'] = $rsdb['id']; $province[$rsdb['id']]['name'] = $rsdb['name']; if ($member['province'] == $rsdb['name']) { $province_id = $rsdb['id']; } } $b_province_list = jform()->Select("b_province", $province, $b_province, "onchange=\"changeProvince('b');\""); if (@is_file(ROOT_PATH . 'include/logic/cp.logic.php') && $this->Config['company_enable']) { if ($member['companyid']) { $canmod = false; } else { $canmod = true; } $companyselect = $this->CpLogic->get_cp_html($member['companyid'], 'company', 0, $canmod); if ($this->Config['department_enable']) { if ($member['departmentid']) { $danmod = false; } else { $danmod = true; } $departmentselect = $this->CpLogic->get_cp_html($member['departmentid'], 'department', $member['companyid'], $danmod); } if ($member['jobid']) { $janmod = false; } else { $janmod = true; } $jobselect = jlogic('job')->get_job_select($member['jobid'], $janmod); $morcompanys = $this->CpLogic->get_cp_users(); } $gender_radio = jform()->Radio('gender', array(1 => array('name' => '男', 'value' => 1), 2 => array('name' => '女', 'value' => 2)), $member['gender']); $_options = array('0' => array('name' => '请选择', 'value' => '0'), '身份证' => array('name' => '身份证', 'value' => '身份证'), '学生证' => array('name' => '学生证', 'value' => '学生证'), '军官证' => array('name' => '军官证', 'value' => '军官证'), '护照' => array('name' => '护照', 'value' => '护照'), '营业执照' => array('name' => '营业执照', 'value' => '营业执照'), '官方公函' => array('name' => '官方公函', 'value' => '官方公函'), '驾驶证' => array('name' => '驾驶证', 'value' => '驾驶证'), '其他' => array('name' => '其他', 'value' => '其他')); $validate_card_type_select = jform()->Select('validate_card_type', $_options, $memberfields['validate_card_type']); $province_list = jform()->Select("province", $province, $province_id, "onchange=\"changeProvince();\""); if ($province_id) { if ($member['city']) { $hid_city = DB::result_first("select `id` from " . TABLE_PREFIX . "common_district where name = '{$member['city']}' and upid = '{$province_id}'"); } if ($hid_city) { if ($member['area']) { $hid_area = DB::result_first("select `id` from " . TABLE_PREFIX . "common_district where name = '{$member['area']}' and upid = '{$hid_city}'"); } if ($hid_area) { if ($member['street']) { $hid_street = DB::result_first("select `id` from " . TABLE_PREFIX . "common_district where name = '{$member['street']}' and upid = '{$hid_area}'"); } } } } } elseif ('user_medal' == $act) { if ($this->Config[sina_enable] && sina_weibo_init($this->Config)) { $sina = sina_weibo_has_bind(MEMBER_ID); } if ($this->Config[imjiqiren_enable] && imjiqiren_init($this->Config)) { $imjiqiren = imjiqiren_has_bind(MEMBER_ID); } if ($this->Config[sms_enable] && sms_init($this->Config)) { $sms = sms_has_bind(MEMBER_ID); } if ($this->Config[qqwb_enable] && qqwb_init($this->Config)) { $qqwb = qqwb_bind_icon(MEMBER_ID); } $sql = "select MD.medal_img , MD.medal_name , UM.* from `" . TABLE_PREFIX . "user_medal` UM left join `" . TABLE_PREFIX . "medal` MD on UM.medalid=MD.id where UM.uid='" . MEMBER_ID . " ' "; $query = $this->DatabaseHandler->Query($sql); $medal_list = array(); $medal_ids = array(); while (false != ($row = $query->GetRow())) { $medal_list[] = $row; $medal_ids[$row['medalid']] = $row['medalid']; } $medal_ids_str = implode(",", $medal_ids); $_member = DB::fetch_first("select * from " . TABLE_PREFIX . "members where `uid`='" . MEMBER_ID . "'"); if ($medal_ids_str != $_member['medal_id']) { $this->DatabaseHandler->Query("update " . TABLE_PREFIX . "members set medal_id='{$medal_ids_str}' where `uid`='" . MEMBER_ID . "'"); } } elseif ('exp' == $act) { $experience = jconf::get('experience'); $exp_list = $experience['list']; $mylevel = $member['level']; $my_credits = $member['credits']; foreach ($exp_list as $v) { if ($my_credits >= $v['start_credits']) { $my_level = $v['level']; } } if ($mylevel != $my_level) { $sql = "update `" . TABLE_PREFIX . "members` set `level`='{$my_level}' where `uid`='" . MEMBER_ID . "'"; $this->DatabaseHandler->Query($sql); $sql = "select `level` from `" . TABLE_PREFIX . "members` where `uid`='" . MEMBER_ID . "' "; $query = $this->DatabaseHandler->Query($sql); $members = $query->GetRow(); $member['level'] = $members['level']; } $my_level_begin_credits = $exp_list[$my_level]['start_credits']; $next_level = $my_level + 1; $next_level_begin_credits = $exp_list[$next_level]['start_credits']; $my_exp = $my_credits - $my_level_begin_credits; $nex_exp = $next_level_begin_credits - $my_level_begin_credits; $level_width_arr = array('1' => '27', '2' => '31', '3' => '45', '4' => '51', '5' => '62', '6' => '68', '7' => '77', '8' => '82', '9' => '93', '10' => '107'); $level_width = $my_exp * $level_width_arr[$my_level] / $nex_exp; $exp_width_arr = array('1' => '15', '2' => '41', '3' => '72', '4' => '116', '5' => '166', '6' => '229', '7' => '296', '8' => '372', '9' => '451', '10' => '545'); $exp_width = 100 * (($level_width + $exp_width_arr[$my_level]) / 569); $nex_exp_credit = $next_level_begin_credits - $my_credits; } elseif ('validate_extra' == $act) { $sql = "select `validate_extra` from `" . TABLE_PREFIX . "memberfields` where `uid` = '" . MEMBER_ID . "' "; $query = $this->DatabaseHandler->Query($sql); $memberfields = $query->GetRow(); $meb_fields = @unserialize($memberfields['validate_extra']); if ($meb_fields['vote']) { $sql = "select * from `" . TABLE_PREFIX . "vote` where `uid` = '" . MEMBER_ID . "' order by `vid` desc limit 0,10 "; $query = $this->DatabaseHandler->Query($sql); $vote_list = array(); while (false != ($row = $query->GetRow())) { $vote_list[] = $row; } } Load::logic('validate_extra'); $this->ValidateExtraLogic = new ValidateExtraLogic(); $uid = MEMBER_ID; $extra = $this->ValidateExtraLogic->get_info($uid); $id = $extra['id']; $data = $extra['data']; } elseif ('qqrobot' == $act) { if (empty($member['qq'])) { $qq_code = $member['uid'] . "j" . md5($member['password'] . $member['username']); } } elseif ('extcredits' == $act) { if (!$this->Config['extcredits_enable']) { $this->Messager("积分功能未启用", null); } $this->Title = '积分管理'; $this->MetaKeywords = '积分兑换,积分管理,积分规则,积分详情'; $this->MetaDescription = '积分兑换,积分管理,积分规则,积分详情'; $top_credit_members = jlogic('mall')->get_top_member_credits(); $feeds = jlogic('feed')->get_feed(5, "`action`='兑换了'"); $config = jconf::get('mall'); $css['rule'] = ' class="current"'; $credits_config = $this->Config['credits']; $_default_credits = array(); $_enable = false; if (is_array($credits_config) && count($credits_config)) { foreach ($credits_config['ext'] as $_k => $_v) { if ($_v['enable']) { $_enable = true; if ($_v['default']) { $_default_credits[$_k] = $_v['default']; } } } } if (!$_enable) { $this->Messager("积分未设置", null); } $op = $this->Get['op']; $op_lists = array('base' => '我的积分', 'detail' => '积分详情', 'rule' => '积分规则'); $op = isset($op_lists[$op]) ? $op : 'base'; if ('base' == $op) { $_search = $_replace = array(); for ($i = 1; $i <= 8; $i++) { $k = 'extcredits' . $i; $_search[$k] = '$member[' . $k . ']'; $_replace[$k] = ' 0 '; if (isset($credits_config['ext'][$k]) && $credits_config['ext'][$k]['enable']) { $_replace[$k] = $credits_config['ext'][$k]['name']; } } $_search['topic_count'] = '$member[topic_count]'; $_replace['topic_count'] = '发微博数量'; $credits_config_formula = str_replace($_search, $_replace, $credits_config['formula']); } elseif ('log' == $op) { $query = $this->DatabaseHandler->Query("select R.rulename,R.action,R.related,RL.* from " . TABLE_PREFIX . "credits_rule_log RL left join " . TABLE_PREFIX . "credits_rule R on R.rid=RL.rid where RL.`uid`='" . MEMBER_ID . "'"); $log_list = array(); while ($row = $query->GetRow()) { $log_list[$row['action']] = $row; } if ($_default_credits) { $log_list['default_credits'] = $_default_credits; $log_list['default_credits']['rulename'] = '注册时的初始积分'; $log_list['default_credits']['total'] = $log_list['default_credits']['cyclenum'] = 1; } $_counts = array(); foreach ($log_list as $k => $row) { $row['dateline'] = $row['dateline'] ? my_date_format($row['dateline'], 'm-d H:i') : ' - '; foreach ($credits_config['ext'] as $_k => $_v) { if (!in_array($k, array('attach_down', 'down_my_attach', 'convert', 'unconvert'))) { $row[$_k] = $row[$_k] * $row['total']; } $_counts[$_k] += $row[$_k]; } if (strpos($row['action'], '_C') !== false || strpos($row['action'], '_D') !== false) { $row['related'] = jlogic('channel')->id2subject($row['related']); } $log_list[$k] = $row; } } elseif ('detail' == $op) { $uid = MEMBER_ID; $rule = jconf::get('credits_rule'); foreach ($rule as $key => $value) { $rule_id[$value['rid']] = $value['rulename']; } $credits_field = array(); foreach ($GLOBALS['_J']['config']['credits']['ext'] as $key => $value) { $credits_field[] = $key; } $list = jtable('credits_log')->get(array('sql_where' => "uid = {$uid}", 'sql_order' => 'id desc', 'page_num' => 20)); foreach ($list['list'] as $key => $value) { $log_list[$key]['rid'] = $value['rid']; $log_list[$key]['rulename'] = $rule_id[$value['rid']]; $log_list[$key]['dateline'] = $value['dateline'] ? my_date_format($value['dateline'], 'm-d H:i') : ' - '; foreach ($credits_field as $k => $v) { $log_list[$key][$v] = $value[$v]; } if (strpos($value['remark'], '[a]') && strpos($value['remark'], '发布') === 0) { $t = explode('[a]', $value['remark']); $t1 = $t[1]; $t = parse_url($t[1]); $t = $t['query']; parse_str($t, $out); $log_list[$key]['remark'] = "发布微博【微博ID:<a href='{$t1}' target='_blank'>{$out[code]}</a>】"; $log_list[$key]['detail_remark'] = "发布微博【微博ID:{$out['code']}】"; } else { $log_list[$key]['remark'] = strlen($value['remark']) > 30 ? mb_substr($value['remark'], 0, 30, $GLOBALS['_J']['charset']) . '...' : $value['remark']; $log_list[$key]['detail_remark'] = $value['remark']; } } } elseif ('rule' == $op) { if (!($credits_rule = jconf::get('credits_rule'))) { $sql = "select * from " . TABLE_PREFIX . "credits_rule order by rid"; $query = $this->DatabaseHandler->Query($sql); $credits_rule = array(); while (false != ($row = $query->GetRow())) { $v = false; foreach ($credits_config['ext'] as $_k => $_v) { if ($row[$_k]) { $v = true; break; } } if ($v) { foreach ($row as $k => $v) { if (!$v) { unset($row[$k]); } } $credits_rule[$row['action']] = $row; } } } $_cycletypes = array(0 => '一次性', 1 => '每天', 2 => '整点', 3 => '间隔分钟', 4 => '不限周期'); if ($_default_credits) { $credits_rule['default_credits'] = $_default_credits; $credits_rule['default_credits']['rulename'] = '注册时的初始积分'; $credits_rule['default_credits']['cycletype'] = 0; $credits_rule['default_credits']['rewardnum'] = 1; } $mall_enable = (int) jconf::get('mall', 'enable'); foreach ($credits_rule as $k => $v) { if ('unconvert' == $k || 'convert' == $k && empty($mall_enable)) { unset($credits_rule[$k]); } else { $v['cycletype'] = $_cycletypes[(int) $v['cycletype']]; if (!$v['rewardnum']) { $v['rewardnum'] = '不限次数'; } $credits_rule[$k] = $v; } } } else { $this->Messager("未定义的操作"); } } elseif ('imjiqiren' == $act) { define('IN_IMJIQIREN_MOD', true); include ROOT_PATH . 'modules/imjiqiren.mod.php'; } elseif ('sms' == $act) { define('IN_SMS_MOD', true); include ROOT_PATH . 'modules/sms.mod.php'; } elseif ('qqwb' == $act) { if (!qqwb_init($this->Config)) { $this->Messager('腾讯微博功能未启用,请联系管理员', null); } $qqwb = jconf::get('qqwb'); $qqwb_bind_info = qqwb_bind_info(MEMBER_ID); if ($qqwb_bind_info) { if ($qqwb['is_synctopic_toweibo']) { $synctoqq_radio = jform()->YesNoRadio('synctoqq', (int) $qqwb_bind_info['synctoqq']); } } } elseif ('sina' == $act) { $profile_bind_message = ''; $xwb_start_file = ROOT_PATH . 'include/ext/xwb/sina.php'; if (!is_file($xwb_start_file)) { $profile_bind_message = '插件文件丢失,无法启动!'; } else { require $xwb_start_file; $profile_bind_message = '<a href="javascript:XWBcontrol.bind()">如果看不到新浪微博绑定设置窗口,请点击这里启动。</a>'; $GLOBALS['xwb_tips_type'] = 'bind'; $profile_bind_message .= jsg_sina_footer(); } } elseif ('email' == $act) { } else { if ('sendmail' == $act) { if (!$this->Config['sendmailday']) { $this->Messager('本站点尚未开启邮件提醒功能。', -1); } $member['user_notice_time'] = $member['user_notice_time'] ? $member['user_notice_time'] : 3; $sendtime[$member['user_notice_time']] = ' selected '; } else { if ('vest' == $act) { if (!$this->Config['vest_enable']) { $this->Messager('本站点尚未开启马甲功能。', -1); } if ($this->Config['vest_role'] && false == jsg_find($this->Config['vest_role'], $member['role_id'])) { $this->Messager('你所在的用户组没有添加马甲的权限', -1); } $vest = jlogic('member_vest')->get_member_vest(MEMBER_ID); } elseif ('plugin' == $act) { global $_J; $pluginid = jget('id'); if (!empty($pluginid)) { list($identifier, $module) = explode(':', $pluginid); $module = $module !== NULL ? $module : $identifier; } $plugin = jlogic('plugin')->pluginmodule($pluginid); if ($plugin[0]) { include $plugin[2]; $plugintemplate = $identifier . ':' . $module; $act_list['plugin'] = $plugin[1]; } else { $this->Messager($plugin[1]); } } } } if (empty($this->Title)) { $this->Title = $act_list[$act]; } if ('plugin' == $act) { include template('setting/plugin'); } elseif ('extcredits' == $act) { include template('mall_rule'); } else { include template('setting/setting_main'); } }
function jsg_member_is_founder($uid) { global $_J; $uid = is_numeric($uid) ? $uid : 0; $ret = (bool) ($uid > 0 && $_J['config']['jishigou_founder'] && jsg_find($_J['config']['jishigou_founder'], $uid, ',')); return $ret; }