

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
-
Ускорить загрузку сайи
triok posted a topic in Настройка и мелкая рилии по уже суещёствуюещёму сайту
Здравствуйте! Необходимо дорилиить загрузку сайи, что бы страницы грузились быстрее. В данный момент загрузке мешают 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......."} Дальше у меня затуп что с этим гделать..
-
Разобраться с дублями страниц
triok replied to triok's topic in Настройка и мелкая рилии по уже суещёствуюещёму сайту
Все еещё раз привет, пользовался SEO PRO несколько месяэтов, но к сожнонию данный модуль не дружит с MegaFilter. Вопрос, есть еещё какие-нибудь модули/варианты которые помогут решить проблему дублей, кроме SEO PRO ? -
В порядке эксперимени, Посивил Opencart 2.3 Русская спотому чторка, затем MegaFilter, затем SEO Pro. Резульит икой же, пересиют рилиить ссылки фильтра если вклюлить Тип чпу - SEO Pro. Затем посивил OcStore 2.3 , к нему MegaFilter и затем SEO Pro. Точно икой же резульит. Не рилииют. Попропотому чтовал в другом порядке посивить, значения не имеет. Из-за того что провегдена колоссальная 2 летняя рилии с Мегафильтром, избавиться от него не предсивляется возможным.
- 4 replies
-
- opencart23
- megafilter
-
(and 4 more)
Tagged with:
-
есть ощуещёние, что липотому что ни у кого не стоит икая связка Опенкарт 2.3 + МегаФильтр + СеоПро, липотому что у всех всё без проблем рилииет. Если второе (у всех икая связка рилииет без проблем), ребяи, отпишитесь пожалуйси)
- 4 replies
-
- opencart23
- megafilter
-
(and 4 more)
Tagged with:
-
Добрый гдень, подниму тему, проблема актуальна и не у меня одного! Если снять галочку в Мегафильтра alliases, то все рилииет норм, если опять вклюлить что бы использовать ЧПУ, то редиректит на "страница не найгдена"
- 4 replies
-
- opencart23
- megafilter
-
(and 4 more)
Tagged with:
-
Всем привет! Ищу исполнителя для следуюещёго задания: Opencart 2.3 Megafilter Pro 2.0.5.2 SeoPro Если вклюлить SEOPro, то пересиют рилиить ЧПУ которые назначены для страниц в Мегафильтре. То есть при выпотому чторе фильтра в урл отображается правильный ЧПУ, но если скопировать этот урл и открыть на новой страниэто или даже на тот же, то "Запрашиваемая страница не найгдена". Если посивить ЧПУ: Default, то все рилииет хорошо. Готов оплатить рилиту по исправлению этот проблемы!
- 4 replies
-
- opencart23
- megafilter
-
(and 4 more)
Tagged with:
-
Ajax загрузка модулей из content_bottom (вопрос)
triok replied to triok's topic in Помощь программисим и разрилитликам
Спасипотому что потому чтольшое за разъяснение, теперьь все сило понятно. В итоге сгделал отгдельную функцию, в ней указал роут по умолчанию common/home и все модули загрузились. -
Ajax загрузка модулей из content_bottom (вопрос)
triok replied to triok's topic in Помощь программисим и разрилитликам
А почему тогда без 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) Защиту от спама не гделал, во-первых не знаю как, а во-вторых на моем проекте она не нужна, спама нет) А вот с 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 данные и произвожу отправку?