public function studentAdd($data = array()) { if (!empty($data)) { $account_data['login_email'] = $data['login_email']; $account_data['login_pass'] = MD5(Crypt::encrypt(123456)); //默认密码 $account_data['account_type'] = 2; //默认账户类型 $account_data['create_time'] = $data['create_time']; $account_data['modify_time'] = $data['modify_time']; $account_id = D('Account')->accountAdd($account_data); if ($account_id) { $data['account_id'] = $account_id; $bool = $this->data($data)->add(); if ($bool) { return array('status' => 'true', 'msg' => '新增学员成功', 'data' => $bool); } else { // $bool = D('Account')->accountDelete(); to do ... return array('status' => 'true', 'msg' => '新增学员失败', 'data' => $account_id); } } else { return array('status' => 'false', 'msg' => '学员Account添加失败'); } } }
/** * 下载 * @author jry <*****@*****.**> */ public function download($token) { if (empty($token)) { $this->error('token参数错误!'); } //解密下载token $file_md5 = \Think\Crypt::decrypt($token, user_md5(is_login())); if (!$file_md5) { $this->error('下载链接已过期,请刷新页面!'); } $public_upload_object = D('PublicUpload'); $file_id = $public_upload_object->getFieldByMd5($file_md5, 'id'); if (!$public_upload_object->download($file_id)) { $this->error($public_upload_object->getError()); } }
public function resetAccount() { $data = I('post.'); $acParam = array('pkid' => $data['acId'], 'login_email' => $data['email'], 'login_pass' => MD5(C('DATA_AUTH_KEY') . Crypt::encrypt(strtolower($data['password'])))); /* $bool = D('Account')->checkMailUnique($acParam['login_email'],$acParam['pkid']); if(!$bool){ exit(json_encode(array('status' => 'fail','msg' => '修改失败','email' => 'notunique'))); } */ $pwdRule = checkpass($data['password']); if (!$pwdRule) { exit(json_encode(array('status' => 'fail', 'msg' => '修改失败', 'pass_word' => 'notunique'))); } $stParam = array('pkid' => $data['enId'], 'login_email' => $data['email']); //$result = D('Account')->data($acParam)->save(); $this->StudentModel->data($stParam)->save(); /* if($result !== false){ exit(json_encode(array('status' => 'success','msg' => '修改成功'))); }else{ exit(json_encode(array('status' => 'fail','msg' => '修改失败'))); } */ }
/** * 获取文章详情 * @author jry <*****@*****.**> */ public function detail($id, $map = null) { //获取基础表信息 $con = array(); $con['id'] = $id; $con['status'] = array('egt', 1); // 正常、隐藏两种状态是可以访问的 if ($map) { $con = array_merge($con, $map); } $info = $this->where($con)->find(); if (!is_array($info)) { $this->error = '文章被禁用或已删除!'; return false; } // 阅读量加1 $result = $this->where(array('id' => $id))->SetInc('view'); // 获取作者信息 $info['user'] = get_user_info($info['uid']); // 获取发帖数量 $info['user']['post_count'] = $this->where(array('uid' => $info['uid']))->count(); // 获取文档模型相关信息 $doc_type_info = D($this->moduleName . '/Type')->find($info['category_info']['doc_type']); if ($doc_type_info['system']) { $this->error = '文档类型错误!'; return false; } $info['doc_type_info'] = $doc_type_info; // 根据文章模型获取扩展表的息 $extend_table_object = D($this->moduleName . '/' . $this->moduleName . ucfirst($doc_type_info['name'])); $extend_data = $extend_table_object->find($id); // 基础信息与扩展信息合并 if (is_array($extend_data)) { $info = array_merge($info, $extend_data); } // 获取筛选字段 $con = array(); $con['id'] = array('in', $doc_type_info['filter_field']); $attribute_object = D($this->moduleName . '/Attribute'); $filter_field_list = $attribute_object->where($con)->select(); $new_filter_field_list = array(); foreach ($filter_field_list as $key => $val) { $val['options'] = parse_attr($val['options']); $new_filter_field_list[$val['name']] = $val; } $info['filter_field_list'] = $new_filter_field_list; // 给文档主要字段赋值,如:文章标题、商品名称 $type_main_field = $attribute_object->getFieldById($doc_type_info['main_field'], 'name'); $info['main_field'] = $info[$type_main_field]; // 下载文件地址加密 if ($info['file']) { $file_list = explode(',', $info['file']); foreach ($file_list as &$file) { $file = D('Home/Upload')->find($file); $uid = is_login(); if ($uid) { $file['token'] = \Think\Crypt::encrypt($file['md5'], user_md5($uid), 3600); } else { $file['token'] = 'please login'; } } $info['file_list'] = $file_list; } // 获取上一篇和下一篇文章信息 $info['previous'] = $this->getPrevious($info); $info['next'] = $this->getNext($info); return $info; }
/** * 文章信息 * @author jry <*****@*****.**> */ public function detail($id) { $map['status'] = array('egt', 1); // 正常、隐藏两种状态是可以访问的 $info = D('Article')->where($map)->detail($id); if (!$info) { $this->error('您访问的文档已禁用或不存在'); } $result = D('Article')->where(array('id' => $id))->SetInc('view'); // 阅读量加1 // 获取文档所属分类详细信息 $category_info = D('Category')->find($info['cid']); // 获取该分类绑定文档模型的主要字段 $type_object = D('Type'); $attribute_object = D('Attribute'); $doc_type_info = $type_object->find($category_info['doc_type']); $type_main_field = $type_object->getFieldById($category_info['doc_type'], 'main_field'); $type_main_field = $attribute_object->getFieldById($doc_type_info['main_field'], 'name'); // 获取筛选字段 $con = array(); $con['id'] = array('in', $doc_type_info['filter_field']); $filter_field_list = $attribute_object->where($con)->select(); $new_filter_field_list = array(); foreach ($filter_field_list as $key => $val) { $val['options'] = parse_attr($val['options']); $new_filter_field_list[$val['name']] = $val; } // 给文档主要字段赋值,如:文章标题、商品名称 $info['main_field'] = $info[$type_main_field]; if ($info['file']) { $file_list = explode(',', $info['file']); foreach ($file_list as &$file) { $file = D('Home/Upload')->find($file); $uid = is_login(); if ($uid) { $file['token'] = \Think\Crypt::encrypt($file['md5'], user_md5($uid), 3600); } else { $file['token'] = 'please login'; } } $info['file_list'] = $file_list; } // 设置文档显示模版 if (C('CURRENT_THEME')) { if ($category_info['detail_template']) { $template = 'article/' . $info['detail_template']; } else { $template = 'article/detail_default'; } } else { $template = $category_info['detail_template'] ? 'Home/article/' . $category_info['detail_template'] : 'Home/article/detail_default'; } // 获取作者信息 $info['user'] = get_user_info($info['uid']); $this->assign('info', $info); $this->assign('_current_category', $category_info); $this->assign('_filter_field_list', $new_filter_field_list); $this->assign('_search_url', U('index', array('cid' => $category_info['id']))); // 构造搜索地址 $this->assign('meta_title', $info['main_field']); $this->assign('meta_keywords', $info['tags'] ?: C('WEB_SITE_KEYWORD')); $this->assign('meta_description', $info['abstract'] ?: C('WEB_SITE_DESCRIPTION')); $this->assign('meta_cover', $info['cover']); Cookie('__forward__', $_SERVER['REQUEST_URI']); $this->display($template); }
/** * 行为扩展的执行入口必须是run * @author jry <*****@*****.**> */ public function run(&$content) { // 安装模式下直接返回 if (defined('BIND_MODULE') && BIND_MODULE === 'Install') { return; } // 数据缓存前缀 // 获取ThinkPHP控制器分级时控制器名称 $controller_name = explode('/', CONTROLLER_NAME); if (sizeof($controller_name) === 2) { C('DATA_CACHE_PREFIX', ENV_PRE . MODULE_NAME . '_' . $controller_name[0] . '_'); } else { C('DATA_CACHE_PREFIX', ENV_PRE . MODULE_NAME . '_'); } // 读取数据库中的配置 $system_config = S('DB_CONFIG_DATA'); if (!$system_config) { // 获取所有系统配置 $system_config = D('Admin/Config')->lists(); // 获取所有安装的模块配置 $module_list = D('Admin/Module')->where(array('status' => '1'))->select(); foreach ($module_list as $val) { $module_config[strtolower($val['name'] . '_config')] = json_decode($val['config'], true); $module_config[strtolower($val['name'] . '_config')]['module_name'] = $val['name']; } if ($module_config) { // 合并模块配置 $system_config = array_merge($system_config, $module_config); // 加载模块标签库及行为扩展 $system_config['TAGLIB_PRE_LOAD'] = explode(',', C('TAGLIB_PRE_LOAD')); // 先取出配置文件中定义的否则会被覆盖 foreach ($module_config as $key => $val) { // 加载模块标签库 if ($val['taglib']) { foreach ($val['taglib'] as $tag) { $system_config['TAGLIB_PRE_LOAD'][] = $val['module_name'] . '\\TagLib\\' . $tag . ''; } } // 加载模块行为扩展 if ($val['behavior']) { foreach ($val['behavior'] as $bhv) { \Think\Hook::add('corethink_behavior', $val['module_name'] . '\\Behavior\\' . $bhv . 'Behavior'); } } } $system_config['TAGLIB_PRE_LOAD'] = implode(',', $system_config['TAGLIB_PRE_LOAD']); } // 获取当前主题的名称 $current_theme = D('Admin/Theme')->where(array('current' => 1))->order('id asc')->find(); // 当前模块模版参数配置 $system_config['TMPL_PARSE_STRING'] = C('TMPL_PARSE_STRING'); // 先取出配置文件中定义的否则会被覆盖 $system_config['TMPL_PARSE_STRING']['__IMG__'] = __ROOT__ . '/' . APP_PATH . MODULE_NAME . '/View/Public/img'; $system_config['TMPL_PARSE_STRING']['__CSS__'] = __ROOT__ . '/' . APP_PATH . MODULE_NAME . '/View/Public/css'; $system_config['TMPL_PARSE_STRING']['__JS__'] = __ROOT__ . '/' . APP_PATH . MODULE_NAME . '/View/Public/js'; $system_config['TMPL_PARSE_STRING']['__LIBS__'] = __ROOT__ . '/' . APP_PATH . MODULE_NAME . '/View/Public/libs'; if ($current_theme) { $current_theme['module'] = explode(',', $current_theme['module']); $current_theme['module'][] = 'Home'; // 强制支持主题对Home的支持 // 一旦开启主题那么前台必须启用主题相关模版(后台无需支持主题) $theme_public_path = './Theme/' . $current_theme['name'] . '/Home/Public'; if (is_dir($theme_public_path)) { $system_config['TMPL_PARSE_STRING']['__HOME_IMG__'] = __ROOT__ . '/' . $theme_public_path . '/img'; $system_config['TMPL_PARSE_STRING']['__HOME_CSS__'] = __ROOT__ . '/' . $theme_public_path . '/css'; $system_config['TMPL_PARSE_STRING']['__HOME_JS__'] = __ROOT__ . '/' . $theme_public_path . '/js'; $system_config['TMPL_PARSE_STRING']['__HOME_LIBS__'] = __ROOT__ . '/' . $theme_public_path . '/libs'; } // 如果启用的主题配置里勾选了当前模块那么当前模块启用主题相关模版否则仍启用系统模版 if (in_array(MODULE_NAME, $current_theme['module'])) { $system_config['CURRENT_THEME'] = $current_theme['name']; // 设置当前主题 $theme_public_path = './Theme/' . $current_theme['name'] . '/' . MODULE_NAME . '/Public'; $theme_wap_path = './Theme/' . $current_theme['name'] . '/' . MODULE_NAME . '/wap'; if (is_dir($theme_public_path)) { $system_config['TMPL_PARSE_STRING']['__IMG__'] = __ROOT__ . '/' . $theme_public_path . '/img'; $system_config['TMPL_PARSE_STRING']['__CSS__'] = __ROOT__ . '/' . $theme_public_path . '/css'; $system_config['TMPL_PARSE_STRING']['__JS__'] = __ROOT__ . '/' . $theme_public_path . '/js'; $system_config['TMPL_PARSE_STRING']['__LIBS__'] = __ROOT__ . '/' . $theme_public_path . '/libs'; } // 判断是否含有wap专用模版 if (is_dir($theme_wap_path)) { $system_config['HAS_WAP'] = 'wap'; } } } else { // 判断是否含有wap专用模版 if (sizeof($controller_name) === 2) { if (is_dir(APP_PATH . MODULE_NAME . '/View/Home/wap')) { $system_config['HAS_WAP'] = 'wap'; } } else { if (is_dir(APP_PATH . MODULE_NAME . '/View/wap')) { $system_config['HAS_WAP'] = 'wap'; } } } // 不直接在config里配置这些参数而要在这里配置是为了支持功能模块的相关架构 if (MODULE_NAME === 'Admin' || $controller_name[0] === 'Admin') { // Admin后台与模块后台标记 $system_config['MODULE_MARK'] = 'Admin'; // SESSION与COOKIE与前缀设置避免冲突 $system_config['SESSION_PREFIX'] = ENV_PRE . 'Admin_'; // Session前缀 $system_config['COOKIE_PREFIX'] = ENV_PRE . 'Admin_'; // Cookie前缀 // 错误页面模板 $system_config['TMPL_ACTION_ERROR'] = APP_PATH . 'Admin/View/Public/think/error.html'; // 错误跳转对应的模板文件 $system_config['TMPL_ACTION_SUCCESS'] = APP_PATH . 'Admin/View/Public/think/success.html'; // 成功跳转对应的模板文件 $system_config['TMPL_EXCEPTION_FILE'] = APP_PATH . 'Admin/View/Public/think/exception.html'; // 异常页面的模板文件 } else { if (MODULE_NAME === 'Home' || $controller_name[0] === 'Home') { // Home前台与模块前台标记 $system_config['MODULE_MARK'] = 'Home'; // SESSION与COOKIE与前缀设置避免冲突 $system_config['SESSION_PREFIX'] = ENV_PRE . 'Home_'; // Session前缀 $system_config['COOKIE_PREFIX'] = ENV_PRE . 'Home_'; // Cookie前缀 // 错误页面模板 $system_config['TMPL_ACTION_ERROR'] = APP_PATH . 'Home/View/Public/think/error.html'; // 错误跳转对应的模板文件 $system_config['TMPL_ACTION_SUCCESS'] = APP_PATH . 'Home/View/Public/think/success.html'; // 成功跳转对应的模板文件 $system_config['TMPL_EXCEPTION_FILE'] = APP_PATH . 'Home/View/Public/think/exception.html'; // 异常页面的模板文件 } } S('DB_CONFIG_DATA', $system_config, 3600); // 缓存配置 } C($system_config); // 添加配置 // 如果存在wap专用模版同时又确实是wap方式访问则设置WAP标记 if (C('HAS_WAP') && is_wap()) { C('IS_WAP', C('HAS_WAP')); } // 检测系统授权 if ($system_config['MODULE_MARK'] === 'Home' && C('CT_USERNAME') !== 'trial') { $sn_decode = \Think\Crypt::decrypt(C('CT_SN'), md5(sha1(C('CT_USERNAME')))); if ($sn_decode) { $sn_decode = explode('[ct]', base64_decode($sn_decode)); $sn_decode_server = json_decode($sn_decode[0], true); if (!in_array($_SERVER['SERVER_NAME'], $sn_decode_server)) { die('很抱歉,该域名未授权!请联系:<a href="http://www.corethink.cn">http://www.corethink.cn</a>'); } if (md5(sha1(C('CT_USERNAME'))) !== $sn_decode[1]) { die('很抱歉,该帐号未授权!请联系:<a href="http://www.corethink.cn">http://www.corethink.cn</a>'); } } else { die('很抱歉,您的授权已过期!请联系:<a href="http://www.corethink.cn">http://www.corethink.cn</a>'); } } }
/** * 管理员信息更新 * @author Martin.Cheng <*****@*****.**> */ public function update() { if (IS_POST) { $id = I("post.user_id"); $data['login_email'] = I('post.mail'); $data['truename'] = I('post.username'); $data['avatar'] = I('post.headpic'); $data['mobile'] = I('post.mobile'); $data['valid_status'] = I('post.status'); $data['modify_time'] = $this->nowtime; $password = I('post.password'); if (!empty($password)) { $data['login_pass'] = MD5(Crypt::encrypt(I('post.password'))); } $bool = $this->AdminUserModel->adminUpdata($data, I("post.user_id")); if ($bool) { $this->redirect("AdminUser/index", '', 3, '修改成功'); } else { $this->redirect("AdminUser/edit", array('id' => $id), 3, '修改失败'); } } }
/** * 文章信息 * @author jry <*****@*****.**> */ public function detail($id) { $map['status'] = array('egt', 1); //正常、隐藏两种状态是可以访问的 $info = D('Document')->where($map)->detail($id); if (!$info) { $this->error('您访问的文档已禁用或不存在'); } $result = D('Document')->where(array('id' => $id))->SetInc('view'); //阅读量加1 //获取文档所属分类详细信息 $category_info = D('Category')->find($info['cid']); //获取该分类绑定文档模型的主要字段 $document_type_object = D('DocumentType'); $document_type_main_field = $document_type_object->getFieldById($category_info['doc_type'], 'main_field'); $document_type_main_field = D('DocumentAttribute')->getFieldById($document_type_main_field, 'name'); //给文档主要字段赋值,如:文章标题、商品名称 $info['main_field'] = $info[$document_type_main_field]; if ($info['file']) { $file_list = explode(',', $info['file']); foreach ($file_list as &$file) { $file = D('PublicUpload')->find($file); $uid = is_login(); if ($uid) { $file['token'] = \Think\Crypt::encrypt($file['md5'], user_md5($uid), 60); } else { $file['token'] = 'please login'; } } $info['file_list'] = $file_list; } //设置文档显示模版 $template = $category_info['detail_template'] ? 'Document/' . $category_info['detail_template'] : 'Document/detail_default'; $this->assign('info', $info); $this->assign('__CURRENT_CATEGORY__', $category_info['id']); $this->assign('meta_title', $info['main_field']); Cookie('__forward__', $_SERVER['REQUEST_URI']); $this->display($template); }