| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace app\admin\controller\cms;
- use app\admin\model\cms\Page as PageModel;
- use app\admin\model\cms\PageData;
- use app\admin\model\general\Lang as LangModel;
- use app\common\controller\Backend;
- use Exception;
- use think\db\exception\PDOException;
- use think\exception\ValidateException;
- use think\facade\Db;
- class Page extends Backend
- {
- protected $modelClass = null;
- protected function initialize()
- {
- parent::initialize();
- $this->modelClass = new PageModel;
- }
- public function edit()
- {
- $catid = $this->request->param('catid/d', 0);
- $lang = $this->request->param('lang/s', LangModel::getDefaultMark());
- $row = $this->modelClass->where('catid', $catid)->find();
- if (!$row) {
- $this->error('记录未找到');
- }
- $adminIds = $this->getDataLimitAdminIds();
- if (is_array($adminIds)) {
- if (!in_array($row[$this->dataLimitField], $adminIds)) {
- $this->error('你没有权限访问');
- }
- }
- if ($this->request->isPost()) {
- $params = $this->request->post('row/a');
- if ($params) {
- $params = $this->preExcludeFields($params);
- Db::startTrans();
- try {
- $saveLang = $params['lang'] ?? $lang;
- $this->modelClass->savePage($params, $saveLang);
- Db::commit();
- } catch (ValidateException | PDOException | Exception $e) {
- Db::rollback();
- $this->error($e->getMessage());
- }
- $this->success('修改成功');
- }
- $this->error('参数不能为空');
- }
- $data = $this->modelClass->getPageWithLang($catid, $lang);
- $langs = LangModel::getEnabledList();
- $langStatus = [];
- foreach ($langs as $item) {
- $langStatus[$item->mark] = PageData::where(['page_id' => $row->id, 'lang' => $item->mark])->count() > 0 ? 1 : 0;
- }
- $this->view->assign('data', $data);
- $this->view->assign('langs', $langs);
- $this->view->assign('currentLang', $lang);
- $this->view->assign('defaultLang', LangModel::getDefaultMark());
- $this->view->assign('langStatus', $langStatus);
- return $this->fetch();
- }
- }
|