390 lines
18 KiB
PHP
Executable File
390 lines
18 KiB
PHP
Executable File
<?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
|
||
?>
|