triok
-
Публікації
26 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем triok
-
-
Здравствуйте! Необходимо доработать загрузку сайта, что бы страницы грузились быстрее. В данный момент загрузке мешают js скрипты, всякие счетчики (метрики, гугла), дживо чат итп. Есть проблемы с фото и большим количеством запросов к БД. Это сказывается на показателях pagespeed (для мобильных 46 показывает).
Нужно придумать как реально ускорить загрузку и отложить запуск js, но что бы сайт для пользователей грузился нормально.
Рассмотрю любые варианты сотрудничества!
-
Привет всем, коллеги!
Сделал кнопку, которая отправляет аджакс запрос контроллер. В контроллере , через curl получаю строку (изображение (маркировочный лист для заказа)) в виде :
content-type: "application/pdf"
base64: "набор символов"
Я никак не могу понять как же мне в админке после нажатия на эту кнопку получить изображение (декодировать его) и вывести его на печать?
Не кидайте пожалуйста камни, догадываюсь что задача простая, но не сталкивался с выводом на печать и не понимаю как оно должно сработать в итоге. Даже не пойму куда копать.
Может надо что бы по нажатию на кнопку открывался шаблон (view) и туда передавалась строка с base64?
Направьте пожалуйста на какой-нибудь пример, не могу ничего толкового найти.
Пока в аджакс запросе стоит вот так:
... success: function(json){ console.log(json); },
И в консоль передается следующее:
result: {content_type: "application/pdf", base64_content: "JVBERi0xLjQKJeLjz......."}
Дальше у меня затуп что с этим делать..
-
Все еще раз привет, пользовался SEO PRO несколько месяцев, но к сожалению данный модуль не дружит с MegaFilter.
Вопрос, есть еще какие-нибудь модули/варианты которые помогут решить проблему дублей, кроме SEO PRO ? -
В порядке эксперимента,
Поставил Opencart 2.3 Русская сборка, затем MegaFilter, затем SEO Pro. Результат такой же, перестают работать ссылки фильтра если включить Тип чпу - SEO Pro.
Затем поставил OcStore 2.3 , к нему MegaFilter и затем SEO Pro. Точно такой же результат. Не работают. Попробовал в другом порядке поставить, значения не имеет.
Из-за того что проведена колоссальная 2 летняя работа с Мегафильтром, избавиться от него не представляется возможным.
-
есть ощущение, что либо ни у кого не стоит такая связка Опенкарт 2.3 + МегаФильтр + СеоПро, либо у всех всё без проблем работает.
Если второе (у всех такая связка работает без проблем), ребята, отпишитесь пожалуйста) -
Добрый день, подниму тему, проблема актуальна и не у меня одного!
Если снять галочку в Мегафильтра alliases, то все работает норм, если опять включить что бы использовать ЧПУ, то редиректит на "страница не найдена"
-
Всем привет! Ищу исполнителя для следующего задания:
Opencart 2.3
Megafilter Pro 2.0.5.2
SeoPro
Если включить SEOPro, то перестают работать ЧПУ которые назначены для страниц в Мегафильтре.
То есть при выборе фильтра в урл отображается правильный ЧПУ, но если скопировать этот урл и открыть на новой странице или даже на той же, то "Запрашиваемая страница не найдена".
Если поставить ЧПУ: Default, то все работает хорошо.
Готов оплатить работу по исправлению этой проблемы!
-
1 час назад, Pavel666 сказал:
вы немного неправильно воспринимаете схему взаимодействия
не echo $content_bottom включает контроллер,
а контроллер страницы продукта/категории/информационной/главной - да не важно какой,
обращается к контроллеру content_bottom, далее контроллер content_bottom увидев get параметры запроса определяет с какой страницы к нему обратились,
т.е продукта/категории/информационной/главной или какой либо другой,
и получает из бд идентификаторы модулей именно для этой страницы,
затем обработав идентификатор он обращается к контроллеру каждого модуля,
которые в свою очередь собрав необходимые данные,
передают их в метод view выше вы уже писали про него,
и метод view обрабатывает эти данные загрузив необходимый tpl шаблон
таким образом если вам необходимо ajax подгрузка,
то как вариант можно переопределить контроллер content_bottom,
и вывести на страницу или в js переменную, или записать в инпут, или в атрибуты любого блока идентификаторы модулей что получил content_bottom.
затем посредством ajax передать данные идентификаторы обратно в контроллер, где обработав уже вернуть html
1 час назад, Igor123123 сказал:Еще раз повторюсь:
модули читаются тут: $modules = $this->model_design_layout->getLayoutModules($layout_id, 'content_bottom');
а $layout_id зависит от route:if (!$layout_id) {
$layout_id = $this->model_design_layout->getLayout($route);
}у тебя route = common/content_bottom/index
для этого route нет layout. поэтому он берется тот что по умолчанию. А по умолчанию наверное нет назначенных модулей.
И да что того что-бы модули отображались, нужно return $this->load->view('common/content_bottom', $data);
заменить на echo $this->load->view('common/content_bottom', $data);
Но я бы сделал по другому:
Ничего не ламал и переделывал , а сделал бы отдельный контроллер и к нему обращался через ajax за всеми сайдбарами.
П.С. /index в конце не обязательно. Он и так вызываетсяСпасибо большое за разъяснение, теперь все стало понятно. В итоге сделал отдельную функцию, в ней указал роут по умолчанию common/home и все модули загрузились.
-
2 часа назад, Igor123123 сказал:
Потому что content_bottom как и остальные сайдбары ожидают входящих параметров. Исходя из которых грузят определенные модули.
В самом начале есть строка:
if (isset($this->request->get['route'])) {
$route = (string)$this->request->get['route'];
} else {
$route = 'common/home';
}Передавай значение route и остальные значения GET. в идеале и POST .а вдруг их какой-то модуль использует.
А почему тогда без Ajax все работает?
То есть смотрите если оставить в home строку echo $content_bottom, то она включает контроллер content_bottom , который в свою очередь возвращает вьюху return $this->load->view('common/content_bottom', $data);
А в content_bottom.tpl функция:
<?php foreach ($modules as $module) { ?> <?php echo $module; ?> <?php }?>
И вот она без проблем выводит все модули которые отмечены в админке в разделе Дизайн.
Правильно ли я делаю что через ajax обращаюсь к функции Index контроллера content_bottom?
-
Всем привет, пытаюсь сделать ленивую загрузку модулей в Opencart 2.3.
На главной странице почти все модули выводятся через echo $content_bottom и я пытаюсь сделать их загрузку по кнопке "Load". Вот что сделал:
В home.tpl убрал echo $content_bottom
и написал следующий скрипт:
modulesShown = false; $('#load').click(function(){ if(!modulesShown){ showModules(); modulesShown=true; } function showModules () { $.ajax({ url:"index.php?route=common/content_bottom/index", dataType:"html", success: function(e){ $("#modules").html(e); } }); }; });
То есть по моему замыслу все модули должны будут загрузится в див "modules" по нажатию на кнопку "Load"
Контроллер content_bottom.php у меня стандартный.
Вьюха content_bottom.tpl тоже
Если добавить print_r($modules); то каждый раз у меня возвращается пустой массив. В этом собственно и проблема.
Не могу понять почему он пустой.
-
Всем привет!
Столкнулся с проблемой дублей страниц, решить ее не смог.Кто поможет убрать дубли, что бы они не попадали в индексацию?
Вкратце о строении сайта
Есть Бренды (это категории)
Есть Категории (это тоже категории и подкатегории)Одна и та же карточка товара отображается по следующим url:
https://gearpro.ru/nozh-opinel-8-olive-wood (сайт/карточка)
https://gearpro.ru/brand/nozh-opinel-8-olive-wood (сайт/бренд/карточка)https://gearpro.ru/brand/opinel/nozh-opinel-8-olive-wood (сайт/бренды/бренд/карточка)
https://gearpro.ru/categories/nozh-opinel-8-olive-wood (сайт/категории/карточка)
https://gearpro.ru/categories/nozhi/nozh-opinel-8-olive-wood (сайт/категории/категория/карточка)
https://gearpro.ru/categories/nozhi/nozhi-opinel/nozh-opinel-8-olive-wood (сайт/категории/категория/подкатегория/карточка)
Ну я так понимаю можно еще комбинации придумать)
Все варианты попадают в индекс и в вебмастере эти страницы постоянно удаляются с пометкой дубль.А затем снова попадают и снова удаляются.
-
1) Немного переделал форму, так как если поля не заполнить и закрыть ее все равно появлялось уведомление что письмо отправлено. Поправил это. Новый код:
<script type="text/javascript"> window.onload = function () { var a = document.getElementById('director'); a.onclick = function() { Swal({ type: 'warning', title: 'Письмо директору', html: '<input name="name" id="swal-input1" class="swal2-input" placeholder="Ваше имя">' + '<input name="email" id="swal-input2" class="swal2-input" placeholder="Email для ответа">' + '<textarea name="text" id="swal-textarea1" class="swal2-textarea" placeholder="Введите текст сообщения..." style="display: flex;"></textarea>', showCancelButton: true, confirmButtonColor: '#ff5908', cancelButtonColor: '#666', confirmButtonText: 'Далее', cancelButtonText: 'Отмена', preConfirm: function () { return new Promise(function (resolve) { resolve([ $('#swal-input1').val(), $('#swal-input2').val(), $('#swal-textarea1').val() ]) }) }, }).then(function (result) { if (result.value) { var result = {}; result.name = $('#swal-input1').val(); result.email = $('#swal-input2').val(); result.text = $('#swal-textarea1').val(); $.ajax({ url:"index.php?route=common/director/index", type: "POST", data: JSON.stringify(result), success: function() {Swal({type: 'success', text: 'Сообщение отправлено'});}, error: function(xhr,status,error){ console.log(status); console.log(error); } }) } }) return false; } } </script>
2) Вопрос к знатокам, с точки зрения более чистого кода уместно ли было создать новый контроллер для обработки такого запроса. Или же логичнее было впихнуть функцию обработки например в контроллер хедера/футера?
Может быть вообще правильнее было всю логику вставить в функцию индекс хэдера/футера?
3)
11 часов назад, chukcha сказал:Никакой защиты от спама
$request_body = file_get_contents('php://input'); $data = json_decode($request_body);
хм..
Защиту от спама не делал, во-первых не знаю как, а во-вторых на моем проекте она не нужна, спама нет)
А вот с file_get_contents , тут да. Я долго не мог поймать пост запрос и в итоге это единственное решение которое сработало.Был бы признателен если бы указали как правильнее его поймать.
Я так понимаю что надо начать со строк:
if ($this->request->server['REQUEST_METHOD'] == 'POST') {}
но как тут правильно все сделать не понимаю, у меня ничего не получилось -
Если долго мучиться, то что-нибудь получится. В итоге все сделал. Может кому понадобится, оставлю код здесь. Надеюсь кто-нибудь опытный поправит кои косяки и недоработки.
В общем повторю еще раз смысл:
В шапке магазина размещена ссылка, нажав на которую появляется модальное окошко SweetAlert с формой (имя, имейл, текст). Заполнив форму, жмем "ОК" и происходит отправка сообщения с данными формы на определенный имейл. В моем случае на почту директора.
Итак,
в header.tpl, ссылка выглядит так:
<a href="mailto:[email protected]"><p id="director" class="director">Письмо директору</p></a>
В footer.tpl, вставил скрипт JS(SweetAlert) + отправку формы через Ajax, json
<script type="text/javascript"> window.onload = function () { var a = document.getElementById('director'); a.onclick = function() { Swal({ type: 'warning', title: 'Письмо директору', html: '<input name="name" id="swal-input1" class="swal2-input" placeholder="Ваше имя">' + '<input name="email" id="swal-input2" class="swal2-input" placeholder="Email для ответа">' + '<textarea name="text" id="swal-textarea1" class="swal2-textarea" placeholder="Введите текст сообщения..." style="display: flex;"></textarea>', showCancelButton: true, confirmButtonColor: '#ff5908', cancelButtonColor: '#666', confirmButtonText: 'Далее', cancelButtonText: 'Отмена', preConfirm: function () { return new Promise(function (resolve) { resolve([ $('#swal-input1').val(), $('#swal-input2').val(), $('#swal-textarea1').val() ]) }) }, }).then(function (result) { var result = {}; result.name = $('#swal-input1').val(); result.email = $('#swal-input2').val(); result.text = $('#swal-textarea1').val(); $.ajax({ url:"/catalog/controller/common/director/index", type: "POST", data: JSON.stringify(result), error: function(xhr,status,error){ console.log(status); console.log(error); } }).done(function() { Swal({type: 'success', text: 'Сообщение отправлено'}); }); }) return false; } } </script>
В папке controller/common/ создал контроллер director.php, который получает данные jSON и отправляет сообщение.
Вот так он выглядит:
<?php class ControllerCommonDirector extends Controller { public function index() { $request_body = file_get_contents('php://input'); $data = json_decode($request_body); $username = $data->name; $email = $data->email; $msg = $data->text; $message = '<div><span>Имя: </span><span><strong>'.$username.'</strong></span></div><br><div><span>Имейл: </span><span><strong>'.$email.'</strong></span></div><br><div>Текст сообщения:</div><br><div><strong>'.$msg.'</strong><div>'; $subject = 'Письмо директору от: '.$email; $mail = new Mail(); $mail->protocol = $this->config->get('config_mail_protocol'); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo('[email protected]'); // Имейл директора $mail->setFrom($this->config->get('config_email')); $mail->setSender(html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8')); $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); $mail->setHtml($message); $mail->send(); } }
Уверен, что можно было бы где-то что-то упростить, но вариант рабочий. Буду рад услышать критику.
-
Добрый день коллеги, помогите разобраться.
Придумал себе задачу, сделать JS форму на сайте типа "Письмо директору", с двумя инпутами и кнопкой "ОК". При заполнении полей и нажатии на кнопку должна происходить отправка имейл сообщения.
Почему именно JS , потому что все всплывающие окошки на сайте сделаны через SweetAlert2.
Форму сделал соответственно тоже через SweetAlert2, при заполнении полей и нажатии на OK данные с инпутов кодируются в JSON, тут всё работает.
Вот так выглядит форма:
<script type="text/javascript"> window.onload = function () { var a = document.getElementById('director'); a.onclick = function() { Swal({ type: 'warning', title: 'Письмо директору', html: '<input id="swal-input1" class="swal2-input" placeholder="Ваш иемйл">' + '<textarea id="swal-textarea1" class="swal2-textarea" placeholder="Введите текст сообщения..." style="display: flex;"></textarea>', showCancelButton: true, confirmButtonText: 'Отправить', cancelButtonText: 'Отмена', preConfirm: function () { return new Promise(function (resolve) { resolve([ $('#swal-input1').val(), $('#swal-textarea1').val() ]) }) }, }).then(function (result) { var message = JSON.stringify(result); }) return false; } } </script>
Собственно, вопрос , а дальше что? Я начал лепить аджакс запрос:
$.ajax({ url:"sendmail.php", type: 'POST', data: message, error: true, success:function(message){swal('success')}, }) })
Результат приходит как succes. Создал sendmail.php файл:
<?php $message = $_POST['message']; $mail = new \Mail(); $mail->protocol = $this->config->get('config_mail_protocol'); $mail->parameter = $this->config->get('config_mail_parameter'); $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname'); $mail->smtp_username = $this->config->get('config_mail_smtp_username'); $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8'); $mail->smtp_port = $this->config->get('config_mail_smtp_port'); $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout'); $mail->setTo('[email protected]'); // Кому $mail->setFrom($this->config->get('config_email')); // От кого $mail->setSubject("Test mail"); // Тема $mail->setHtml($message); // Текст $mail->send(); ?>
И тут у меня возникла мысль, что я вообще не той дорогой иду))
Уважаемые коллеги, направьте меня на правильный путь.
Правильно ли я понял схему, сначала делаю форму, затем формирую ajax запрос в файл sendmail.php, а там ловлю json данные и произвожу отправку?
-
Да все понятно и ясно, с человеком в живую встречался, долго общался, ну , в общем , урок на будущее )
-
Добрый день, выполнил работу на которую потратил 2 недели, заказчик работу не оплатил, поменял все пароли, на связь не выходит. Классика(
Есть данные для подключения к БД (имя БД, логин, пароль) их не меняли это 100%.
Опенкарт 2.3.
Есть шансы как-то зайти в БД и удалить ее?
Зайти в phpmyadmin напрямую нельзя (хостинг дает возможность зайти в PMA только через панель).
Всю структуру сайта знаю (есть полная копия на локальном сервере).
-
Добрый день!
Opencart 2.3
Установлен модуль корзины Simple
Необходимо доработать корзину и внести следующие изменения:
Вкратце:Добавить столбик "скидка", который будет появляться при определенных условиях
Сделать правила для столбца "скидка" по которым там будет отображаться сумма с учетом скидки или % скидки.Полное ТЗ:
Техническое задание:
1) Необходимо задать правило:Если (клиент залогинен) или (один из товаров в корзине имеет акцию) или (активирован купон), то:[появляется колонка "Скидка"], которая будет располагаться между "Ценой" и "Итого".в остальных случаях этой колонки нет.2) Необходимо задать правило к первой колонке (Цена):В любом случае если на товар есть акция, то в колонке Цена указывается обычная цена без учета акции.3) В колонке (скидки) будут отображаться все варианты скидок. Правило:(не учитывая правила появления этой колонки описанное выше. Нижеследующие правила применяются только если сработало одно из условия для)Если (клиент залогинен), то:показывает процентный размер скидки и указывется слово "Накопительная" (http://joxi.ru/BA0bWaMtB7BJPm).Еще Если (к товару применен купон), топоказывает процентный размер скидки и указывется "код купона" (http://joxi.ru/8238Kgbt6j6nxA),Еще Если (товар имеет акцию), топоказывается процентный размер скидки и указывается "Акция" (http://joxi.ru/a2XYG7xcy5y4DA)В остальных случаях - прочерк.Есть идеи у кого-нибудь как все это реализовать? И какая будет стоимость работ...
-
Проблема была решена путем отключения модуля Storage Cleaner.
@chukcha Спасибо за помощь!)
-
Стоит такой вот чистильщик https://github.com/p0v1n0m/opencart_storage_cleaner
-
Столкнулся с такой же проблемой на OC2.3
Папка с image/cache/products разрастается на глазах, как только достигает больше 600 кэшированых изображений, админка сайта начинает дико тормозить. При этом сам сайт загружается нормально. При работе в админке, удаляю кэш вручную каждые 15-30 минут. Это ведь не нормально? Сейчас вот смотрю 13 118 файлов в image/cache/products и количество ежеминутно растет. (2,5 тысячи товаров).
Посоветуйте что можно проверить? поправить?То есть повторюсь, сам сайт работает хорошо, отклик отличный, но вот в админке работать невозможно.
-
нет, не опечатался, готов обсудить сумму!
-
Добрый день!
Если ошибся разделом форума, то прошу подправить.
Есть проект на OpenCart, но никак не могу довести до ума, требуется комплексная доработка.
Данную работу я оцениваю в 13 000 руб.
Расходы на приобретение модулей за мой счет.Полное ТЗ будет предоставлено дополнительно.
OpenCart 2.3 , шаблон не стандартный, делал на заказ, сделана адаптивная верстка (криво и не полностью), но с адаптивом будем разбираться в конце.
Итак, краткое ТЗ.
CATALOG:
Фильтр:
1.1) Необходимо установить подключить модуль MegaFilterPro и вывести его на страницы категории и поиска (обязательно)
1.2) Настроить его под стиль сайта (фон, шрифт, размер и.т.п.)Иконки для товаров.
2.1) Не показывается иконка "New", в каталоге показывается а внутри карточки товара нет. Необходимо исправить
2.2) Необходимо сделать возможность (при добавлении иконок) выбор отображать иконку в категории или не отображать. Сейчас все иконки назначенные к товару, отображаются внутри карточки товара и в категории.Корзина
3.1) Предложить какой-либо модуль для оформления заказа на 1-ой странице
3.2) Установить этот модуль и подключить его, подогнать его под существующую верстку корзиныМодули Оплаты/Доставки
4.1) Предложить какой-нибудь модуль для добавления свои методов оплаты и доставки (Необходима возможность установки бесплатного порога для доставки)
4.2) Установить и подключить, связать с корзинойПодписка
5) Сделать возможность подписки на новости и отписки от нее в футере сайта. Возможно найти готовый модуль, подключить его и настроить.
Новости
6) Настроить работу новостного блока (стоит модуль SEO CMS, но не понятно где добавлять новости и редактировать их).
Меню
7) Для английской версии сайта не настроено правильное отображение меню, необходимо доделать.
Быстрый заказ
8) Найти и подключить модуль быстрого заказа (я находил на просторах подобный модуль, но не помню названия). Смысл в том что бы покупатель делал быстрый заказ (заполнив пару полей) и этот заказ попадал в обычный список заказов, но ему сразу присваивался статус "быстрый заказ".
Кнопка "Заказать" и "Предварительный заказ"
9.1) На главной странице не работают кнопки "В корзину".
9.2) Предварительный заказ
9.3) Если товара нет в наличии (на складе "ноль"), то у товара вместо кнопки "в корзину" появляется кнопка "Заказать", серого цвета.
9.4) Нажав на кнопку заказа , покупателю показывается окно с такими данными: http://joxi.ru/Q2KqBjVsnDobrj
9.5) После заполнения данных, клиенту отправляется уведомление, а в админку падает заказ со статусом "Предзаказ". на данный товарADMIN:
Редактирование товара
1) В редактировании товара, добавить поля (рядом с meta полями) "Текст вверху" и "Текст внизу" - данные из этих полей отображаются в карточке товара в самом верху
Список заказов
2) В списке заказов, добавить кнопку "Накладная курьеру". Выделив заказы и нажав на эту кнопку открывается печатная форма (макет покажу, простой) в котором перечисляются выбранные заказы и товарные позиции
Просмотр заказа
3.1) В просмотре заказа добавить поле "Номер для почты" , куда можно вписать Трек номер
3.2) В просмотре заказа добавить кнопку "Уведомить об отправке" , при нажатии на кнопку формируется сообщение с возможностью редактирования, в котором указыывается номер заказа и введенный "номер для почты" http://joxi.ru/Dr89OovCxe9qm6 Вот так.
3.3) После отправки сообщения , рядом с кнопкой появляется галочка (которая означает что клиент уведомлен)
3.4) В печатную форму в просмотре заказов необходимо добавить поле комментарий, которую можно заполнить перед печатью . По умолчанию в эту форму подтягивается последний добавленный комментарий.
3.5) В просмотре заказа добавить кнопку "Оставить отзыв" , нажав на которую открывается форма для отправки сообщения в которой подхватывается, имя, номер заказа. В форме стоит текст с просьбой оставить отзыв. Текст формы можно менять перед отправкой.
Все пункты перечислены тезисно, полное задание предоставлю всем кто будет заинтересован в проекте.Спасибо! Жду вопросов, уточнений и предложений по работе.
-
14 минут назад, ibond сказал:
Вносите правки в собственном модификаторе, создайте в папке /system/ name.ocmod.xml - поправили файл, обновили модификаторы.
Спасибо! Пробую!
-
12 минут назад, Dotrox сказал:
Не надо вносить никакие правки в кеше! Как уже было сказано выше - это можно делать только в процессе работы для тестирования, если лень каждый раз обновлять модификаторы в админке. Все правки надо вносить в оригинальные файлы, а затем обновлять кеш и всё.
Отключите все модификаторы, которые трогают эти файлы (если вас устроит, что все эти модули отвалятся).
То что отвалятся модули конечно не устроит
Спасибо за ответ! Разжевали, теперь понял...
Необходима оптимизация нагрузки на mysql сервер
в Системне адміністрування (налаштування хостингу, серверів, ПЗ)
Опубліковано:
Здравствуйте! Есть аналогичная проблема с нагрузкой на сервер, ищу исполнителя который поможет определить проблему, проанализировать запросы и оптимизировать БД!