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

390 lines
18 KiB
PHP
Executable File
Raw Permalink 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
//phpinfo();
ini_set('display_errors', 0);
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
public static $html = ''; // int
static function getImgHidrootvet($sku)
{
}
static function getImgSamson($id, $sku)
{
$curl = curl_init('https://api.samsonopt.ru/v1/sku/' . $sku . '?api_key=3f8f720d5a2923a1ff02be994090b002');
$arHeaderList = [];
$arHeaderList[] = 'Accept: application/json';
$arHeaderList[] = 'User-Agent: string';
$arHeaderList[] = 'Accept-Encoding: gzip';
curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
$result = curl_exec($curl);
//print_r($result);
curl_close($curl);
$m = \core::j($result);
$imgs = $m['data'][0]['photo_list'];
//print_r($m);
if (!$m['error']) {
$c = count($imgs);
mkdir('img/tk-ligat.ru/tovar/' . $id, 0700);
for ($i = 0; $i < $c; $i++) {
$fm = \core::genpassword(30);
//$target='img/tk-ligat.ru/tovar/' . $id . '/' . $fm . '.jpg';
exec("wget " . $imgs[$i] . " -O img/tk-ligat.ru/tovar/" . $id . '/' . $fm . ".jpg");
//echo "wget " . $imgs[$i] . " -O /www/core/img/tk-ligat.ru/tovar/" . $id . '/' . $fm . ".jpg";
$images[$i]['filename'] = $fm;
$images[$i]['tip'] = 'jpg';
}
\DBmysql::set("UPDATE `tovar` SET `images`=?, `status`=1 WHERE `id`=?", [\core::j($images), $id]);
}else{
\DBmysql::set("UPDATE `tovar` SET `status`=0 WHERE `id`=?", $id);
}
}
static function getInfoSamson($sku)
{
$curl = curl_init('https://api.samsonopt.ru/v1/sku/' . $sku . '?api_key=3f8f720d5a2923a1ff02be994090b002');
$arHeaderList = [];
$arHeaderList[] = 'Accept: application/json';
$arHeaderList[] = 'User-Agent: string';
$arHeaderList[] = 'Accept-Encoding: gzip';
curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
$result = curl_exec($curl);
curl_close($curl);
$m = \core::j($result);
$brand = $m['data'][0]['brand'];
$barcode = $m['data'][0]['barcode'];
$br_id = \DBmysql::getValue("SELECT `id` FROM `content` WHERE `title`=? AND `site`=? AND `content_type`=? LIMIT 1", [$brand, $_SERVER['SERVER_NAME'], 'brand']);
if (!$br_id && $brand)
$br_id = \DBmysql::add("INSERT INTO `content` (`title`, `site`, `content_type`)VALUES(?,?,?)", [$brand, $_SERVER['SERVER_NAME'], 'brand']);
$bar_id = \DBmysql::getValue("SELECT `id` FROM `content` WHERE `title`=? AND `site`=? AND `content_type`=? LIMIT 1", [$barcode, $_SERVER['SERVER_NAME'], 'barcode']);
if (!$bar_id && $barcode)
$bar_id = \DBmysql::add("INSERT INTO `content` (`title`, `site`, `content_type`)VALUES(?,?,?)", [$barcode, $_SERVER['SERVER_NAME'], 'barcode']);
//Пересобираем json у товара
$j = \DBmysql::getValue("SELECT `json` FROM `tovar` WHERE `id`=? AND `site`=? LIMIT 1", [$_GET['id'], $_SERVER['SERVER_NAME']]);
$m = \core::j($j);
$m['brand'] = $brand;
$m['brand_id'] = $br_id;
$m['barcode'] = $barcode;
$m['barcode_id'] = $bar_id;
$j = \core::j($m);
\DBmysql::set("UPDATE `tovar` SET `json`=? WHERE `id`=?", [$j, $_GET['id']]);
}
/* ----------------------------------------------------------------------
26.08.2024
Заполняем фильтр характеристик
---------------------------------------------------------------------- */
static function createFilter($id)
{
//echo $id;
}
static function updPriceSamson($sku, $cena){
// echo $sku;
$curl = curl_init('https://api.samsonopt.ru/v1/sku/' . $sku . '/price/?api_key=3f8f720d5a2923a1ff02be994090b002');
$arHeaderList = [];
$arHeaderList[] = 'Accept: application/json';
$arHeaderList[] = 'User-Agent: 3f8f720d5a2923a1ff02be994090b002';
$arHeaderList[] = 'Accept-Encoding: gzip';
curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
$result = curl_exec($curl);
$array=\core::j($result);
if ($array['error']['error_message']=='Товар с указанным кодом не найден.'){
\DBmysql::set("UPDATE `tovar` SET `status`=0 WHERE `id`=?", $_GET['id']);
}else{
$new_cena = round($array['data'][0]['value'] * 1.75);
//echo $new_cena;
if ($new_cena)
\DBmysql::set("UPDATE `tovar` SET `cena`=?, `old_cena`=?, `uppricetime`=?, `status`=? WHERE `id`=? LIMIT 1", [$new_cena, $cena, time(), 1, $_GET['id']]);
}
//print_r($array);
}
/* ----------------------------------------------------------------------
30.08.2024
Обновление цен самсон
---------------------------------------------------------------------- */
static function updatePrice($partner, $uppricetime, $cena, $code, $donor = '')
{
if ($partner == 'samson' && $uppricetime < time() - 259200) {//
$curl = curl_init('https://api.samsonopt.ru/v1/sku/' . $code . '/price/?api_key=3f8f720d5a2923a1ff02be994090b002');
$arHeaderList = [];
$arHeaderList[] = 'Accept: application/json';
$arHeaderList[] = 'User-Agent: 3f8f720d5a2923a1ff02be994090b002';
$arHeaderList[] = 'Accept-Encoding: gzip';
curl_setopt($curl, CURLOPT_HTTPHEADER, $arHeaderList);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
$result = curl_exec($curl);
//print_r($result);
curl_close($curl);
$new_cena = round(\core::j($result)['data'][0]['value'] * 1.75);
//echo $new_cena;
if ($new_cena)
\DBmysql::set("UPDATE `tovar` SET `cena`=?, `old_cena`=?, `uppricetime`=?, `status`=? WHERE `id`=? LIMIT 1", [$new_cena, $cena, time(), 1, $_GET['id']]);
}
if ($partner == 'leopak' && $uppricetime < time() - 259200) {
$html = \core::get_page($donor);
if ($html['code'] == 200) {
require_once 'api/soft/phpQuery-master/phpQuery/phpQuery.php';
$doc = phpQuery::newDocument($html['html']);
$cena1 = $doc->find('.details-payment-cell .price .price-current .price-number');
$c = pq($cena1)->text();
if ($c)
$new_cena = round($c * 1.5, 2);
if ($new_cena)
\DBmysql::set("UPDATE `tovar` SET `cena`=?, `old_cena`=?, `uppricetime`=?, `status`=? WHERE `id`=? LIMIT 1", [$new_cena, $cena, time(), 1, $_GET['id']]);
} else {
\DBmysql::set("UPDATE `tovar` SET `status`=? WHERE `id`=?", [0, $_GET['id']]);
}
}
return $new_cena;
}
static function getRndTovar($category, $limit = 24)
{
if (class_exists('DBmysql')) {
$tovar = \DBmysql::getAll("SELECT `title`, `id`, `cena`, `artikul`, `code`, `images` FROM `tovar` WHERE `category`=? AND `status`=1 ORDER BY RAND() LIMIT " . $limit, $category);
} else {
$tovar = \DB::getAll("SELECT `title`, `id`, `cena`, `artikul`, `code`, `images` FROM `tovar` WHERE `category`=? AND `status`=1 ORDER BY RANDOM() LIMIT ?", [$category, $limit]);
}
$c = count($tovar);
for ($i = 0; $i < $c; $i++)
$tovar[$i]['img'] = ($tovar[$i]['images']) ? \core::getFirstImgJSON($tovar[$i]['id'], 'tovar', $tovar[$i]['images']) : \core::getFirstImg($tovar[$i]['id'], 'tovar');
return $tovar;
}
static function setHistory()//пишем историю
{
if (class_exists('DBmysql')) {
$id = \DBmysql::getValue("SELECT `t` FROM `history` WHERE `content_id`=? AND `content_type`=? AND `site`=? AND `token`=?", [$_GET['id'], 'tovar', $_SERVER['SERVER_NAME'], session_id()]);
if (!$id)
\DBmysql::add("INSERT INTO `history` (`content_id`, `content_type`, `site`, `token`, `t`) VALUES (?, ?, ?, ?, ?)", [$_GET['id'], 'tovar', $_SERVER['SERVER_NAME'], session_id(), time()]);
//очищалка
if (date("H:i:s", time()) == '00:00:00')
\DBmysql::set("DELETE FROM `history` WHERE `t`<?", time() - 2592000);
} else {
$id = \DB::getValue("SELECT `t` FROM `history` WHERE `content_id`=? AND `content_type`=? AND `site`=? AND `token`=?", [$_GET['id'], 'tovar', $_SERVER['SERVER_NAME'], session_id()]);
if (!$id)
\DB::add("INSERT INTO `history` (`content_id`, `content_type`, `site`, `token`, `t`) VALUES (?, ?, ?, ?, ?)", [$_GET['id'], 'tovar', $_SERVER['SERVER_NAME'], session_id(), time()]);
//очищалка
if (date("H:i:s", time()) == '00:00:00')
\DB::set("DELETE FROM `history` WHERE `t`<?", time() - 2592000);
}
}
static function getHistory($limit = 24)//получаем просмотренные товары
{
if (class_exists('DBmysql'))
$tovar = \DBmysql::getAll("SELECT `title`, `id`, `cena`,`artikul`,`code`, `images` FROM `tovar` WHERE `status`=1 AND `id` IN (SELECT `content_id` FROM `history` WHERE `token`=? AND `content_type`=? AND `site`=?) ORDER BY RAND() LIMIT " . $limit, [session_id(), 'tovar', $_SERVER['SERVER_NAME']]);
else
$tovar = \DB::getAll("SELECT `title`, `id`, `cena`,`artikul`,`code`, `images` FROM `tovar` WHERE `status`=1 AND `id` IN (SELECT `content_id` FROM `history` WHERE `token`=? AND `content_type`=? AND `site`=? ORDER BY RANDOM() LIMIT ?)", [session_id(), 'tovar', $_SERVER['SERVER_NAME'], $limit]);
$c = count($tovar);
//print_r($tovar);
for ($i = 0; $i < $c; $i++)
$tovar[$i]['img'] = ($tovar[$i]['images']) ? \core::getFirstImgJSON($tovar[$i]['id'], 'tovar', $tovar[$i]['images']) : \core::getFirstImg($tovar[$i]['id'], 'tovar');
return $tovar;
}
/* ----------------------------------------------------------------------
31.07.2024
Формируем карту сайта
---------------------------------------------------------------------- */
static function updateSitemap($idTovar, $status)
{
$link = 'https://' . $_SERVER['SERVER_NAME'] . '/tovar_show/' . $idTovar;
if (class_exists('DBmysql')) {
$id = \DBmysql::getValue("SELECT `id` FROM `sitemap` WHERE `link`=? AND `site`=? LIMIT 1", [$link, $_SERVER['SERVER_NAME']]);///// !!!!!!!!!!!!
if ($id)
\DBmysql::set("UPDATE `sitemap` SET `status`=? WHERE `id`=? LIMIT 1", [$status, $id]);///// !!!!!!!!!!!!
else
\DBmysql::add("INSERT INTO `sitemap` (`link`, `status`,`t`,`site`) VALUES(?,?,?,?)", [$link, $status, time(), $_SERVER['SERVER_NAME']]);///// !!!!!!!!!!!!
} else {
$id = \DB::getValue("SELECT `id` FROM `sitemap` WHERE `link`=? AND `site`=? LIMIT 1", [$link, $_SERVER['SERVER_NAME']]);///// !!!!!!!!!!!!
if ($id)
\DB::set("UPDATE `sitemap` SET `status`=? WHERE `id`=? LIMIT 1", [$status, $id]);///// !!!!!!!!!!!!
else
\DB::add("INSERT INTO `sitemap` (`link`, `status`,`t`,`site`) VALUES(?,?,?,?)", [$link, $status, time(), $_SERVER['SERVER_NAME']]);///// !!!!!!!!!!!!
}
}
/* ----------------------------------------------------------------------
03.01.2024
Полуаем Инфо о товаре
---------------------------------------------------------------------- */
static function getTovar()
{
$err = 0;
$tovar = \DB::getRow("SELECT * FROM `tovar` WHERE `alias`=? LIMIT 1", $_GET['id']);
if (!@$tovar['id'])
$tovar = \DB::getRow("SELECT * FROM `tovar` WHERE `id`=? LIMIT 1", $_GET['id']);
if (!$tovar['id'])
$err = '404';
if ($tovar['status'] == 0)
$err = '403';
if ($tovar['alias'] && $tovar['alias'] != $_GET['id']) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: /product/' . $tovar['alias']);
}
$res['err'] = $err;
$res['tovar'] = $tovar;
// if ($err == 0 && $_SERVER['SERVER_NAME'] == 'tk-ligat.ru')
// self::updateSitemap($tovar['id'], $tovar['status']); ///// !!!!!!!!!!!!
return $res;
}
static function getTovar2()
{
$err = 0;
$tovar = \DBmysql::getRow("SELECT * FROM `tovar` WHERE `alias`=? LIMIT 1", $_GET['id']);
if (!@$tovar['id'])
$tovar = \DBmysql::getRow("SELECT * FROM `tovar` WHERE `id`=? LIMIT 1", $_GET['id']);
if (!$tovar['id'])
$err = '404';
if ($tovar['status'] == 0)
$err = '403';
if ($tovar['alias'] && $tovar['alias'] != $_GET['id']) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: /product/' . $tovar['alias']);
}
$res['err'] = $err;
$res['tovar'] = $tovar;
// if ($err == 0 && $_SERVER['SERVER_NAME'] == 'tk-ligat.ru')
// self::updateSitemap($tovar['id'], $tovar['status']); ///// !!!!!!!!!!!!
return $res;
}
/* ----------------------------------------------------------------------
03.01.2024
Получаем характеритики товара
---------------------------------------------------------------------- */
static function getTovarHars($id)
{
$har = \DB::getAll("SELECT * FROM `tovar_har` WHERE `tovar_id`=?", $id);
$c = count($har);
for ($i = 0; $i < $c; $i++)
$har[$i]['opt'] = \DB::getValue("SELECT `txt` FROM `tovar_har_sp` WHERE `id`=?", $har[$i]['tovar_har_sp_id']);
return $har;
}
static function getTovarHars2()
{
$har = \DBmysql::getAll("SELECT * FROM `tovar_har` WHERE `tovar_id`=? AND `site`=?", [$_GET['id'], $_SERVER['SERVER_NAME']]);
$c = count($har);
for ($i = 0; $i < $c; $i++)
$har[$i]['opt'] = \DBmysql::getValue("SELECT `txt` FROM `tovar_har_sp` WHERE `id`=?", $har[$i]['tovar_har_sp_id']);
return $har;
}
/* ----------------------------------------------------------------------
09.01.2024
Пишем количество просмотров
---------------------------------------------------------------------- */
static function setSee($see)
{
\DBmysql::set("UPDATE `tovar` SET `see`=? WHERE `id`=?", [$see, $_GET['id']]);
}
}
if ($_SERVER["SERVER_NAME"] == 'tk-ligat.ru' && $_SESSION["dostup"] == 'a')
$smarty->assign('tovar_category', \DBmysql::getAll("SELECT `id`, `title` FROM `tovar_category` WHERE `status`=1 ORDER BY `title`"));
$smarty->assign('inc_comments', 'api/modules/tovar_show/comments.html');
/* ----------------------------------------------------------------------
17.12.2022
Получаем данные о товаре
---------------------------------------------------------------------- */
$res = modClass::getTovar2();
$hars = modClass::getTovarHars2();
$res['massiv'] = \core::j($res['tovar']['json']);
//print_r($res);
/* ----------------------------------------------------------------------
08.07.2023
Штрихкод
---------------------------------------------------------------------- */
$cena == modClass::updatePrice($res['massiv']['partner'], $res['tovar']['uppricetime'], $res['tovar']['cena'], $res['tovar']['code'], $res['massiv']['donor']);
if ($cena)
$res['tovar']['cena'] = $cena;
$smarty->assign('tovar', $res['tovar']);
$smarty->assign('massiv', $res['massiv']);
$smarty->assign('har', $hars);
//$imgList = \core::getAllImg($res['tovar']['id'], 'tovar');
if ($res['tovar']['images'])
$imgList = \core::getAllImgJson($res['tovar']['id'], 'tovar', $res['tovar']['images']);
//print_r($imgList);
//print_r($res);
$smarty->assign('imgList', $imgList);
/* ----------------------------------------------------------------------
03.01.2023
Хлебные крошки
---------------------------------------------------------------------- */
$smarty->assign('Breadcrumb', \core::getBreadcrumb('tovar_category', $res['tovar']['category']));
$smarty->assign('rndTovar', modClass::getRndTovar($res['tovar']['category'], 16));
$smarty->assign('tovarHistory', modClass::getHistory(16));
/* ----------------------------------------------------------------------
15.10.2023
Пишем статистику просмотров
---------------------------------------------------------------------- */
modClass::setHistory();
//https://tk-ligat.ru/tovar_show/42963
?>