db; /* Создаем каталог под файлы раздела и определяемся с кэшем */ if( $settings['cachePage'] > 0 ){ if( !@$_SESSION['user_id'] ) { /* если не авторизован - кешируем на часок */ $smarty -> caching = true; $smarty -> cache_lifetime = $settings['cachePage']; } } $this -> settings = $settings; } /* ------------------------------------------------------------------------------------------------------------------------- */ private function user_info($id) { /* Получаем инормацию об авторе */ $db=$this->db; $db -> or_by_desc = 0; $a['id']=$id; $this -> user_info = $db->get_massiv('users', $a, '', 1); return $this -> user_info; } /* ------------------------------------------------------------------------------------------------------------------------- */ private function gen_keywords($txt){ /* Генератор ключевых слов */ include_once MYDIR . '/api/php/kwg.php'; $keywords=seokeywords($txt, 5, 10); $this->keywords = explode(",", $keywords); } /* ------------------------------------------------------------------------------------------------------------------------- */ private function redirect($page){ /* Редиректы куда надо */ if ( @$page[0]['alias'] && ID != @$page[0]['alias'] && $page[0]['id'] != $this->settings['main_page'] ){ header( 'HTTP/1.1 301 Moved Permanently' ); header( 'Location: /' . $page[0]['alias'] . '.html' ); } if (@$page[0]['rdir']){//редирект на новую страницу header( 'HTTP/1.1 301 Moved Permanently' ); header( 'Location: ' . $page[0]['rdir'] ); } } /* ------------------------------------------------------------------------------------------------------------------------- */ private function set_viewers($id, $reyt){/* меняем количество просмотров */ if (!$_SESSION['user_id']){ $db=$this->db; $reyt++; $p['reyt']=$reyt; $db->update('pages', $id, $p); } } /* ------------------------------------------------------------------------------------------------------------------------- */ private function get_comments($id){ $db=$this->db; $db -> or_by_desc = 1; $tmp['page_id']=$id; $tmp['public']=1; $postrow = $db -> get_massiv ( 'pages_comments', $tmp, 'id' ); $num = count($postrow); for($i = 0; $i < $num; $i++){ $user=$this->user_info($postrow[$i]['user_id']); $postrow[$i]['fio'] = $user[0]['fio']; $postrow[$i]['ava'] = $user[0]['ava']; unset($user); } $this -> comments = $postrow; } /* ------------------------------------------------------------------------------------------------------------------------- */ function get_page($id){ // получение страницы $db=$this->db; $id != '' ? $tmp['alias'] = ID : $tmp['id'] = $settings['main_page']; $postrow = $db -> get_massiv ( 'pages', $tmp, '', '1' );//Пробуем найти по алиасу if ( !$postrow[0]['id'] ){//Если не получилось - по ID unset($tmp); $tmp['id'] = $id; $postrow = $db -> get_massiv ( 'pages', $tmp, '', '1' ); } $this -> redirect ($postrow); $this -> get_comments ($postrow[0]['id']); $this -> user_info ($postrow[0]['avtor']); $this -> gen_keywords ($postrow[0]['txt']); $this -> set_viewers($postrow[0]['id'], $postrow[0]['reyt']);//отправляем на апргрейд ид страницы и текущий рейтинг return $postrow; } /* ------------------------------------------------------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------------------------------------------------------- */ } ?>