error("您的'$official_config_url'文件缺失。",'','',20); } else { $config = include $official_config_url; } //重新整理格式 $config_all = []; foreach ($config as $key => $value){ $config_all[$key] = ['name'=>$key,'value'=>$value]; } $this->language = (int)cookie('language'); $web_default_language = $config_all['web_default_language']['value']; //前端默认语言代码 if (empty($this->language) && !empty($web_default_language)){ $this->language = $web_default_language; cookie('language', $web_default_language); } $this->assign('language', $this->language); $this->assign('auth', $this->auth); //判断移动PC端 if ($this->isMobile()) { $this->Mobile = '_e'; } //查询所有栏目 $this->getAll0fficiaCategory(); //查询轮播图 $this->getAllBanners(); //网站名称 关键词 介绍 $this->language_z = ($this->language == 1) ? '_en' : ''; $this->basic_title = $config_all['basic_title' . $this->language_z]['value'] ?? ''; $this->keywords = $config_all['keywords' . $this->language_z]['value'] ?? ''; $this->description = $config_all['description' . $this->language_z]['value'] ?? ''; $this->basic = [ 'title' => $this->basic_title, 'keywords' => $this->keywords, 'description' => $this->description, ]; $this->view->assign('captchaType', config('fastadmin.user_register_captcha')); $this->assign('basic', $this->basic); } /** * @return bool * 移动pc判断 */ public function isMobile() { return request()->isMobile(); } /** * 查询所有栏目 */ public function getAll0fficiaCategory() { //生成配置文件 $official_tree_category_url = ADDON_PATH . 'official' . DS . 'config' . DS . 'official_tree_category.php'; if (!file_exists($official_tree_category_url)) { $official_category = (new OfficialCategory()) ->with(['son']) ->where('pid', 0) ->field(['content', 'e_content'], true) ->where('deletetime', null) ->order('weigh', 'desc') ->select(); $tree_category_all = []; foreach ($official_category as $item) { $tree_category_all[] = $item->toArray(); } file_put_contents( $official_tree_category_url, 'assign('all_official_category', $tree_category_all); } /** * 获取所有轮播图 */ public function getAllBanners() { $cid = (int)input('param.sid'); $banners = (new OfficialBanners()) ->where('status', 1) ->where('language', $this->language) ->where('deletetime', null); //栏目id if ($cid) { $banners = $banners->where("FIND_IN_SET(" . $cid . ",official_category_ids)"); } else { $banners = $banners->where('is_index', 1); } //查询 $banners = $banners ->order('weigh', 'desc') ->select(); $this->assign('banners', $banners); } /** * 获取栏目数据 * @return array|bool|\PDOStatement|string|\think\Model * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ protected function get_cate_pid_in_sid() { $sid = (int)input('param.sid'); $pid = (int)input('param.pid'); //1.查詢父级 $res = []; $official_tree_category_url = ADDON_PATH . 'official' . DS . 'config' . DS . 'official_tree_category.php'; if (file_exists($official_tree_category_url)) { $tree_category_all = include $official_tree_category_url; foreach ($tree_category_all as $item) { if ($item['id'] == $pid) { $res = $item; } } } //2.判断是否选中 if (isset($res['son'])) { foreach ($res['son'] as $key => $item) { //如果不在导航中显示 则删除 if ($item['is_nav_show'] != 1) { unset($res['son'][$key]); continue;// 删除后,跳出本次循环 } //判断是否选中 $res['son'][$key]['is_choose'] = 0; if (!empty($sid)) { if ($item['id'] == $sid) { $res['son'][$key]['is_choose'] = 1; } } } } return $res; } /** *增加点击量 * @param $model 模型 * @param $id */ protected function addClick($model, $id) { $model->where('id', $id)->setInc('click'); } /** * 设置 网站名称 关键词 介绍 * @param int $stu stu == 1 代表是栏目 stu == 2 代表详情 * @param string $title * @param string $keywords * @param string $description */ protected function setBasic($stu = 1, $title = '', $keywords = '', $description = '') { $arr = ['title' => $title, 'keywords' => $keywords, 'description' => $description]; foreach ($arr as $item => $val) { if ($val) { $this->basic[$item] = $val; } } if ($stu == 1) { $language_z = ($this->language == 1) ? 'e_' : ''; $category = db('official_category')->where('id', (int)input('param.sid'))->find(); if ($category) { $this->basic = [ 'title' => $this->basic_title . '|' . $category[$language_z . 'name'], 'keywords' => $this->keywords, 'description' => $category[$language_z . 'subheading'], ]; } } $this->assign('basic', $this->basic); } }