181 lines
8.1 KiB
PHP
181 lines
8.1 KiB
PHP
|
<?php
|
|||
|
class main extends MySQL{
|
|||
|
var $id;
|
|||
|
private $settings;
|
|||
|
public $user_info;/* Array: Информация о пользователе*/
|
|||
|
public $keywords;
|
|||
|
public $comments;
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
/*function __construct($smarty, $settings){
|
|||
|
@mkdir (MYDIR . '/img/avatars', 0700);
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE, 0700);
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE, 0700);
|
|||
|
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_img', 0700);
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_files', 0700);
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_img', 0700);
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_files', 0700);
|
|||
|
|
|||
|
$db=$this->db;
|
|||
|
/* Создаем каталог под файлы раздела и определяемся с кэшем */
|
|||
|
/* if( $settings['cachePage'] > 0 ){
|
|||
|
if( !@$_SESSION['user_id'] ) { /* если не авторизован - кешируем на часок */
|
|||
|
/* $smarty -> caching = true;
|
|||
|
$smarty -> cache_lifetime = $settings['cachePage'];
|
|||
|
}
|
|||
|
}
|
|||
|
$this -> settings = $settings;
|
|||
|
}*/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
function get_page($id){
|
|||
|
$this -> debug = 1;
|
|||
|
//if ($id){
|
|||
|
//Представим, что id - это алиас... и пробуем найти по алиасу
|
|||
|
unset($a);
|
|||
|
$a['alias']=$id;
|
|||
|
$page = $this-> get_massiv('pages', $a, '', 1);
|
|||
|
//print_r($page);
|
|||
|
if ( !$page[0]['id'] ){ // если ничего не нашли.... то ищем по id
|
|||
|
unset( $a );
|
|||
|
$a['id'] = $id;
|
|||
|
$page = $this-> get_massiv( 'pages', $a, '', 1 );
|
|||
|
// print_r($page);
|
|||
|
if ($page[0]['alias'] && MOD=='page'){
|
|||
|
header('HTTP/1.1 301 Moved Permanently');
|
|||
|
header('Location: /' . $page[0]['alias'] . '.html');
|
|||
|
}
|
|||
|
}
|
|||
|
if ( !$page[0]['id'] ){//если снова не нашли.... то 404
|
|||
|
die( 'Нет страницы, да, я сделаю ошибку 404!' );
|
|||
|
}
|
|||
|
//}
|
|||
|
return $page;
|
|||
|
}
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
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;
|
|||
|
}
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
function gen_keywords($txt){ /* Генератор ключевых слов */
|
|||
|
include_once MYDIR . '/api/php/kwg.php';
|
|||
|
$keywords=seokeywords($txt, 5, 10);
|
|||
|
return explode(",", $keywords);
|
|||
|
|
|||
|
}
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
private function redirect($page){ /* Редиректы куда надо */
|
|||
|
if ( @$page[0]['alias'] && ID != @$page[0]['alias'] ){
|
|||
|
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;
|
|||
|
$p['reyt']=$reyt+1;
|
|||
|
$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]['user_id']);
|
|||
|
$this -> gen_keywords ($postrow[0]['txt']);
|
|||
|
$this -> set_viewers($postrow[0]['id'], $postrow[0]['reyt']);//отправляем на апргрейд ид страницы и текущий рейтинг
|
|||
|
if ($_SESSION['user_id']==$postrow[0]['user_id']){
|
|||
|
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_img/' . $postrow[0]['id'], 0700);
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_files/' . $postrow[0]['id'], 0700);
|
|||
|
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_img/' . $postrow[0]['id'] . '/' . $_SESSION['user_id'], 0700);
|
|||
|
@mkdir (MYDIR . '/api/modules/page/' . SITE . '/user_files/' . $postrow[0]['id'] . '/' . $_SESSION['user_id'], 0700);
|
|||
|
}
|
|||
|
return $postrow;
|
|||
|
|
|||
|
}*/
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
function get_breadcrumb($id){
|
|||
|
$db=$this->db;
|
|||
|
$tmp['id']=$id;
|
|||
|
$postrow = $db -> get_massiv ( 'pages', $tmp, '', 1 );
|
|||
|
$x=0;
|
|||
|
$parent=$postrow[0]['parent'];
|
|||
|
while ($parent != 0){
|
|||
|
$x++;
|
|||
|
unset($tmp);
|
|||
|
$tmp['id']=$parent;
|
|||
|
$postrow[$x] = $db -> get_massiv ( 'pages', $tmp, '', 1 );
|
|||
|
$parent=$postrow[$x]['parent'];
|
|||
|
}
|
|||
|
return $postrow;
|
|||
|
}
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
|
|||
|
function get_cat_info($id){
|
|||
|
unset($a);
|
|||
|
$a['id']=$id;
|
|||
|
$a['tip']='category';
|
|||
|
|
|||
|
}
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
/*
|
|||
|
26.12.2021
|
|||
|
список категорий + количества статей в них
|
|||
|
*/
|
|||
|
function get_cat_list($parent=0){
|
|||
|
$tmp['tip']='category';
|
|||
|
$tmp['public']=1;
|
|||
|
$tmp['parent']=$parent;
|
|||
|
$postrow = $this -> get_massiv ( 'pages', $tmp );
|
|||
|
$num = count($postrow);
|
|||
|
for($i = 0; $i < $num; $i++){
|
|||
|
unset($tmp);
|
|||
|
$tmp['parent']=$postrow[$i]['id'];
|
|||
|
$tmp['tip']='page';
|
|||
|
$tmp['public']=1;
|
|||
|
$postrow[$i]['posts_count'] = $this->count_sql('pages', $tmp);
|
|||
|
}
|
|||
|
return $postrow;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/* ------------------------------------------------------------------------------------------------------------------------- */
|
|||
|
}
|
|||
|
?>
|