private function eNews($id = null) { if (is_post()) { $this->loadHelper('Validator'); $data = array('title' => strip_tags(validate('required', 'title')), 'content' => validate('required', 'content'), 'updated_at' => date('Y-m-d H:i:s')); $id = validate('required', 'token'); if (validator($data) && !is_null($id)) { $id = base64_decode($id); if (!preg_match('/^[0-9]+$/', $id)) { exit('401'); } $news = new \app\models\News(); if ($_POST['c_readIn'] === 'on') { $data['readIn'] = null; } if ($news->updateNews($data, $id)) { cache_forgot('p.n.' . $id); cache_forgot('p.getJson.news.' . user('major')); } return redirect(''); } } else { if (preg_match('/^[0-9]+$/', $id)) { $data = cache_remember('p.n.' . $id, function () use($id) { $news = new \app\models\News(); $data = $news->getNews($id); if (!empty($data)) { return $data; } return false; }); if (!is_null($data) && $data['major_id'] === user('major')) { return $this->view('editNews', compact('data')); } } return $this->view('errors/404'); } }