2025-06-16 18:28:08 +05:00

187 lines
8.6 KiB
PHP
Executable File

<?php
ini_set('display_errors', 0); //10_04_2016_Prostoe-razdelenie-nagruzki-na-inet-v-Linux.html
if (!$_SESSION['user_id']) {
$smarty->caching = true;
$smarty->cache_lifetime = 864000;
}
class modClass
{
public static $catID = 0; // int
public static $pageID = 0; // int
public static $showTovars = 30; // int
/* ----------------------------------------------------------------------
02.09.2024
Перемещалка товара
---------------------------------------------------------------------- */
static function setCategory()
{
$list = \DBmysql::getAll("SELECT `title` FROM `sort2` WHERE `category`=? AND `site`=? AND `status`=? ORDER BY RAND() LIMIT 3", [$_GET['id'], $_SERVER['SERVER_NAME'], 1]);
//print_r($list);
$c = count($list);
for ($i = 0; $i < $c; $i++)
\DBmysql::set("UPDATE `tovar` SET `category`=? WHERE `title` LIKE '" . $list[$i]['title'] . "' AND `category`<>? AND `site`=?", [$_GET['id'], $_GET['id'], $_SERVER['SERVER_NAME']]);
}
/* ----------------------------------------------------------------------
30.08.2024
Получаем обучалку
---------------------------------------------------------------------- */
static function getii($cat_id)
{
return \DBmysql::getAll("SELECT * FROM `sort2` WHERE `category`=?", $cat_id);
}
/* ----------------------------------------------------------------------
30.08.2024
Получаем подкатегории и поддкатегории
---------------------------------------------------------------------- */
static function getSubCategories()
{
mkdir('api/modules/tovar_cat/cache', 0700);
mkdir('api/modules/tovar_cat/cache/' . $_SERVER['SERVER_NAME'], 0700);
/*if ($_SESSION['dostup']=='a')
$list = \DBmysql::getAll("SELECT `id`,`title`, `img`, `status` FROM `tovar_category` WHERE `category`=? AND `site`=? ORDER BY `sort`, `title`", [$_GET['id'], $_SERVER['SERVER_NAME']]);
else
$list = \DBmysql::getAll("SELECT `id`,`title`, `img` FROM `tovar_category` WHERE `category`=? AND `status`=? AND `site`=? ORDER BY `sort`, `title`", [$_GET['id'], 1, $_SERVER['SERVER_NAME']]);
*/
if ($_SESSION['dostup'] != 'a') {
$cache = 'api/modules/tovar_cat/cache/' . $_SERVER['SERVER_NAME'] . '/' . $_GET['id'] . '.json';
if (file_exists($cache)) {
$text = file_get_contents($cache);
$list = \core::j(\core::unzip($text));
//Чистим кеш через пять дней
$r = time() - filemtime($cache);
if ($r > 432000)
unlink($cache);
} else {
$list = \DBmysql::getAll("SELECT `id`,`title`, `img` FROM `tovar_category` WHERE `category`=? AND `status`=? AND `site`=? ORDER BY `sort`, `title`", [$_GET['id'], 1, $_SERVER['SERVER_NAME']]);
$c = count($list);
for ($i = 0; $i < $c; $i++) {
$list[$i]['submnu'] = \DBmysql::getAll("SELECT `id`,`title`, `status` FROM `tovar_category` WHERE `category`=? AND `status`=? AND `site`=? ORDER BY `sort`, `title`", [$list[$i]['id'], 1, $_SERVER['SERVER_NAME']]);
$list[$i]['more'] = (count($list[$i]['submnu']) > 10) ? 1 : 0;
$list[$i]['submnu'] = array_slice($list[$i]['submnu'], 0, 10);
if (!$list[$i]['img'] || !file_exists($list[$i]['img'])) {
$img = \DBmysql::getRow("SELECT `filename`, `content_id` FROM `img` WHERE `content_type`='tovar' AND `content_id` IN (SELECT `id` FROM `tovar` WHERE `category`=" . $list[$i]['id'] . " AND `status`=1) LIMIT 1");
if (@$img['filename'])
$list[$i]['img'] = '/img/' . $_SERVER['SERVER_NAME'] . '/tovar/' . $img['content_id'] . '/' . $img['filename'] . '.jpg';
unset($img);
}
}
//print_r($list);
$j = \core::j($list);
$a=\core::zip($j);
if (strlen($a)>16) file_put_contents($cache, $a);
}
}
return $list;
}
static function GenImg($json, $tovar_id)
{
$first_img = \core::j($json)[0];
if ($first_img) {//Если есть картинка в json
$fm = 'cache/img/' . $first_img['filename'] . '-' . IMG_PRV_W . '-' . IMG_PRV_H . '.webp';
if (file_exists($fm))
$fm = '/' . $fm;
}
return $fm;
}
static function GetAllTovarV2($limit = 12)
{
// echo self::$catID;
if ($_SESSION['dostup'] != 'a') {
mkdir('api/modules/tovar_cat/cache', 0700);
mkdir('api/modules/tovar_cat/cache/tovar', 0700);
mkdir('api/modules/tovar_cat/cache/tovar/' . $_SERVER['SERVER_NAME'], 0700);
$cache = 'api/modules/tovar_cat/cache/tovar/' . $_SERVER['SERVER_NAME'] . '/' . $_GET['id'] . '.json';
if (file_exists($cache)) {
$text = file_get_contents($cache);
$tovar = \core::j(\core::unzip($text));
//Чистим кеш через пять дней
$r = time() - filemtime($cache);
if ($r > 432000)
unlink($cache);
} else {
$tovar = \DBmysql::getAll("SELECT `id`, `cena`, `old_cena`, `title`, `images`, `artikul`, `status` FROM `tovar` WHERE `category`=? AND `status`=1 AND `site`=? LIMIT " . $limit, [$_GET['id'], $_SERVER['SERVER_NAME']]);
$c = count($tovar);
for ($i = 0; $i < $c; $i++) {
if ($tovar[$i]['images'])
$tovar[$i]['img'] = self::GenImg($tovar[$i]['images'], $tovar[$i]['id']);
}
$j = \core::j($tovar);
$a=\core::zip($j);
if (strlen($a)>16) file_put_contents($cache, $a);
}
}
return $tovar;
}
static function migrate($array)
{
$massiv = \core::j($array['json']);
$massiv['original_id'] = $array['id'];
$massiv['parent_category'] = $array['category'];
$massiv['donor'] = $array['donor'];
$massiv['file_img'] = $array['file_img'];
$massiv['ico'] = $array['ico'];
$massiv['code'] = $array['code'];
$massiv['code_p'] = $array['code_p'];
//Проверяем наличие в БД
$id = \DBmysql::getValue("SELECT `id` FROM `content` WHERE `json` LIKE '%\"original_id\":" . $array['id'] . "%' AND `site`='" . $_SERVER['SERVER_NAME'] . "' LIMIT 1");
//Укладываем....
$parent_id = \DBmysql::getValue("select `id` from content where json LIKE '%original_id\":" . $massiv['parent_category'] . "%' LIMIT 1");
if ($parent_id)
\DBmysql::set("UPDATE `content` SET `category`=? WHERE `id`=? LIMIT 1", [$parent_id, $id]);
}
}
modClass::setCategory();
#modClass::migrate($categoryInfo);
$page_info = \DBmysql::getRow("SELECT * FROM `tovar_category` WHERE `id`=? AND `site`=? LIMIT 1", [$_GET['id'], $_SERVER['SERVER_NAME']]);
if ($page_info['status'] == 0) {
header("HTTP/1.1 404 Not Found");
//\DBmysql::set("UPDATE `tovar` SET `status`=? WHERE `category`=? AND `site`=? AND `status`=?", [0, $page_info['id'], $_SERVER['SERVER_NAME'], 1]);
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
\DBmysql::set("DELETE FROM `sitemap` WHERE `link`=?", $url);
}
$smarty->assign('page_info', $page_info);
$smarty->assign('catID', $_GET['id']);
/* ----------------------------------------------------------------------
03.01.2023
Хлебные крошки
---------------------------------------------------------------------- */
$smarty->assign('Breadcrumb', \core::getBreadcrumb('tovar_category', $_GET['id']));
$smarty->assign('inctovar', "skin/" . $_SERVER['SERVER_NAME'] . '/inc/mod/' . $_GET['mod'] . '/tovar.html'); //получаем дочерние категории
$tovar_list = modClass::GetAllTovarV2(500);
$smarty->assign('category', modClass::getSubCategories()); //получаем дочерние категории
$smarty->assign('list', $tovar_list);//получаем дочерние товары
if ($_SESSION['dostup'] == 'a')
$smarty->assign('list_ii', modClass::getii($_GET['id']))
?>