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

triok

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

    26
  • З нами

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

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

triok's Achievements

Explorer

Explorer (4/14)

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

Recent Badges

0

Репутація

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

Important Information

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