core/api/modules/page/class.php

181 lines
8.1 KiB
PHP
Raw Permalink Normal View History

2022-12-11 13:55:49 +05:00
<?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;
}
/* ------------------------------------------------------------------------------------------------------------------------- */
}
?>