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'])) ?>