core/api/modules/page/index.php

179 lines
8.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
ini_set('display_errors', 0);
@mkdir('img/' . $_SERVER['SERVER_NAME'] . '/ava', 0700);
/* ----------------------------------------------------------------------
11.02.2023
Получаем страницу
---------------------------------------------------------------------- */
$page = \DB::getAll("SELECT * FROM `pages` WHERE `id`=? OR `alias`=? LIMIT 1", array($_GET['id'], $_GET['id']));
if ($page[0]['status'] == 0) header('Location: /403/');
$page[0]['date'] = ($page[0]['t'])? date('d.m.Y', $page[0]['t']):time();
$keywords = \DB::getAll("SELECT `txt` FROM `keywords` WHERE `content_type`='page' AND `content_id`=?", $page[0]['id']);
for ($i=0; $i<count($keywords); $i++)$page[0]['keywords']=$page[0]['keywords'] . ', ' . $keywords[$i]['txt'];
//$page[0]['keywords']=implode("," $keywords);
//print_r($keywords);
/* ----------------------------------------------------------------------
02.04.2024
Получаем обложку
---------------------------------------------------------------------- */
$page[0]['filename'] = \DB::getValue("SELECT `filename` FROM `img` WHERE `content_id`=? AND `content_type`='pages' LIMIT 1", $page[0]['id']);
//print_r($page);
$smarty->assign('page', $page);
/* ----------------------------------------------------------------------
02.04.2024
Получаем данные о категории
---------------------------------------------------------------------- */
$category_title = \DB::getValue("SELECT `title` FROM `pages_category` WHERE `id`=?", $page[0]['category']);
$smarty->assign('category_title', $category_title);
/* ----------------------------------------------------------------------
11.02.2023
Получаем данные о пользователе
---------------------------------------------------------------------- */
$autor = \DB::getAll("SELECT * FROM `users` WHERE `id`=? LIMIT 1", $page[0]['user_id']);
if ($autor[0]['dostup'] == 'a')
$autor[0]['dostup'] = 'Администратор сайта';
$smarty->assign('autor', $autor);
/* ----------------------------------------------------------------------
11.02.2023
Получаем количество статей пользователя
---------------------------------------------------------------------- */
$pageskolvo = \DB::getAll("SELECT count(*) FROM `pages` WHERE `user_id`=? AND `status`=1", $page[0]['user_id']);
$smarty->assign('pageskolvo', $pageskolvo[0]['count(*)']);
/* ----------------------------------------------------------------------
11.02.2023
Получаем коментарии
---------------------------------------------------------------------- */
$comments = \DB::getAll("SELECT * FROM `pages_comments` WHERE `page_id`=? AND `status`=1 ORDER BY `id` DESC", $page[0]['id']);
//Получаем инфу о пользователе - аву и фио
for ($i = 0; $i < count($comments); $i++) {
$user_info = \DB::getAll("SELECT `fio`, `ava` FROM `users` WHERE `id`=? LIMIT 1", $comments[$i]['user_id']);
$comments[$i]['ava'] = $user_info[0]['ava'];
$comments[$i]['fio'] = $user_info[0]['fio'];
unset($user_info);
}
$smarty->assign('comments', $comments);
/* ----------------------------------------------------------------------
14.02.2023
Пишем статистику
---------------------------------------------------------------------- */
$see = \DB::getValue("SELECT `see` FROM `pages` WHERE `id`=? LIMIT 1", $page[0]['id']);
$user_id = ($_SESSION['user_id']) ? $_SESSION['user_id'] : session_id();
$id = \DB::getValue("SELECT `id` FROM `likes` WHERE `content_id`=? AND `user_id`=? AND `tip`='see' LIMIT 1", array($page[0]['id'], $user_id));
if (!$id) {
$see++;
\DB::set("UPDATE `pages` SET `see`=? WHERE `id`=? LIMIT 1", array($see, $page[0]['id']));
\DB::add("INSERT INTO `likes` (`user_id`, `content_id`, `tip`) VALUES(?, ?, ?)", array($user_id, $page[0]['id'], 'see'));
}
$smarty->assign('see', $see);
/* ----------------------------------------------------------------------
01.04.2023
Получаем спиосок категорий страниц
---------------------------------------------------------------------- */
$categories = \DB::getAll("SELECT * FROM `pages_category` ORDER BY `title`");
for ($i = 0; $i < count($categories); $i++)
$categories[$i]['count'] = \DB::getAll("SELECT COUNT(*) FROM `pages` WHERE `category`=? AND `status`=1", $categories[$i]['id'])[0]['COUNT(*)'];
$smarty->assign('categories', $categories);
/* ----------------------------------------------------------------------
02.04.2023
Получаем самое читабельное
---------------------------------------------------------------------- */
$popular_pages = \DB::getAll("SELECT `title`, `id`, `description`, `t` FROM `pages` WHERE `status`=1 ORDER BY `see` DESC LIMIT 9");
for ($i = 0; $i < count($popular_pages); $i++) {
$popular_pages[$i]['filename'] = \DB::getValue("SELECT `filename` FROM `img` WHERE `content_type`='pages' AND `content_id`=? LIMIT 1", $popular_pages[$i]['id']);
$popular_pages[$i]['link'] = ($popular_pages[$i]['alias']) ? '/' . $popular_pages[$i]['alias'] . '.html' : '/page/' . $popular_pages[$i]['id'];
}
//for ($i=0; $i<count($popular_pages); $i++)$popular_pages[$i]['img']=\DB::getValue("SELECT `filename` FROM `pages_img` WHERE `pages_id`=? LIMIT 1", $popular_pages[$i]['id']);
//print_r($popular_pages);
$smarty->assign('popular_pages', $popular_pages);
//print_r($popular_pages);
/* ----------------------------------------------------------------------
02.04.2023
Получаем вложенные изображения, кроме первого
---------------------------------------------------------------------- */
//$page_img=\DB::getAll("SELECT * FROM `pages_img` WHERE `pages_id`=?", $page[0]['id']);
unset($page_img[0]);
$smarty->assign('page_img', $page_img);
//print_r($page_img);
/* ----------------------------------------------------------------------
02.04.2023
Получаем коменты
---------------------------------------------------------------------- */
$comments = \DB::getAll("SELECT * FROM `pages_comments` WHERE `page_id`=? AND `status`=1 ORDER BY `t` DESC", $page[0]['id']);
for ($i = 0; $i < count($comments); $i++)
$comments[$i]['fio'] = \DB::getValue("SELECT `fio` FROM `users` WHERE `id`=?", $comments[$i]['user_id']);
//print_r($comments);
$smarty->assign('comments', $comments);
/* ----------------------------------------------------------------------
13.08.2023
Заполняем мета-теги
---------------------------------------------------------------------- */
function setKeywords($content_id, $host)
{
$token = 'y0_AgAAAAABiU4jAAn8iwAAAADkWpkSbFJu1kVDTGCi5DQIA4h6RaMwKpA';
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $host . $_SERVER['REQUEST_URI']; // . $_SERVER['REQUEST_URI']
//echo $url;
$params = array(
'ids' => '21950635',
'metrics' => 'ym:s:visits',
'dimensions' => 'ym:s:searchPhrase',
'date1' => '365daysAgo',
'date2' => 'today',
'filters' => "ym:pv:URL=='" . $url . "'"
);
$ch = curl_init('https://api-metrika.yandex.net/stat/v1/data?' . urldecode(http_build_query($params)));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ' . $token));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
$res = json_decode($res, true);
$words = array();
foreach ($res['data'] as $row) {
$words[] = $row['dimensions'][0]['name'];
}
//print_r($words);
for ($i = 0; $i < count($words); $i++) {
$id = \DB::getValue("SELECT `id` FROM `keywords` WHERE `content_id`=? AND `txt`=? AND `content_type`='page' LIMIT 1", array($content_id, $words[$i]));
if (!$id)
\DB::set("INSERT INTO `keywords` (`content_type`, `content_id`, `txt`) VALUES (?, ?, ?)", array('page', $content_id, $words[$i]));
}
}
function yurecntf($text)
{
$old1 = array("new.yurecnt.ru");
$new1 = array("yurecnt.ru");
$text = str_replace($old1, $new1, $text);
return $text;
}
setKeywords($page[0]['id'], yurecntf($_SERVER['HTTP_HOST']));
?>