'', 'introduction' => '', 'num1' => '', 'unit1' => '', 'introduce1' => '', 'num2' => '', 'unit2' => '', 'introduce2' => '', 'num3' => '', 'unit3' => '', 'introduce3' => '', 'image' => '' ]; // 语言标识 const LANG_CN = 1; const LANG_EN = 2; /** * 查看 */ public function index() { // 初始化中英文数据 $dataCN = $this->initHomeData(self::LANG_CN); $dataEN = $this->initHomeData(self::LANG_EN); $this->assign([ 'dataCN' => $dataCN, 'dataEN' => $dataEN ]); return $this->view->fetch(); } /** * 初始化数据 * @param int $lang 语言标识 * @return array */ protected function initHomeData($lang) { $id = $lang; // ID与语言标识相同 $data = Db::name('wwh_home')->where('id', $id)->find(); if (!$data) { $data = array_merge( ['id' => $id, 'lang' => $lang], self::DEFAULT_HOME ); Db::name('wwh_home')->insert($data); } return $data; } /** * 保存数据 * @param int $lang 语言标识 */ public function saveHome($lang) { $id = $lang; // ID与语言标识相同 $data = [ 'id' => $id, 'about_title' => input('about_title'), 'introduction' => input('introduction','',null,'htmlspecialchars'), 'num1' => input('num1'), 'unit1' => input('unit1'), 'introduce1' => input('introduce1'), 'num2' => input('num2'), 'unit2' => input('unit2'), 'introduce2' => input('introduce2'), 'num3' => input('num3'), 'unit3' => input('unit3'), 'introduce3' => input('introduce3'), 'image' => input('image'), 'lang' => $lang ]; $exists = Db::name('wwh_home')->where('id', $id)->find(); if ($exists) { // 检查数据变动 foreach (array_keys(self::DEFAULT_HOME) as $field) { if ($exists[$field] != $data[$field]) { $result = Db::name('wwh_home')->update($data); return $this->returnResult($result); } } return $this->error('未检测到数据变动', null, null, false); } $result = Db::name('wwh_home')->insert($data); return $this->returnResult($result); } /** * 返回操作结果 * @param bool $result */ protected function returnResult($result) { return $result ? $this->success('保存成功') : $this->error('保存失败'); } /** * 中文首页配置修改 */ public function HomeCN() { return $this->saveHome(self::LANG_CN); } /** * 英文首页配置修改 */ public function HomeEN() { return $this->saveHome(self::LANG_EN); } }