/** * 新增属性 */ public function newAction() { //检查是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $data['att_img'] = $validate->getPost('att_img', \Validate::base64()); //属性图 $data['att_name'] = $validate->getPost('att_name', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{2,30}$/iu')); //属性名称 $data['att_sort'] = $validate->getPost('att_sort', \Validate::int()); //排序 //验证数据 if ($validate->getMessage()) { $this->end(400); } //生成学校logo,缩略图 $data['att_img'] = \Func::touchImg($data['att_img'], 'att_img'); //将生成的图片地址存入img,用户失败时删除 $img = [UPLOAD_PATH . $data['att_img'], UPLOAD_PATH . $data['att_img']]; //监测图片是否全部生成成功 if (!$data['att_img']) { \FileUtil::getInstance()->unlink($img); } //新增高校 $result = (new \Attribute())->addAttribute($this->session->get('id'), $data); if ($result != 200) { \FileUtil::getInstance()->unlink($img); } $this->end($result); } //加载所需js $this->assets->addJs('backend/mt-js/attribute-new.js'); }
/** * 修改新闻推荐 */ public function detailAction($news_com_id) { //判定是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['news_com_id'] = $validate->getPost('news_com_id', \Validate::int()); //新闻推荐id $data['news_id'] = $validate->getPost('news_id', \Validate::int()); //新闻id $data['news_com_sort'] = $validate->getPost('news_com_sort', \Validate::regex('/^(0|[1-9]\\d{0,7})$/')); //新闻推荐排序 $data['news_com_status'] = $validate->getPost('news_com_status', \Validate::scopeCall('Setting', 'getStatus')); //显示状态 //验证参数 if ($validate->getMessage()) { $this->end(400); } $this->end((new \NewsCommand())->updNewsCommand($this->session->get('id'), $data)); } //新闻推荐id $news_com_id = (int) $news_com_id; //获取新闻推荐详情 $detail = (new \NewsCommand())->getDetail($news_com_id); if ($detail == 404) { $this->notFound(); } $this->view->setVars(['detail' => $detail]); }
/** * Adds a playlists to user history * increments playlist play count * @return [type] [description] */ private function listened() { Base::requireLogged(); $ret = array('status' => 0); if (empty($_GET['id']) || !Validate::int($_GET['id'])) { return $ret; } $id = (int) $_GET['id']; // Checks if the play is unique $play = UserListened::where('playlist_id', $id)->where('user_id', LOGGED)->findOne(); if ($play) { return $ret; } // Adds playlist to user listening history $history = UserListened::create(); $history->user_id = LOGGED; $history->playlist_id = $id; $history->save(); // Increment play count $playlist = Playlist::findOne($id); if (!$playlist) { return $ret; } $playlist->played_count++; $playlist->save(); // Everything went right $ret['status'] = 1; return $ret; }
/** * 修改考试日历 */ public function detailAction($cal_id) { //判断是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['cal_id'] = $validate->getPost('cal_id', \Validate::int()); //考试日历id $data['cal_year'] = $validate->getPost('cal_year', \Validate::scope(range(2014, 2020))); //考试年份 $data['cal_month'] = $validate->getPost('cal_month', \Validate::scope(range(1, 12))); //考试月份 $data['cal_date'] = $validate->getPost('cal_date', \Validate::length(30, 1), ['slashes' => true, 'html' => true]); //具体考试时间 $data['cal_name'] = $validate->getPost('cal_name', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{2,30}$/iu')); //考试名称 $data['cal_sort'] = $validate->getPost('cal_sort', \Validate::between(99999999, 0)); //分类介绍 //验证参数 if ($validate->getMessage()) { $this->end(400); } //修改banner $result = (new \Calendar())->updCalendar($this->session->get('id'), $data); $this->end($result); } //数据id $cal_id = (int) $cal_id; //考试日历详情数据 $basic = (new \Calendar())->getCalenderDetail($cal_id); //加载js $this->assets->addJs('backend/mt-js/calendar.js'); $this->view->setVars(['basic' => $basic]); }
/** * 高校教师的详细信息 */ public function detailAction($col_news_id) { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['col_id'] = $validate->getPost('col_id', \Validate::int()); //学校id $data['col_news_thumb'] = $validate->getPost('col_news_thumb'); //教师头像 $data['col_news_id'] = $validate->getPost('col_news_id', \Validate::int()); //动态id $data['col_news_title'] = $validate->getPost('col_news_title', \Validate::length(30, 2)); //教师名称 $data['col_news_content'] = $validate->getPost('col_news_content', \Validate::length(100000, 0)); //教师简介 //验证参数 if ($validate->getMessage()) { $this->end(400); } //生成教师头像 if ($data['col_news_thumb']) { $data['col_news_thumb'] = \Func::touchImg($data['col_news_thumb'], 'col_news_thumb'); if (!$data['col_news_thumb']) { $this->end(400); } } $this->end((new \CollegeNews())->updNews($this->session->get('id'), $data)); } //教师id $col_news_id = (int) $col_news_id; //教师数据 $detail = (new \CollegeNews())->getNewsDetail($col_news_id); $this->view->setVars(['col_news_id' => $col_news_id, 'detail' => $detail, 'col_id' => $detail['col_id']]); }
public function newAction() { //判定是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['que_id'] = $validate->getPost('que_id', \Validate::int()); //新闻id $data['que_content'] = $validate->getPost('que_content', \Validate::nil(), ['slashes' => true]); //测试题内容 //验证参数 if ($validate->getMessage()) { $this->end(400); } $this->end((new \Questions())->addQuestions($this->session->get('id'), $data)); } }
/** * 高校教师的详细信息 */ public function detailAction($tra_tea_id) { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['tra_id'] = $validate->getPost('tra_id', \Validate::int()); //学校id $data['tea_id'] = $validate->getPost('tea_id', \Validate::int()); //教师id $data['is_hot'] = $validate->getPost('is_hot', \Validate::int()); //热门 $data['tea_name'] = $validate->getPost('tea_name', \Validate::length(15, 2)); //教师名称 $data['tea_specialty'] = $validate->getPost('tea_specialty', \Validate::length(10, 2)); //教师学位 $data['tea_position'] = $validate->getPost('tea_position', \Validate::length(20, 2)); //教师职位 $data['tea_college'] = $validate->getPost('tea_college', \Validate::length(30, 2)); //毕业学校 $data['tea_sort'] = $validate->getPost('tea_sort', \Validate::length(99999999, 0)); //排序 $data['tea_summary'] = $validate->getPost('tea_summary', \Validate::length(255, 2)); //教师简介 $data['tea_head'] = $validate->getPost('tea_head'); //教师头像 //验证参数 if ($validate->getMessage()) { $this->end(400); } //生成教师头像 if ($data['tea_head']) { $data['tea_head'] = \Func::touchImg($data['tea_head'], 'tea_head'); if (!$data['tea_head']) { $this->end(400); } } $this->end((new \TrainTeacher())->updTeacher($this->session->get('id'), $data)); } //教师id $tra_tea_id = (int) $tra_tea_id; //教师数据 $teacher = (new \TrainTeacher())->getTeacherDetail($tra_tea_id); $this->view->setVars(['tra_tea_id' => $tra_tea_id, 'teacher' => $teacher, 'tra_id' => $teacher['tra_id']]); }
/** * 新增隶属部门 */ public function newAction() { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['dep_name'] = $validate->getPost('dep_name', \Validate::length(15, 2)); //入学途径名称 $data['dep_sort'] = $validate->getPost('dep_sort', \Validate::int()); //入学途径排序 //验证参数 if ($validate->getMessage()) { $this->end(400); } //新增动态 $this->end((new \Department())->addDepartment($this->session->get('id'), $data)); } //加载js $this->assets->addJs('backend/mt-js/school-department.js'); }
/** * 修改banner新闻 */ public function detailAction($news_com_id) { //判定是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['news_ban_id'] = $validate->getPost('news_ban_id', \Validate::int()); //banner新闻id $data['news_id'] = $validate->getPost('news_id', \Validate::int()); //新闻id $data['news_ban_img'] = $validate->getPost('news_ban_img'); //banner图片 $data['news_ban_alt'] = $validate->getPost('news_ban_alt', \Validate::regex('/^[\\da-z\\x{4e00}-\\x{9fa5}]{1,30}$/iu')); //banner图片介绍 $data['news_ban_sort'] = $validate->getPost('news_ban_sort', \Validate::regex('/^(0|[1-9]\\d{0,7})$/')); //banner新闻排序 $data['news_ban_status'] = $validate->getPost('news_ban_status', \Validate::scopeCall('Setting', 'getStatus')); //显示状态 //验证参数 if ($validate->getMessage()) { $this->end(400); } //创建banner图片 $img = $data['news_ban_img']; $data['news_ban_img'] = \Func::touchImg($img, 'news_ban'); if ($img && !$data['news_ban_img']) { $this->end(400); } $result = (new \NewsBanner())->updNewsBanner($this->session->get('id'), $data); if ($result != 200 && is_file(UPLOAD_PATH . $img)) { unlink(UPLOAD_PATH . $img); } $this->end($result); } //新闻推荐id $news_com_id = (int) $news_com_id; //获取新闻推荐详情 $detail = (new \NewsBanner())->getDetail($news_com_id); if ($detail == 404) { $this->notFound(); } $this->view->setVars(['detail' => $detail]); }
/** * 新增属性 */ public function newAction() { //检查是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $data['att_name'] = $validate->getPost('att_name', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{2,30}$/iu')); //属性名称 $data['att_sort'] = $validate->getPost('att_sort', \Validate::int()); //排序 //验证数据 if ($validate->getMessage()) { $this->end(400); } //新增高校 $result = (new \MajorKeywords())->addKeywords($this->session->get('id'), $data); $this->end($result); } //加载所需js $this->assets->addJs('backend/mt-js/keywords.js'); }
/** * 新增专题 */ public function formAction() { //定义js匿名函数 $execJs = function ($msg) { $js = "<script type='text/javascript'>\r\n //禁止回退\r\n window.history.forward(1);\r\n alert('{$msg}');\r\n location.href = history.go(-1);\r\n </script>"; die($js); }; $validate = new \Validate(); $data['file_cat_id'] = $validate->getPost('file_cat_id', \Validate::int()); //专题类型 //验证参数 if ($validate->getMessage()) { $execJs('参数错误'); } //验证文件 if (!isset($_FILES['doc'])) { $execJs('非法操作'); } //验证zip压缩文件 $doc = new File($_FILES['doc']); if ($doc->getExtension() != 'doc' && $doc->getExtension() != 'docx' && $doc->getExtension() != 'ppt' && $doc->getExtension() != 'pptx') { $execJs('请上传doc、docx、ppt、pptx类型的文件'); } $file_name = $doc->getName(); //创建目录 $file_path = FILE_PATH . '/file/' . $data['file_cat_id']; $util = new \FileUtil(); $util->mkdir($file_path); $data['file_url'] = '/file/' . $data['file_cat_id'] . '/' . md5($file_name . time()) . '.' . $doc->getExtension(); $file_url = FILE_PATH . $data['file_url']; $data['file_name'] = $file_name; //移动资源文件,并重命名,与phtml文件相同 $doc->moveTo($file_url); $result = (new \File())->addFile($this->session->get('id'), $data); if ($result != 200) { //删除所有专题相关文件 $this->unlink($file_url); $execJs('上传失败'); } $execJs('专题添加成功'); }
/** * 修改友情链接 */ public function detailAction($link_id) { //判断是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['link_id'] = $validate->getPost('link_id', \Validate::int()); //数据id $data['link_name'] = $validate->getPost('link_name', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{1,30}$/iu')); //友情链接名称 $data['link_url'] = $validate->getPost('link_url', \Validate::regex('/^(http(s)?:\\/\\/)/'), ['slashes' => true, 'html' => true]); //链接url $data['link_sort'] = $validate->getPost('link_sort', \Validate::between(99999999, 0)); //友情链接排序 $data['link_logo'] = $validate->getPost('link_logo'); //友情链接logo //验证参数 if ($validate->getMessage()) { $this->end(400); } //生成友情链接logo if ($data['link_logo']) { $data['link_logo'] = \Func::touchImg($data['link_logo'], 'link_logo'); if (!$data['link_logo']) { $this->end(400); } } //修改友情链接 $result = (new \Link())->updLink($this->session->get('id'), $data); if ($result != 200) { \FileUtil::getInstance()->unlink(UPLOAD_PATH . $data['link_logo']); } $this->end($result); } //数据id $link_id = (int) $link_id; //热点文章详情数据 $basic = (new \Link())->getLinkDetail($link_id); //加载js $this->assets->addJs('backend/mt-js/link.js'); $this->view->setVars(['basic' => $basic]); }
public function detailAction($id) { //判定是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['maj_id'] = $validate->getPost('maj_id', \Validate::int()); //专业ID $data['maj_kidney'] = $validate->getPost('maj_kidney', \Validate::int()); //性格专业 //验证参数 if ($validate->getMessage()) { $this->end(400); } $this->end((new \QuestionsMajor())->updateMajor($this->session->get('id'), $data)); } $id = (int) $id; $detail = (new \QuestionsMajor())->getDetail($id); if (empty($detail)) { $this->notFound(); } $this->view->setVars(['detail' => $detail]); }
public function praiseAction($id) { //判断是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $data['cou_id'] = (int) $id; $data['ip'] = $this->getClientIp(); $data['content'] = $validate->getPost('content', \Validate::length(255, 0), ['slashes' => true, 'html' => true]); $data['star'] = $validate->getPost('star', \Validate::int()); if ($validate->getMessage()) { $this->end(404); } $this->end((new \Course())->Review($data)); } $id = (int) $id; if (!$id) { $this->notFound(); } $detail = (new \Course())->getDetail($id); if ($detail == 404) { $this->notFound(); } $praise = (new \Course())->getPraise($id); foreach ($praise['list'] as $key => $val) { $praise['list'][$key]['cou_rev_ip'] = $this->ipGetCity($val['cou_rev_ip']) == 404 ? "未知网友" : $this->ipGetCity($val['cou_rev_ip']); } //好评差评率 $good = $praise['good']; $bad = $praise['bad']; //设置标题 $this->tag->setTitle($detail['cou_name'] . "-51升学网"); //引入css js $this->assets->addCss("fontend/css/train/train-comment.css"); // $this->assets->addCss("fontend/css/org/course-praise.css"); $this->assets->addJs("fontend/js/org_praise.js"); $this->view->setVars(['detail' => $detail, 'praise' => $praise['list'], 'id' => $id, 'good' => $good, 'bad' => $bad]); }
/** * 知名校友的详细信息 */ public function detailAction($col_alu_id) { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['col_id'] = $validate->getPost('col_id', \Validate::int()); //学校id $data['alu_id'] = $validate->getPost('alu_id', \Validate::int()); //校友id $data['alu_name'] = $validate->getPost('alu_name', \Validate::length(15, 2)); //校友名称 $data['alu_desc'] = $validate->getPost('alu_desc', \Validate::length(255, 2)); //校友简介 $data['alu_src'] = $validate->getPost('alu_src'); //资料来源 $data['alu_head'] = $validate->getPost('alu_head'); //校友头像 //验证参数 if ($validate->getMessage()) { $this->end(400); } //生成校友头像 if ($data['alu_head']) { $data['alu_head'] = \Func::touchImg($data['alu_head'], 'alu_head'); if (!$data['alu_head']) { $this->end(400); } } $this->end((new \CollegeAlumnus())->updAlumnus($this->session->get('id'), $data)); } //校友id $col_alu_id = (int) $col_alu_id; //校友数据 $alumnus = (new \CollegeAlumnus())->getAlumnusDetail($col_alu_id); $this->view->setVars(['col_alu_id' => $col_alu_id, 'alumnus' => $alumnus, 'col_id' => $alumnus['col_id']]); }
/** * 小初高教师的详细信息 */ public function detailAction($sch_tea_id) { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['sch_id'] = $validate->getPost('sch_id', \Validate::int()); //学校id $data['tea_id'] = $validate->getPost('tea_id', \Validate::int()); //教师id $data['tea_name'] = $validate->getPost('tea_name', \Validate::length(15, 2)); //教师名称 $data['tea_degree'] = $validate->getPost('tea_degree', \Validate::length(10, 2)); //教师学位 $data['tea_position'] = $validate->getPost('tea_position', \Validate::length(20, 2)); //教师职位 $data['tea_college'] = $validate->getPost('tea_college', \Validate::length(30, 2)); //毕业学校 $data['tea_sort'] = $validate->getPost('tea_sort', \Validate::length(99999999, 0)); //排序 $data['tea_summary'] = $validate->getPost('tea_summary', \Validate::length(255, 2)); //教师简介 $data['tea_head'] = $validate->getPost('tea_head'); //教师头像 //验证参数 if ($validate->getMessage()) { $this->end(400); } //生成教师头像 if ($data['tea_head']) { $data['tea_head'] = \Func::touchImg($data['tea_head'], 'tea_head'); if (!$data['tea_head']) { $this->end(400); } } $this->end((new \Teacher())->updTeacher($this->session->get('id'), $data)); } //教师id $sch_tea_id = (int) $sch_tea_id; //教师数据 $teacher = (new \Teacher())->getTeacherDetail($sch_tea_id); //获取学校类型 $sch_tea_type = (new \Teacher())->getTeaType($sch_tea_id); if ($sch_tea_type['sch_type'] == 1) { $this->view->setLayout("kindergarten"); } else { $this->view->setLayout("school"); } $this->view->setVars(['sch_tea_id' => $sch_tea_id, 'teacher' => $teacher, 'sch_id' => $teacher['sch_id'], 'sch_tea_type' => $sch_tea_type]); }
/** * 修改banner */ public function detailAction($ban_id) { //判断是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['ban_id'] = $validate->getPost('ban_id', \Validate::int()); //数据id $data['ban_sort'] = $validate->getPost('ban_sort', \Validate::between(99999999, 0)); //图片排序 $data['ban_url'] = $validate->getPost('ban_url', \Validate::regex('/^(http(s)?:\\/\\/)/'), ['slashes' => true, 'html' => true]); //图片url $data['ban_alt'] = $validate->getPost('ban_alt', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{1,30}$/iu')); //图片介绍 $data['ban_start_date'] = $validate->getPost('ban_start_date', \Validate::time('yyyy-mm-dd')); //开始时间 $data['ban_end_date'] = $validate->getPost('ban_end_date', \Validate::time('yyyy-mm-dd')); //结束时间 $ban_img = $validate->getPost('ban_img'); //banner图片 //验证参数 if ($validate->getMessage()) { $this->end(400); } //生成banner图片 if ($ban_img) { $ban_img = \Func::touchImg($ban_img, 'banner'); if (!$ban_img) { $this->end(400); } } //修改banner $result = (new \Banner())->updBanner($this->session->get('id'), $data, $ban_img); if ($result != 200) { \FileUtil::getInstance()->unlink(UPLOAD_PATH . $ban_img); } $this->end($result); } //数据id $ban_id = (int) $ban_id; //banner详情数据 $basic = (new \Banner())->getBannerDetail($ban_id); //加载js $this->assets->addJs('backend/js/datetime/bootstrap-datepicker.js'); $this->assets->addJs('backend/mt-js/banner.js'); $this->view->setVars(['basic' => $basic]); }
/** * 口碑评价 */ public function praiseAction($col_id) { //判断是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $data['col_id'] = $col_id; $data['ip'] = $this->getClientIp(); $data['content'] = $validate->getPost('content', \Validate::length(255, 0), ['slashes' => true, 'html' => true]); $data['star'] = $validate->getPost('star', \Validate::int()); if ($validate->getMessage()) { $this->end(404); } $this->end((new \College())->addReview($data)); } //获取大学基本信息 $model = new \College(); $college = $model->getCollegeBasic($col_id); if (!$college) { $this->notFound(); } $praise = $model->getPraise($col_id); //计算评分 $praise['num'] = 0; foreach ($praise['sco'] as $v) { $praise['num'] += $v['col_rev_star']; $praise['score'] = $praise['num'] / count($praise['list']); } //大家都在评论 foreach ($praise['common_id'] as $item) { $praise['common'][] = $model->getPraiseDesc($item['col_id']); } $common = $praise['common']; $good = $praise['good']; $bad = $praise['bad']; $score = $praise['score']; foreach ($praise['list'] as $key => $val) { $praise['list'][$key]['col_rev_ip'] = $this->ipGetCity($val['col_rev_ip']) == 404 ? "未知网友" : $this->ipGetCity($val['col_rev_ip']); } //设置标题 $this->tag->setTitle($college['col_name'] . "-51升学网"); $web_desc = strip_tags($college['col_summary']); //引入css 和js $this->assets->addCss("fontend/css/org2/university/publish-praise.css"); $this->assets->addJs("fontend/js/org_praise.js"); $this->view->setVars(['college' => $college, 'praise' => $praise['list'], 'good' => $good, 'bad' => $bad, 'score' => $score, 'common' => $common, 'web_desc' => $web_desc]); }
/** * 大学报名处理 */ public function colhandleAction($col_reg_id) { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['col_id'] = $validate->getPost('col_id', \Validate::int()); //学校id $data['col_reg_id'] = $validate->getPost('col_reg_id', \Validate::int()); //报名id $data['col_reg_remark'] = $validate->getPost('col_reg_remark', \Validate::length(255, 2)); //处理记录 //验证参数 if ($validate->getMessage()) { $this->end(400); } $this->end((new \Register())->handleCollegeRegister($this->session->get('id'), $data)); } //回复id $col_reg_id = (int) $col_reg_id; //报名数据 $detail = (new \Register())->getCollgeRegister($col_reg_id); //加载js $this->assets->addJs('backend/mt-js/register-college.js'); $this->view->setVars(['col_reg_id' => $col_reg_id, 'detail' => $detail]); }
/** * Edit a playlist */ private function edit() { Base::requireLogged(); if (LOGGED !== $this->playlist->user_id) { Base::requireAdmin(); } // Set page title View::set('page_title', 'Edit playlist'); // Set playlist $playlist = $this->playlist->asArray(); $playlist['tracks'] = $this->playlist->tracks(); $tags = $this->playlist->tags(); if ($tags) { $playlist['tags'] = implode(', ', $tags); } View::set('playlist', $playlist); // Not submitted if (!isset($_POST['playlist']) && !isset($_POST['draft'])) { View::show('playlist/edit'); } /** * Add playlist title and playlist description */ if (!Validate::len($_POST['title'], 2, 64)) { $error = 'Playlist title must be between 2 and 64 chars'; } elseif (!Validate::len($_POST['description'], 0, 512)) { $error = 'Playlist description must be lesser than 512 chars'; } if ($error) { View::error('playlist/edit', $error); } // Raw HTML may enter the db but it's automatically // encoded at output by Mustache $this->playlist->title = $_POST['title']; $this->playlist->description = $_POST['description']; /** * Uploads cover image */ if (!empty($_FILES['cover']) && $_FILES['cover']['size'] > 0) { Base::uploadImage($_FILES['cover'], $cover, $error); if ($error) { View::error('playlist/edit', $error); } $this->playlist->cover = $cover; } /** * Inserts tags into database */ if (!empty($_POST['tags'])) { // Separates tags by commas $tags = strtolower($_POST['tags']); $tags = explode(',', $tags, 6); // Tag limit $tags = array_slice($tags, 0, 5); // Filter tags foreach ($tags as $k => &$tag) { if (!ADMIN && $tag === 'staff') { continue; } $tag = preg_replace('/[^a-z]+/', ' ', $tag); $tag = trim($tag, ' '); // Tag must have at least 2 chars // And it must be lesser than 32 chars if (!Validate::len($tag, 1, 32)) { unset($tags[$k]); } } if (!empty($tags)) { // Remove tags from PlaylistTag PlaylistTag::where('playlist_id', $this->playlist->id)->deleteMany(); // Insert tags $sql = str_repeat(',(?)', count($tags)); $sql[0] = ' '; Tag::rawExecute("INSERT IGNORE INTO tag(name) VALUES {$sql}", $tags); // Get inserted tags ids and point them to the new playlist $tags = Tag::select('id')->whereIn('name', $tags)->findMany(); foreach ($tags as $tag) { $link = PlaylistTag::create(); $link->playlist_id = $this->playlist->id; $link->tag_id = $tag->id; $link->save(); } } } // Published status $this->playlist->published = isset($_POST['playlist']); /** * Add tracks into db */ if (!isset($_POST['tracks'])) { $error = 'You can\'t publish without any tracks'; $this->playlist->published = 0; } else { if (is_array($_POST['tracks'])) { $max = Base::$g['playlist_max_tracks']; $min = Base::$g['playlist_min_tracks']; $tracks = $_POST['tracks']; if (!isset($tracks[$min - 1])) { $error = "You can't publish without at least {$min} tracks"; $this->playlist->published = 0; } elseif (isset($track[$max])) { $error = "You can't have more than {$max} tracks in a playlist"; $tracks = array_slice($tracks, 0, $max); } /** * Check for haxing */ foreach ($tracks as $k => &$item) { $item = Validate::int($item); if ($item === false) { unset($tracks[$k]); } } // Also get duration $row = Track::whereIn('id', $tracks)->selectExpr('COUNT(id)', 'count')->selectExpr('SUM(duration)', 'duration')->findOne(); if ($row->count != count(array_unique($tracks))) { View::error('playlist/edit', 'Massive error 2. Contact the admin'); } // Store duration in minutes $this->playlist->tracks_count = $row->count; $this->playlist->duration = $row->duration / 60; // Delete the ones already in PlaylistTrack::where('playlist_id', $this->playlist->id)->deleteMany(); // Add new ones foreach ($tracks as $track) { $table = PlaylistTrack::create(); $table->playlist_id = $this->playlist->id; $table->track_id = $track; $table->save(); } } else { View::error('playlist/edit', 'Massive error. Contact the admin'); } } /** * Update playlist in database */ $this->playlist->save(); $msg = $error ?: 'Playlist succesfully edited'; Base::redirect('/' . $this->playlist->id, $msg); }
/** * 权限相关详情信息 */ public function basicAction($aut_id) { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['aut_name'] = $validate->getPost('aut_name', \Validate::length(20, 1)); //权限名称 $data['aut_code'] = $validate->getPost('aut_code', \Validate::regex('/^(add|del|upd)(_[a-z]{3,4})+$/i', '请填写以add_或者del_或者upd_开头后接数据表名的前三或四位的正确格式权限码')); //权限码 $data['aut_cat_id'] = $validate->getPost('aut_cat_id', \Validate::int()); //权限分类id $data['aut_id'] = $validate->getPost('aut_id', \Validate::int()); //验证参数 if ($validate->getMessage()) { $this->end(400); } //修改权限分类 $this->end((new \Authority())->updAuthority($this->session->get('id'), $data)); } $aut_id = (int) $aut_id; //获取权限信息 $basic = (new \Authority())->getAuthority($aut_id); //获取权限分类数据 $aut_cats = (new \Authority())->getAutCats(); //加载js $this->assets->addJs('backend/mt-js/authority.js'); $this->view->setVars(['basic' => $basic, 'aut_cats' => $aut_cats]); }
/** * 修改学校课程 */ public function detailAction($col_id, $col_maj_id) { //检查是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $col_id = (int) $col_id; //学校ID $data['col_maj_id'] = (int) $col_maj_id; //学校专业关联id $data['maj_id'] = $validate->getPost('maj_id', \Validate::int()); //专业ID $data['maj_par_id'] = $validate->getPost('maj_par_id', \Validate::int()); //专业分类ID $data['maj_par_par_id'] = $validate->getPost('maj_par_par_id', \Validate::int()); //专业学科ID $data['maj_sort'] = $validate->getPost('maj_sort', \Validate::int()); //专业排序 $data['maj_click'] = $validate->getPost('maj_click', \Validate::int()); //专业点击量 $data['is_stress'] = $validate->getPost('is_stress', \Validate::int()); //国家重点 $data['is_brand'] = $validate->getPost('is_brand', \Validate::int()); //国家专题 $data['is_province'] = $validate->getPost('is_province', \Validate::int()); //省部重点 $data['col_maj_name'] = $validate->getPost('col_maj_name', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}\\(\\)()]{2,30}$/iu')); //专业名称 $data['col_maj_faculty'] = $validate->getPost('col_maj_faculty', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}\\(\\)()]{2,30}$/iu')); //专业学院 $data['maj_summary'] = $validate->getPost('maj_summary', \Validate::length(1000000, 0), ['slashes' => true]); //招生简章 //验证数据 if ($validate->getMessage()) { $this->end(400); } //验证高校专业是否存在 $result = (new \College())->getMajor($col_id, $data['col_maj_id']); if ($result == 404) { $this->end(404); } //修改高校课程 $result = (new \College())->UpdateMajor($this->session->get('id'), $data); if ($result != 200) { $this->end(400); } $this->end($result); } //获取参数 $col_maj_id = (int) $col_maj_id; $col_id = (int) $col_id; //获取详细信息 $detail = (new \College())->getMajor($col_id, $col_maj_id); if ($detail == 404) { $this->end(404); } //获取一级分类 $categorys = (new \Major())->getCategory(); //湖区专业分类列表 $major_parent = (new \Major())->getParent($detail['maj_par_par_id']); //获取专业列表 $major = (new \Major())->getMajor($detail['maj_par_id']); //教学类型 $genre = (new \Genre())->getList(); //加载所需js $this->assets->addJs('backend/js/editors/summernote/summernote.js'); $this->assets->addJs('backend/mt-js/major-detail.js'); $this->view->setLayout('college'); $this->view->setVars(['detail' => $detail, 'col_id' => $col_id, 'categorys' => $categorys, 'major_parent' => $major_parent, 'major' => $major, 'genre' => $genre]); }
/** * 修改专题 */ public function detailAction($art_ban_id) { //判断是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['top_id'] = $validate->getPost('top_id', ['int']); //专题id $data['top_cat_id'] = $validate->getPost('top_cat_id', \Validate::int()); //专题类型 $data['top_name'] = $validate->getPost('top_name', ['length' => ['max' => 30, 'min' => 0]], ['slashes' => true, 'html' => true]); //专题备注 $data['top_summary'] = $validate->getPost('top_summary', ['length' => ['max' => 200, 'min' => 0]], ['slashes' => true, 'html' => true]); //专题备注 $data['top_remark'] = $validate->getPost('top_remark', ['length' => ['max' => 50, 'min' => 0]], ['slashes' => true, 'html' => true]); //专题备注 $data['top_thumb'] = $validate->getPost('top_thumb'); //专题缩略图 //验证参数 if ($validate->getMessage()) { $this->end(400); } //生成专题缩略图 if ($data['top_thumb']) { $data['top_thumb'] = $this->touch($data['top_thumb'], 'topic', true); if (!$data['top_thumb']) { $this->end(400); } } //修改专题 $result = (new \Topic())->updTopic($this->session->get('id'), $data); if ($result != 200) { $this->unlink(UPLOAD_PATH . $data['top_thumb']); } $this->end($result); } //数据id $art_ban_id = (int) $art_ban_id; //热点文章详情数据 $basic = (new \Topic())->getTopicDetail($art_ban_id); //所有专题分类 $category = (new \TopicCategory())->getList(1, 99999)['list']; //加载js $this->assets->addJs('backend/mt-js/topic.js'); $this->view->setVars(['basic' => $basic, 'category' => $category]); }
/** * Tell the ORM the LIMIT and OFFSET of a requested pagination * @return object orm instance * @author nytr0gen */ public function paginate($count = -1, $limit = -1) { if ($limit == -1) { $limit = 5; } if ($count == -1) { $count = $this->count(); } // No rows if (!$count) { return false; } $page = 1; if (isset($_GET['page']) && Validate::int($_GET['page']) && $_GET['page'] > 1) { $page = (int) $_GET['page']; } // Calculates offset $offset = ($page - 1) * $limit; if ($offset >= $count) { return array('num' => $count); } // Rows $rows = $this->limit($limit)->offset($offset)->findArray(); // Pagination // Availability of prev button and next button $prev = $page - 1; $next = $offset + $limit < $count ? $page + 1 : 0; return array('rows' => $rows, 'num' => $count, 'prev' => $prev, 'next' => $next); }
/** * 专业评论回复 */ public function majreplayAction($maj_rev_id) { //判断是否ajax if ($this->request->isAjax()) { $validate = new \Validate(); $data['maj_id'] = $validate->getPost('maj_id', \Validate::int()); //专业id $data['maj_rev_id'] = $validate->getPost('maj_rev_id', \Validate::int()); //评论id $data['maj_rev_replay'] = $validate->getPost('maj_rev_replay', \Validate::length(255, 2)); //回复 //验证参数 if ($validate->getMessage()) { $this->end(400); } $this->end((new \Review())->updMajorReplay($this->session->get('id'), $data)); } //回复id $maj_rev_id = (int) $maj_rev_id; //评论数据 $detail = (new \Review())->getMajorReplay($maj_rev_id); //加载js $this->assets->addJs('backend/mt-js/review-major.js'); $this->view->setVars(['maj_rev_id' => $maj_rev_id, 'detail' => $detail]); }
/** * 新增学校课程 */ public function detailAction($tra_id, $cou_id) { //检查是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $data['tra_id'] = (int) $tra_id; //学校ID $data['cou_id'] = (int) $cou_id; //课程ID $data['cou_thumb'] = $validate->getPost('cou_thumb'); //学校缩略图 $data['spe_id'] = $validate->getPost('spe_id', \Validate::int()); //分类ID $data['cou_name'] = $validate->getPost('cou_name', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{2,30}$/iu')); //课程名称 $data['cou_sort'] = $validate->getPost('cou_sort', \Validate::int()); //课程排序 $data['cou_price'] = $validate->getPost('cou_price', \Validate::regex('/^[a-z0-9\\.\\/\\(\\)\\(\\)\\x{4e00}-\\x{9fa5}]{0,30}$/iu')); //课程价格 $data['cou_system'] = $validate->getPost('cou_system', \Validate::int()); //上课类型 $data['is_hot'] = $validate->getPost('is_hot', \Validate::int()); //是否热门 $data['cou_summary'] = $validate->getPost('cou_summary', \Validate::nil(), ['slashes' => true]); //课程简介 $data['cou_key'] = $validate->getPost('cou_key', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{1,10}([\\s,][a-z0-9\\x{4e00}-\\x{9fa5}]{1,10}){0,9}$/iu')); //关键词 $data['cou_desc'] = $validate->getPost('cou_desc', \Validate::length(250, 2), ['slashes' => true, 'html' => true]); //描述 $data['cou_trait'] = $validate->getPost('cou_trait', \Validate::length(250, 2), ['slashes' => true, 'html' => true]); //优势 $data['tea_id'] = $validate->getPost('tea_id'); $data['cou_addr'] = $validate->getPost('cou_addr'); //验证数据 if ($validate->getMessage()) { $this->end(400); } //验证机构是否存在 if (!(new \Train())->getDetail($tra_id)) { $this->end(404); } //生成课程缩略图 $cou_thumb = \Func::touchImg($data['cou_thumb'], 'cou_thumb'); //将生成的图片地址存入img,用户失败时删除 $img = [UPLOAD_PATH . $data['cou_thumb']]; //监测图片是否全部生成成功 if ($data['cou_thumb'] && !$cou_thumb) { \FileUtil::getInstance()->unlink($img); $this->end(400); } $data['cou_thumb'] = $cou_thumb; //修改高校课程 $result = (new \Course())->UpdateCourse($this->session->get('id'), $data); if ($result != 200) { $this->end($result); } $this->end($result); } //获取参数 $cou_id = (int) $cou_id; $tra_id = (int) $tra_id; //获取详细信息 $detail = (new \Course())->getDetail($cou_id); if ($detail == 404) { $this->end(404); } //获取一级分类 $categorys = (new \Course())->getCategory(); //获取教师列表 $teachers = (new \TrainTeacher())->getTeacherList($tra_id)['list']; //获取课程教师 $tea_id = (new \Course())->getTeacher($cou_id); //获取地址列表 $cou_addr = (new \Course())->getAddress($cou_id); $address = ''; foreach ($cou_addr as $val) { $address .= ',' . $val['cou_add_content']; } //加载所需js $this->assets->addJs('backend/js/editors/summernote/summernote.js'); $this->assets->addJs('backend/mt-js/bootstrap-tagsinput.js'); $this->assets->addJs('backend/mt-js/course-detail.js'); $this->view->setLayout('train'); $this->view->setVars(['detail' => $detail, 'tra_id' => $tra_id, 'categorys' => $categorys, 'teachers' => $teachers, 'tea_id' => $tea_id, 'cou_addr' => $cou_addr, 'address' => $address]); }
/** * 小初高风光图 */ public function sceneAction($sch_id) { //判断是否是ajax if ($this->request->isAjax()) { $validate = new \Validate(); $sch_scene = $validate->getPost('scene', \Validate::arr()); $sch_id = $validate->getPost('sch_id', \Validate::int()); if ($validate->getMessage()) { $this->end(400); } //新增的图片 $new_img = []; //处理图片 foreach ($sch_scene as $key => $val) { //检查字段是否设置 if (!isset($val['img']) || !isset($val['content']) || !isset($val['sort'])) { \FileUtil::getInstance()->unlink($new_img); $this->end(400); } //清除错误信息 $validate->clearMessage(); //验证字段 $sch_scene[$key]['sort'] = (int) $val['sort']; //图片排序 $sch_scene[$key]['content'] = $validate->execute($val['content'], \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{1,30}$/iu')); //图片介绍 if ($validate->getMessage()) { \FileUtil::getInstance()->unlink($new_img); $this->end(400); } //创建学校风光图,并验证是否创建成功 $sch_scene[$key]['img'] = \Func::touchImg($val['img'], 'sch_scene'); if (!$val['img']) { \FileUtil::getInstance()->unlink($new_img); $this->end(400); } //将生成成功的图片存入数组 $new_img[] = UPLOAD_PATH . $sch_scene[$key]['img']; } //修改风光图 $result = (new \SchoolScene())->updSchoolScene($this->session->get('id'), $sch_id, $sch_scene); //未修改成功,则删除新增的图片 if ($result != 200) { \FileUtil::getInstance()->unlink($new_img); } $this->end($result); } //学校id $sch_id = (int) $sch_id; //获取学校风光图 $scene = (new \SchoolScene())->getSchoolScene($sch_id); //加载js $this->assets->addJs('backend/mt-js/school-scene.js'); $this->view->setLayout('school'); $this->view->setVars(['sch_id' => $sch_id, 'scene' => $scene]); }
public function praiseAction($page_id, $id) { //判断是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $data['tra_id'] = (int) $id; $data['ip'] = $this->getClientIp(); $data['content'] = $validate->getPost('content', \Validate::length(255, 0), ['slashes' => true, 'html' => true]); $data['star'] = $validate->getPost('star', \Validate::int()); if ($validate->getMessage()) { $this->end(404); } $this->end((new \Train())->Review($data)); } //验证大学是否存在 $id = (int) $id; $page_id = (int) $page_id < 1 ? 1 : (int) $page_id; $train = (new \Train())->getDetail($id); if ($train == 404) { $this->notFound(); } $teacher = (new \Train())->getHotTeacher($id, 3); $praise = (new \Train())->getAllPraise($id, $page_id); foreach ($praise['list'] as $key => $val) { $praise['list'][$key]['tra_rev_ip'] = $this->ipGetCity($val['tra_rev_ip']) == 404 ? "未知网友" : $this->ipGetCity($val['tra_rev_ip']); } $page_html = $this->praisePageHtml($praise['page']); //设置标题 $this->tag->setTitle($train['tra_name'] . "-51升学网"); //引入css 和js $this->assets->addCss("fontend/css/org2/public-praise2.css"); $this->assets->addJs("fontend/js/org2_base.js"); $this->view->setVars(['train' => $train, 'praise' => $praise['list'], 'teacher' => $teacher, 'page' => $praise['page'], 'page_html' => $page_html]); }
/** * 学校详情 * parmar $col_id 学校id */ public function detailAction($col_id) { //检查是否是ajax请求 if ($this->request->isAjax()) { $validate = new \Validate(); $data['col_logo'] = $validate->getPost('col_logo'); //学校logo $data['col_thumb'] = $validate->getPost('col_thumb'); //学校缩略图 $data['col_name'] = $validate->getPost('col_name', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}\\(\\)()]{2,30}$/iu')); //学校名称 $data['col_code'] = $validate->getPost('col_code', \Validate::regex('/^(\\d{3,6})?$/')); //学校code $data['col_build'] = $validate->getPost('col_build', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}\\(\\)\\-()]{0,30}$/iu')); //学校创建时间 $data['att_id'] = $validate->getPost('att_id'); //学校属性 $data['col_department'] = $validate->getPost('col_department', \Validate::regex('/^[a-z0-9\\x{4e00}-\\x{9fa5}]{2,30}$/iu')); //隶属部门 $data['gen_id'] = $validate->getPost('gen_id', \Validate::int()); //教学类型 $data['is_join'] = $validate->getPost('is_join', \Validate::scopeCall('Setting', 'getJoin')); //官方合作 $data['is_fine'] = $validate->getPost('is_fine', \Validate::scopeCall('Setting', 'getFine')); //优秀学校 $data['is_honesty'] = $validate->getPost('is_honesty', \Validate::scopeCall('Setting', 'getFine')); //诚信学校 $data['public_type'] = $validate->getPost('public_type', \Validate::scopeCall('Setting', 'getPublic')); //办学性质 $data['hire_type'] = $validate->getPost('hire_type', \Validate::scopeCall('Setting', 'getHire')); //办学性质 $data['col_type'] = $validate->getPost('col_type', \Validate::scopeCall('Setting', 'getColType')); //学校类型 $data['col_tel'] = $validate->getPost('col_tel', \Validate::length(60, 0), ['slashes' => true, 'html' => true]); //联系电话 $data['col_mail'] = $validate->getPost('col_mail', \Validate::length(80, 0), ['slashes' => true, 'html' => true]); //邮箱 $data['col_url'] = $validate->getPost('col_url', \Validate::length(80, 0), ['slashes' => true, 'html' => true]); //学校官网 $data['col_enroll_url'] = $validate->getPost('col_enroll_url', \Validate::length(80, 0), ['slashes' => true, 'html' => true]); //学校招生官网 $data['col_man'] = $validate->getPost('col_man', \Validate::regex('/^(0|(-)?[1-9]\\d?)(\\.\\d{1,2})?$/')); //男生比例 $data['col_job'] = $validate->getPost('col_job', \Validate::regex('/^(0|(-)?[1-9]\\d?0?)(\\.\\d{1,2})?$/')); //就业率 $data['col_degree'] = $validate->getPost('col_degree', \Validate::regex('/^(0|(-)?[1-9]\\d?)(\\.\\d{1,2})?$/')); //报考难度 $data['col_academician'] = $validate->getPost('col_academician', \Validate::int()); //院士数量 $data['col_test'] = $validate->getPost('col_test', \Validate::int()); //国家实验室数量 $data['col_stress'] = $validate->getPost('col_stress', \Validate::int()); //重点专业数量 $data['col_master'] = $validate->getPost('col_master', \Validate::int()); //硕士点数 $data['col_doctor'] = $validate->getPost('col_doctor', \Validate::int()); //院士点数 $data['pro_code'] = $validate->getPost('pro_code', \Validate::regex('/^[1-9]\\d{5}$/')); //学校所在省份编码 $data['city_code'] = $validate->getPost('city_code', \Validate::regex('/^[1-9]\\d{5}$/')); //学校所在城市编码 $data['col_addr'] = $validate->getPost('col_addr', \Validate::length(60, 0), ['slashes' => true, 'html' => true]); //详细地址 $data['col_summary'] = $validate->getPost('col_summary', \Validate::length(100000, 0), ['slashes' => true]); //学校简介 $data['col_key'] = $validate->getPost('col_key', \Validate::length(100, 0), ['slashes' => true, 'html' => true]); //关键词 $data['col_desc'] = $validate->getPost('col_desc', \Validate::length(250, 0), ['slashes' => true, 'html' => true]); //描述 $data['col_cost'] = $validate->getPost('col_cost', \Validate::length(100000, 0), ['slashes' => true]); //收费情况 $data['col_general'] = $validate->getPost('col_general', \Validate::length(100000, 0), ['slashes' => true]); //招生简章 //验证数据 if ($validate->getMessage()) { $this->end(400); } //生成学校logo,缩略图 $col_logo = \Func::touchImg($data['col_logo'], 'col_logo'); $col_thumb = \Func::touchImg($data['col_thumb'], 'col_thumb'); //将生成的图片地址存入img,用户失败时删除 $img = [UPLOAD_PATH . $data['col_logo'], UPLOAD_PATH . $data['col_thumb']]; //监测图片是否全部生成成功 if ($data['col_logo'] && !$col_logo || $data['col_thumb'] && !$col_thumb) { \FileUtil::getInstance()->unlink($img); $this->end(400); } $data['col_logo'] = $col_logo; $data['col_thumb'] = $col_thumb; if (!$col_logo) { unset($data['col_logo']); } if (!$col_thumb) { unset($data['col_thumb']); } //修改高校 $result = (new \College())->updateCollege($this->session->get('id'), $col_id, $data); if ($result != 200) { \FileUtil::getInstance()->unlink($img); } $this->end($result); } //高校id $col_id = (int) $col_id; //获取学校基本信息 $detail = (new \College())->getDetail($col_id); if ($detail == 404) { $this->dispatcher->forward(['controller' => 'error', 'action' => 'error404']); } //获取学校已存在属性 $att_id = (new \College())->getAttId($col_id); //获取省份数据 $provinces = (new \Site())->getProvince(); //城市数据 $city = (new \Site())->getCity($detail['pro_code']); //工程属性 $attribute = (new \Attribute())->getList(); //教学类型 $genre = (new \Genre())->getList(); // print_r($detail);die; //加载所需js $this->assets->addJs('backend/js/datetime/bootstrap-datepicker.js'); $this->assets->addJs('backend/js/editors/summernote/summernote.js'); $this->assets->addJs('backend/mt-js/college-detail.js'); // 加载公共部分 $this->view->setLayout('college'); $this->view->setVars(['provinces' => $provinces, 'city' => $city, 'attribute' => $attribute, 'genre' => $genre, 'detail' => $detail, 'att_id' => $att_id, 'col_id' => $col_id]); }
/** * 幼儿园明显宝贝,ajax刷新 */ public function randChildAction() { if ($this->request->isAjax()) { $validate = new \Validate(); $id = $validate->getPost('id', \Validate::int()); $child = (new \School())->getChild($id, 8); $this->end(json_encode($child)); } }