Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

triok

Новачок
  
  • Публікації

    26
  • З нами

  • Відвідування

Усі публікації користувача triok

  1. Здравствуйте! Есть аналогичная проблема с нагрузкой на сервер, ищу исполнителя который поможет определить проблему, проанализировать запросы и оптимизировать БД!
  2. Здравствуйте! Необходимо доработать загрузку сайта, что бы страницы грузились быстрее. В данный момент загрузке мешают js скрипты, всякие счетчики (метрики, гугла), дживо чат итп. Есть проблемы с фото и большим количеством запросов к БД. Это сказывается на показателях pagespeed (для мобильных 46 показывает). Нужно придумать как реально ускорить загрузку и отложить запуск js, но что бы сайт для пользователей грузился нормально. Рассмотрю любые варианты сотрудничества!
  3. Привет всем, коллеги! Сделал кнопку, которая отправляет аджакс запрос контроллер. В контроллере , через curl получаю строку (изображение (маркировочный лист для заказа)) в виде : content-type: "application/pdf" base64: "набор символов" Я никак не могу понять как же мне в админке после нажатия на эту кнопку получить изображение (декодировать его) и вывести его на печать? Не кидайте пожалуйста камни, догадываюсь что задача простая, но не сталкивался с выводом на печать и не понимаю как оно должно сработать в итоге. Даже не пойму куда копать. Может надо что бы по нажатию на кнопку открывался шаблон (view) и туда передавалась строка с base64? Направьте пожалуйста на какой-нибудь пример, не могу ничего толкового найти. Пока в аджакс запросе стоит вот так: ... success: function(json){ console.log(json); }, И в консоль передается следующее: result: {content_type: "application/pdf", base64_content: "JVBERi0xLjQKJeLjz......."} Дальше у меня затуп что с этим делать..
  4. Все еще раз привет, пользовался SEO PRO несколько месяцев, но к сожалению данный модуль не дружит с MegaFilter. Вопрос, есть еще какие-нибудь модули/варианты которые помогут решить проблему дублей, кроме SEO PRO ?
  5. В порядке эксперимента, Поставил Opencart 2.3 Русская сборка, затем MegaFilter, затем SEO Pro. Результат такой же, перестают работать ссылки фильтра если включить Тип чпу - SEO Pro. Затем поставил OcStore 2.3 , к нему MegaFilter и затем SEO Pro. Точно такой же результат. Не работают. Попробовал в другом порядке поставить, значения не имеет. Из-за того что проведена колоссальная 2 летняя работа с Мегафильтром, избавиться от него не представляется возможным.
  6. есть ощущение, что либо ни у кого не стоит такая связка Опенкарт 2.3 + МегаФильтр + СеоПро, либо у всех всё без проблем работает. Если второе (у всех такая связка работает без проблем), ребята, отпишитесь пожалуйста)
  7. Добрый день, подниму тему, проблема актуальна и не у меня одного! Если снять галочку в Мегафильтра alliases, то все работает норм, если опять включить что бы использовать ЧПУ, то редиректит на "страница не найдена"
  8. Всем привет! Ищу исполнителя для следующего задания: Opencart 2.3 Megafilter Pro 2.0.5.2 SeoPro Если включить SEOPro, то перестают работать ЧПУ которые назначены для страниц в Мегафильтре. То есть при выборе фильтра в урл отображается правильный ЧПУ, но если скопировать этот урл и открыть на новой странице или даже на той же, то "Запрашиваемая страница не найдена". Если поставить ЧПУ: Default, то все работает хорошо. Готов оплатить работу по исправлению этой проблемы!
  9. Спасибо большое за разъяснение, теперь все стало понятно. В итоге сделал отдельную функцию, в ней указал роут по умолчанию common/home и все модули загрузились.
  10. А почему тогда без 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?
  11. Всем привет, пытаюсь сделать ленивую загрузку модулей в 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); то каждый раз у меня возвращается пустой массив. В этом собственно и проблема. Не могу понять почему он пустой.
  12. Всем привет! Столкнулся с проблемой дублей страниц, решить ее не смог. Кто поможет убрать дубли, что бы они не попадали в индексацию? Вкратце о строении сайта Есть Бренды (это категории) Есть Категории (это тоже категории и подкатегории) Одна и та же карточка товара отображается по следующим 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 (сайт/категории/категория/подкатегория/карточка) Ну я так понимаю можно еще комбинации придумать) Все варианты попадают в индекс и в вебмастере эти страницы постоянно удаляются с пометкой дубль.А затем снова попадают и снова удаляются.
  13. 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) Защиту от спама не делал, во-первых не знаю как, а во-вторых на моем проекте она не нужна, спама нет) А вот с file_get_contents , тут да. Я долго не мог поймать пост запрос и в итоге это единственное решение которое сработало. Был бы признателен если бы указали как правильнее его поймать. Я так понимаю что надо начать со строк: if ($this->request->server['REQUEST_METHOD'] == 'POST') { } но как тут правильно все сделать не понимаю, у меня ничего не получилось
  14. Если долго мучиться, то что-нибудь получится. В итоге все сделал. Может кому понадобится, оставлю код здесь. Надеюсь кто-нибудь опытный поправит кои косяки и недоработки. В общем повторю еще раз смысл: В шапке магазина размещена ссылка, нажав на которую появляется модальное окошко 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(); } } Уверен, что можно было бы где-то что-то упростить, но вариант рабочий. Буду рад услышать критику.
  15. Добрый день коллеги, помогите разобраться. Придумал себе задачу, сделать 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 данные и произвожу отправку?
  16. Да все понятно и ясно, с человеком в живую встречался, долго общался, ну , в общем , урок на будущее )
  17. Добрый день, выполнил работу на которую потратил 2 недели, заказчик работу не оплатил, поменял все пароли, на связь не выходит. Классика( Есть данные для подключения к БД (имя БД, логин, пароль) их не меняли это 100%. Опенкарт 2.3. Есть шансы как-то зайти в БД и удалить ее? Зайти в phpmyadmin напрямую нельзя (хостинг дает возможность зайти в PMA только через панель). Всю структуру сайта знаю (есть полная копия на локальном сервере).
  18. Добрый день! Opencart 2.3 Установлен модуль корзины Simple Необходимо доработать корзину и внести следующие изменения: Вкратце: Добавить столбик "скидка", который будет появляться при определенных условиях Сделать правила для столбца "скидка" по которым там будет отображаться сумма с учетом скидки или % скидки. Полное ТЗ: Техническое задание: 1) Необходимо задать правило: Если (клиент залогинен) или (один из товаров в корзине имеет акцию) или (активирован купон), то: [появляется колонка "Скидка"], которая будет располагаться между "Ценой" и "Итого". в остальных случаях этой колонки нет. 2) Необходимо задать правило к первой колонке (Цена): В любом случае если на товар есть акция, то в колонке Цена указывается обычная цена без учета акции. 3) В колонке (скидки) будут отображаться все варианты скидок. Правило: (не учитывая правила появления этой колонки описанное выше. Нижеследующие правила применяются только если сработало одно из условия для) Если (клиент залогинен), то: показывает процентный размер скидки и указывется слово "Накопительная" (http://joxi.ru/BA0bWaMtB7BJPm). Еще Если (к товару применен купон), то показывает процентный размер скидки и указывется "код купона" (http://joxi.ru/8238Kgbt6j6nxA), Еще Если (товар имеет акцию), то показывается процентный размер скидки и указывается "Акция" (http://joxi.ru/a2XYG7xcy5y4DA) В остальных случаях - прочерк. Есть идеи у кого-нибудь как все это реализовать? И какая будет стоимость работ...
  19. Проблема была решена путем отключения модуля Storage Cleaner. @chukcha Спасибо за помощь!)
  20. Стоит такой вот чистильщик https://github.com/p0v1n0m/opencart_storage_cleaner
  21. Столкнулся с такой же проблемой на OC2.3 Папка с image/cache/products разрастается на глазах, как только достигает больше 600 кэшированых изображений, админка сайта начинает дико тормозить. При этом сам сайт загружается нормально. При работе в админке, удаляю кэш вручную каждые 15-30 минут. Это ведь не нормально? Сейчас вот смотрю 13 118 файлов в image/cache/products и количество ежеминутно растет. (2,5 тысячи товаров). Посоветуйте что можно проверить? поправить? То есть повторюсь, сам сайт работает хорошо, отклик отличный, но вот в админке работать невозможно.
  22. Добрый день! Если ошибся разделом форума, то прошу подправить. Есть проект на 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) В просмотре заказа добавить кнопку "Оставить отзыв" , нажав на которую открывается форма для отправки сообщения в которой подхватывается, имя, номер заказа. В форме стоит текст с просьбой оставить отзыв. Текст формы можно менять перед отправкой. Все пункты перечислены тезисно, полное задание предоставлю всем кто будет заинтересован в проекте. Спасибо! Жду вопросов, уточнений и предложений по работе.
  23. То что отвалятся модули конечно не устроит Спасибо за ответ! Разжевали, теперь понял...

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.