crm-rush/api/modules/ajax/ajax.php

476 lines
18 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
function translit($value)
{
$converter = array(
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'д' => 'd',
'е' => 'e',
'ё' => 'e',
'ж' => 'zh',
'з' => 'z',
'и' => 'i',
'й' => 'y',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'h',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'sch',
'ь' => '',
'ы' => 'y',
'ъ' => '',
'э' => 'e',
'ю' => 'yu',
'я' => 'ya',
'А' => 'A',
'Б' => 'B',
'В' => 'V',
'Г' => 'G',
'Д' => 'D',
'Е' => 'E',
'Ё' => 'E',
'Ж' => 'Zh',
'З' => 'Z',
'И' => 'I',
'Й' => 'Y',
'К' => 'K',
'Л' => 'L',
'М' => 'M',
'Н' => 'N',
'О' => 'O',
'П' => 'P',
'Р' => 'R',
'С' => 'S',
'Т' => 'T',
'У' => 'U',
'Ф' => 'F',
'Х' => 'H',
'Ц' => 'C',
'Ч' => 'Ch',
'Ш' => 'Sh',
'Щ' => 'Sch',
'Ь' => '',
'Ы' => 'Y',
'Ъ' => '',
'Э' => 'E',
'Ю' => 'Yu',
'Я' => 'Ya',
' ' => '_'
);
$value = strtr($value, $converter);
return $value;
}
switch (@$_POST['act']) {
/* ----------------------------------------------------------------------
11.06.2024
Дозагрузка контента
---------------------------------------------------------------------- */
case 'contentDown':
$limit = $_POST['limit'];
$page = intval(@$_POST['page']);
$page = (empty($page)) ? 1 : $page;
$start = ($page != 1) ? $page * $limit - $limit : 0;
if (class_exists('DBmysql')) {
$list = \DBmysql::getAll("SELECT `id`, `title`, `cena`, `artikul`, `code` FROM `" . $_POST['content_type'] . "` WHERE `category`=? AND `site`=? AND `status`=1 LIMIT $start, $limit", [$_POST['category'], $_SERVER['SERVER_NAME']]);
} else {
$list = \DB::getAll("SELECT `id`, `title`, `cena`, `artikul`, `code` FROM `" . $_POST['content_type'] . "` WHERE `category`=? AND `site`=? AND `status`=1 LIMIT $start, $limit", [$_POST['category'], $_SERVER['SERVER_NAME']]);
}
$count = count($list);
for ($i = 0; $i < $count; $i++) {
if (class_exists('DBmysql')) {
$filename = \DBmysql::getValue("SELECT `filename` FROM `img` WHERE `content_id`=? AND `site`=? AND `content_type`=? LIMIT 1", array(
$list[$i]['id'],
$_SERVER['SERVER_NAME'],
$_POST['content_type']
));
} else {
$filename = \DB::getValue("SELECT `filename` FROM `img` WHERE `content_id`=? AND `site`=? AND `content_type`=? LIMIT 1", array(
$list[$i]['id'],
$_SERVER['SERVER_NAME'],
$_POST['content_type']
));
}
if (!$filename) {
$img = 'https://static.yurecnt.ru/img/nofoto/no_skin.png';
} else {
$f = 'cache/img/' . $filename . '-' . IMG_PRV_W . '-' . IMG_PRV_H . '.webp';
if (file_exists($f))
$img = '/' . $f;
else
$img = '/img/' . $filename . '-' . IMG_PRV_W . '-' . IMG_PRV_H;
}
$a = ($list[$i]['artikul']) ? $list[$i]['artikul'] : $list[$i]['code'];
$res .= '
<div style="width:300px; padding-bottom: 10px;">
<div class="card" style="width: 280px;">
<div style="height: 280px;">
<a href="/tovar_show/' . $list[$i]['id'] . '"><img
src="' . $img . '" class="card-img-top" alt="..." style="width: 280px"></a>
</div>
<div class="card-body" style="text-align: center;">
<div style="height: 100px; margin-bottom: 10px;">
<h5 class="card-title" style="font-size: 12pt; font-weight: 100;"><a href="/tovar_show/' . $list[$i]['id'] . '">' . mb_substr($list[$i]['title'], 0, 50) . '</a>
</h5>
</div>
<small
style="background-color: lightblue; padding: 5px; width: 100%; margin-bottom: 10px; margin-top: 10px;">Актикул: ' .
$a . '</small>
<!--p class="card-text">Небольшой пример текста, который должен основываться на названии карточки и составлять основную часть содержимого карты.</p-->
<a href="/tovar_show/' . $list[$i]['id'] . '" class="btn btn-primary" style="width: 100%;"><i
class="fa-solid fa-cart-shopping"></i>' . $list[$i]['cena'] . ' р.</a>
</div>
</div>
</div>';
}
echo $res;
break;
/* ----------------------------------------------------------------------
02.02.2024
Добавляем товар и сообщаем ИД
---------------------------------------------------------------------- */
case 'api_addtovar_v1':
//print_r($_POST);
$key = $_POST['key'];
$massiv = \core::j($_POST['j']);
//проверяем статус ключа api:
$status = \DB::getValue("SELECT `status` FROM `api` WHERE `api`=? AND `site`=? LIMIT 1", array($key, $massiv['site']));
if ($status == 1) {
//Проверяем существование товара:
$id = \DB::getValue("SELECT `id` FROM `tovar` WHERE `title`=? AND `site`=? LIMIT 1", array($massiv['title'], $massiv['site']));
if (!$id)
$id = \DB::add("INSERT INTO `tovar` (`title`, `artikul`, `status`, `site`, `category`, `alias`) VALUES (?, ?, ?, ?, ?, ?)", array(
$massiv['title'],
$massiv['artikul'],
1,
$massiv['site'],
0,
translit($massiv['title'])
));
echo $id;
}
break;
/* ----------------------------------------------------------------------
02.02.2024
Обновляем цены на товары
---------------------------------------------------------------------- */
case 'api_upd_price_v1':
print_r($_POST);
$key = $_POST['key'];
$massiv = \core::j($_POST['j']);
//проверяем статус ключа api:
$status = \DB::getValue("SELECT `status` FROM `api` WHERE `api`=? AND `site`=? LIMIT 1", array($key, $massiv['site']));
if ($status == 1) {
$massiv['cena'] = str_replace(" ", "", $massiv['cena']);
if ($massiv['har']) {
//смотрим, есть ли уже цена, если есть - обновляем, иначе добавляем
$id = \DB::getValue(
"SELECT `id` FROM `price_hars` WHERE `tovar_id`=? AND `har`=? AND `site`=? LIMIT 1",
array(
$massiv['tovar_id'],
$massiv['har'],
$massiv['site']
)
);
if ($id) { //Обновляем
\DB::set("UPDATE `price_hars` SET `cena`=? WHERE `id`=?", array($massiv['cena'], $id));
} else { //Добавляем
$id = \DB::add(
"INSERT INTO `price_hars` (`tovar_id`, `har`, `cena`, `site`) VALUES (?,?,?,?)",
array(
$massiv['tovar_id'],
$massiv['har'],
$massiv['cena'],
$massiv['site']
)
);
}
} else {
\DB::set("UPDATE `tovar` SET `cena`=? WHERE `id`=?", array($massiv['cena'], $massiv['tovar_id']));
}
} else {
die("bad api key");
}
break;
/* ----------------------------------------------------------------------
28.01.2024
Скрывем инфу о куках
---------------------------------------------------------------------- */
case 'hide-info-cookie':
setcookie('hideinfocookie', 1, $tri_mes, '/', $_SERVER['SERVER_NAME']);
break;
/* ----------------------------------------------------------------------
09.04.2023
Получаем суб-меню
---------------------------------------------------------------------- */
case 'getSubMenu':
$submenu = \DB::getAll("SELECT `id`, `title` FROM `tovar_category` WHERE `category`=? AND `status`=1", $_POST['id']);
echo \json::to_j($submenu);
break;
/* ----------------------------------------------------------------------
05.03.2023
Удаляем из корзины
---------------------------------------------------------------------- */
case 'delFromCart':
\DB::set("DELETE FROM `cart` WHERE `id`=? AND `user_id`=?", array($_POST['id'], \core::checkMe()));
echo \core::getCart()['summ'];
break;
/* ----------------------------------------------------------------------
27.02.2023
Добавляем в корзину
Берем три параметра ID товара, ИД пользователя, Количество
---------------------------------------------------------------------- */
case 'addToCart2_0': //Инсталл
$me = \core::checkMe();
//Проверяем, есть ли товар в корзине, если есть - плюсуем, если нет - добавляем запись
$kolvo = \DB::getValue("SELECT `kolvo` FROM `cart` WHERE `tovar_id`=? AND `user_id`=? AND `order` IS NULL LIMIT 1", array($_POST['tovar_id'], $me));
if ($kolvo)
\DB::set("UPDATE `cart` SET `kolvo`=? WHERE `tovar_id`=? AND `user_id`=? AND `order` IS NULL LIMIT 1", array($kolvo + 1, $_POST['tovar_id'], $me));
else
\DB::add("INSERT INTO `cart` (`kolvo`, `t`, `tovar_id`, `user_id`, `har`)VALUES(?, ?, ?, ?, ?)", array(1, time(), $_POST['tovar_id'], $me, $_POST['har']));
break;
case 'addToCart':
echo \DB::add("INSERT INTO `cart` (`kolvo`, `t`, `tovar_id`, `user_id`)VALUES(?, ?, ?, ?)", array($_POST['kolvo'], time(), $_POST['tovar_id'], \core::checkMe()));
break;
//сохраняет настройки модуля
/* case 'save_settings_mod':
unset($a);
$a['mod']=$_POST['mod'];
$id_set=$db->get_val('settings', $a, 'id');
unset($_POST['act']);
unset( $_POST['mod'] );
$a['json']=serialize($_POST);
$db->update('settings', $id_set, $a);
echo 0;
//сделать проверку наличия в БД (это уже есть в модуле, но кто ж не ошибается)
break;
*/
// Сохранение настроек модуля
case 'save_settings_mod':
$res['mod'] = $_POST['mod'];
unset($_POST['mod']);
unset($_POST['act']);
$res['json'] = json_encode($_POST, JSON_UNESCAPED_UNICODE);
$db->free_sql2("UPDATE `settings` SET `json`='" . $res['json'] . "' WHERE `mod`='" . $res['mod'] . "'");
break;
/* ----------------------------------------------------------------------
12.02.2023
Повышаем рейтинг
---------------------------------------------------------------------- */
case 'up_reyt';
$user_id = \core::checkMe();
//узнаем, лайкали ли уже это
$like_id = \DB::getValue("SELECT `id` FROM `likes` WHERE `user_id`=? AND `content_id`=? AND `content_type`=?", array($user_id, $_POST['id'], $_POST['tip']));
$reyt = \DB::getValue("SELECT `reyt` FROM `" . $_POST['tip'] . "` WHERE `id`=? LIMIT 1", $_POST['id']);
if ($like_id) { //уже лайкали - разлайкиваем
$reyt--;
\DB::set("DELETE FROM `likes` WHERE `user_id`=? AND `content_id`=? AND `content_type`=? LIMIT 1", array($user_id, $_POST['id'], $_POST['tip']));
} else {
$reyt++;
\DB::add("INSERT INTO `likes` (`user_id`, `content_id`, `content_type`) VALUES (?, ?, ?)", array($user_id, $_POST['id'], $_POST['tip']));
}
\DB::set("UPDATE `" . $_POST['tip'] . "` SET `reyt`=? WHERE `id`=? LIMIT 1", array($reyt, $_POST['id']));
echo $reyt;
break;
case 'up_reyt1';
$tip = $_POST['tip'];
$user_id = ($_SESSION['user_id']) ? $_SESSION['user_id'] : session_id();
if ($tip == 'user_reyt') { //обновляем рейтинг пользователя
//проверяем что еще не лайкали
$id = \DB::getValue("SELECT `id` FROM `likes` WHERE `user_id`=? AND `tip`=? AND `content_id`=? LIMIT 1", array($user_id, $tip, $_POST['id']));
if ($id) { //Убавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `reyt` FROM `users` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt--;
//обновляем рейтинг
\DB::set("UPDATE `users` SET `reyt`=? WHERE `id`=?", array($reyt, $_POST['id']));
\DB::add("DELETE FROM `likes` WHERE `id`=?", $id);
echo $reyt;
} else { //прибавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `reyt` FROM `users` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt++;
//обновляем рейтинг
\DB::set("UPDATE `users` SET `reyt`=? WHERE `id`=?", array($reyt, $_POST['id']));
//пишем в базу что уже это лайкнули
\DB::add("INSERT INTO `likes` (`user_id`, `tip`, `content_id`) VALUES(?, ?, ?)", array($user_id, $tip, $_POST['id']));
echo $reyt;
}
}
if ($tip == 'user_spasibo') { //обновляем рейтинг пользователя
//проверяем что еще не лайкали
$id = \DB::getValue("SELECT `id` FROM `likes` WHERE `user_id`=? AND `tip`=? AND `content_id`=? LIMIT 1", array($user_id, $tip, $_POST['id']));
if ($id) { //Убавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `spasibo` FROM `users` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt--;
//обновляем рейтинг
\DB::set("UPDATE `users` SET `spasibo`=? WHERE `id`=?", array($reyt, $_POST['id']));
\DB::add("DELETE FROM `likes` WHERE `id`=?", $id);
echo $reyt;
} else { //прибавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `spasibo` FROM `users` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt++;
//обновляем рейтинг
\DB::set("UPDATE `users` SET `spasibo`=? WHERE `id`=?", array($reyt, $_POST['id']));
//пишем в базу что уже это лайкнули
\DB::add("INSERT INTO `likes` (`user_id`, `tip`, `content_id`) VALUES(?, ?, ?)", array($user_id, $tip, $_POST['id']));
echo $reyt;
}
}
if ($tip == 'page_reyt') { //обновляем рейтинг пользователя
//проверяем что еще не лайкали
$id = \DB::getValue("SELECT `id` FROM `likes` WHERE `user_id`=? AND `tip`=? AND `content_id`=? LIMIT 1", array($user_id, $tip, $_POST['id']));
if ($id) { //Убавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `reyt` FROM `pages` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt--;
//обновляем рейтинг
\DB::set("UPDATE `pages` SET `reyt`=? WHERE `id`=?", array($reyt, $_POST['id']));
\DB::add("DELETE FROM `likes` WHERE `id`=?", $id);
echo $reyt;
} else { //прибавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `reyt` FROM `pages` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt++;
//обновляем рейтинг
\DB::set("UPDATE `pages` SET `reyt`=? WHERE `id`=?", array($reyt, $_POST['id']));
//пишем в базу что уже это лайкнули
\DB::add("INSERT INTO `likes` (`user_id`, `tip`, `content_id`) VALUES(?, ?, ?)", array($user_id, $tip, $_POST['id']));
echo $reyt;
}
}
if ($tip == 'comment_reyt') { //обновляем рейтинг пользователя
//проверяем что еще не лайкали
$id = \DB::getValue("SELECT `id` FROM `likes` WHERE `user_id`=? AND `tip`=? AND `content_id`=? LIMIT 1", array($user_id, $tip, $_POST['id']));
if ($id) { //Убавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `reyt` FROM `pages_comments` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt--;
//обновляем рейтинг
\DB::set("UPDATE `pages_comments` SET `reyt`=? WHERE `id`=?", array($reyt, $_POST['id']));
\DB::add("DELETE FROM `likes` WHERE `id`=?", $id);
echo $reyt;
} else { //прибавляем
//Получаем текущий рейтинг из БД
$reyt = \DB::getValue("SELECT `reyt` FROM `pages_comments` WHERE `id`=? LIMIT 1", $_POST['id']);
$reyt++;
//обновляем рейтинг
\DB::set("UPDATE `pages_comments` SET `reyt`=? WHERE `id`=?", array($reyt, $_POST['id']));
//пишем в базу что уже это лайкнули
\DB::add("INSERT INTO `likes` (`user_id`, `tip`, `content_id`) VALUES(?, ?, ?)", array($user_id, $tip, $_POST['id']));
echo $reyt;
}
}
break;
/* Отправляем письмо тавру */
case 'os_tavr':
//echo 'test';
$tema = 'Заявка на обратный звонок с сайта ' . $_SERVER['SERVER_NAME'];
$txt = '<table>
<tr>
<td>Организация</td><td>' . $_POST['org'] . '</td>
</tr>
<tr>
<td>ФИО</td><td>' . $_POST['fio'] . '</td>
</tr>
<tr>
<td>Телефон</td><td>' . $_POST['tel'] . '</td>
</tr></table>
';
\core::sendemail('E_ADMIN_EMAIL', $tema, $txt);
\core::sendemail('1@yurecnt.ru', $tema, $txt);
if ($_SERVER['SERVER_NAME'] == 'tavrnt.ru')
\core::sendemail('tavr96@yandex.ru', $tema, $txt);
break;
/* Отправляем просто номер */
case 'sendNumber':
//echo 'test';
$tema = 'Заявка на обратный звонок с сайта ' . $_SERVER['SERVER_NAME'];
$txt = '<table>
<td>Телефон</td><td>' . $_POST['numberVal'] . '</td>
</tr></table>';
\core::sendemail(E_ADMIN_EMAIL, $tema, $txt);
\core::sendemail('1@yurecnt.ru', $tema, $txt);
//\core::sendemail('tavr96@yandex.ru', $tema, $txt);
break;
default:
}
?>