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

476 lines
18 KiB
PHP
Raw Normal View History

2024-09-30 08:50:06 +05:00
<?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:
}
?>