function process($action)
 {
     if (!is_numeric($_REQUEST['param2'])) {
         throw new ControllerException('Неправильные параметры запроса.');
     }
     $this->showErrorPage = TRUE;
     parent::process($action);
     foreach ($this->data['menu'] as $val) {
         if ($val['data_folder'] == $_REQUEST['param1']) {
             $this->data['section'] = $val;
             break;
         }
     }
     if (!isset($this->data['section'])) {
         throw new HttpException(404);
     }
     if (!($res = $this->db->fetch("SELECT articles.id AS article_id, title, DATE_FORMAT(pub_date, '%e.%m.%Y') AS pub_date, views, verifier_id, users.id AS user_id, login FROM articles INNER JOIN users ON articles.author_id = users.id WHERE articles.id=" . $this->db->escapeString($_REQUEST['param2']))) || !file_exists(PATH_SECTION . $this->data['section']['data_folder'] . '/' . $res[0]['article_id'])) {
         throw new HttpException(404);
     }
     try {
         $this->db->query('UPDATE articles SET views=views+1 WHERE id=' . $res[0]['article_id']);
     } catch (DatabaseException $ex) {
     }
     $this->data['article'] = $res[0];
     require_once PATH_INCLUDE . 'TagsParser.php';
     $parser = new TagsParser(file_get_contents(PATH_SECTION . "{$this->data['section']['data_folder']}/{$this->data['article']['article_id']}/text.txt"));
     $this->data['article']['contents'] = $parser->parse();
     $res = $this->db->fetch("SELECT articles.id AS article_id, articles.title AS title, data_folder FROM articles INNER JOIN sections ON articles.section_id=sections.id ORDER BY views LIMIT 5");
     foreach ($res as &$r) {
         $r['href'] = $this->app->config['path']['section'] . $r['data_folder'] . '/' . $r['article_id'] . '/';
     }
     unset($r);
     $this->data['see_also'] = $res;
 }
 function preview()
 {
     $this->showErrorPage = FALSE;
     $this->validateArgs($_POST, [['text', 'string']]);
     $text = strip_tags(trim($_POST['text']));
     require_once PATH_INCLUDE . 'TagsParser.php';
     $parser = new TagsParser($text);
     $this->data['parsed_text'] = $parser->parse();
 }