Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

triok

Новичок
  
  • Posts

    26
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

triok's Achievements

Explorer

Explorer (4/14)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  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 данные и произвожу отправку?
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.