-
Публікації
1 508 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем SooR
-
-
Заменяем все внешние ссылки в тексте на свои с возможностью переброса на страницу редиректа
Допустим, наш домен myshop.com
$description = html_entity_decode($information_info['description'], ENT_QUOTES, 'UTF-8'); $description = preg_replace_callback('/((http|https):\/\/(?!myshop\.com)[\w\.\/\-=?&#]+)/', function($matches) { return $this->url->link('common/redirect', 'url=' . base64_encode($matches[0])); }, str_replace('&', '&', $description));
а common/redirect.php примерно такой:
<?php class ControllerCommonRedirect extends Controller { public function index() { if (!empty($this->request->get['url'])) { $this->response->redirect(base64_decode(rawurldecode($this->request->get['url'])), '302'); } } }
-
Указать [alt] для тега <img .. /> в каком-то html.
При желании, можно расширить способности этой функции до указания конкретному изображению свой alt.
public function setImgAlt($html, $alt) { $doc = new DOMDocument(); $doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $tags = $doc->getElementsByTagName('img'); foreach ($tags as $key => $tag) { if (!$tag->hasAttribute('alt') || empty($tag->getAttribute('alt'))) { if ($key > 0) { $alt .= '-' . $key; } $tag->setAttribute('alt', $alt); } } return $doc->saveHTML($doc->documentElement) . PHP_EOL . PHP_EOL; } $description = setImgAlt($description, 'Картинка не загрузилась, но у нас есть Alt!');
-
Helper для определения активности окна (вкладки) браузера
var isWinFocus = true; $(window).on('blur focus', e => isWinFocus = (e.type == 'focus'));
Предотвращаем закрытие BS Dropdown на элементах с соотв. классом
$(document).on('click', '.dropdown .dropdown-prevent', e => e.preventDefault());
Второй вариант
$(document).on('click', '.dropdown-menu .dropdown-prevent', function(e) { $(this).closest('.dropdown').one('hide.bs.dropdown', e => false); });
Когда нужно открыть модальное окно из уже открытого окна и при закрытии второго окна открыть первое. Такое требуется, например, когда во всплывающей форме регистрации нам нужно открыть окно с текстом соглашения, а после закрытия восстановить окно с формой
$('.modal [data-toggle="modal"]').on('click', function(e) { e.preventDefault(); var $target = $(this), $oldModal = $target.closest('.modal'), $newModal = $($target.data().target || $target.attr('href')); if ($newModal.length > 0) { $oldModal.modal('hide').one('hidden.bs.modal', function() { $newModal.data('old-modal', $oldModal.attr('id')).modal('show').one('hidden.bs.modal', function(e) { $('#' + $(this).data('old-modal')).modal('show'); }); }); } });
Простейший загрузчик css/js. Полезен в случаях использования ресурсов по требованию.
function loadResource(files, callback) { if (!$.isArray(files)) { files = [files]; } var file = files.shift(); if ('.css' == file.slice(-4)) { $('head').append('<link rel="stylesheet" type="text/css" href="catalog/view/' + file + '" />'); if (files.length > 0) { loadResource(files, callback); } else { callback && callback(); } } else { $.ajax({ url: 'catalog/view/' + file, type: 'GET', dataType: 'script', cache: true, success: function(script) { if (files.length > 0) { loadResource(files, callback); } else { callback && callback(); } } }); } } loadResource([ 'javascript/summernote/summernote.css', 'javascript/summernote/summernote.min.js', 'javascript/summernote/lang/summernote-ru-RU.js' ], function() { console.info('Summernote is ready to use'); });
-
1 минуту назад, dimanov911 сказал:
Еще есть проблема: Так как фильтры на лету не подхватываются, то, после обновления каталога товаров, необходимо копирование фильтров запускать вручную. Это не страшно. Но вот что заметил, что после нескольких таких копирований размер таблицы oc_ocfilter_option_value_to_product возрастает в несколько раз, у меня он уже 200 МБ
Думаю это не очень хорошо сказывается на быстродействии сайта.
Вы не загрузили обновление из папки UPDATE.
- Удалите модификатор модуля в модификаторах.
- Очистите и обновите модификаторы
- Загрузите обновление из UPDATE
- Очистите и обновите модификаторы
-
Только что, dimanov911 сказал:
А как об этом должен догадаться посетитель сайта интересно ?:)
Интуитивно)
Я подумаю, что можно сделать в будущих версиях.
Как вариант - не убирать кнопку, пока курсор находится в области всего блока фильтров.
- 1
-
@Nikky Добрый.
Посадочные страницы нужны для продвижения низкочастотных запросов на выбранную группу товаров.
Например, вы можете создать страницу для списка товаров с заголовком "Кроссовки Nike с белыми шнурками на большую ногу", при этом указав странице параметры фильтра:
nike/shnurki/belye/razmer/46
Также можно указать SEO текст и заголовок страницы (H1).
-
5 часов назад, dimanov911 сказал:
Добрый день!
Новая версия фильтра 4.7.4 небо и земля по сравнению с 4.19, НО
Вот скажите у всех так? При фильтровании по кнопке, выбираем необходимые параметры, соответственно всплывает кнопка "Показать N товаров", и если ее не нажать, то через некоторое время она исчезает и применить выбранные условия для фильтрации уже невозможно.
Мне кажется нужна еще кнопка "Показать" или "Применить фильтры" в самом низу блока фильтров....
Здравствуйте.
Кнопка появляется снова, если навести на значение, которое было выбрано.
-
@MFX , вы можете протестировать модуль, оценить его работу на вашем объеме данных, после чего оплатить и отписать здесь все как есть.
-
-
Спросите у любого SEO'шника. Описание категории выводится только на первой странице категории, без выбранных параметров сортировки и/или фильтрации.
-
@lerand описание категории не должно выводиться на странице выбранных фильтров.
-
@lerand уточните, где пропали? На странице выбранных фильтров, или на главной категории?
-
Здравствуйте. Хороший вопрос.
Открываем
catalog/controller/product/category.php
для OpenCart 2 перед
$data['continue'] = $this->url->link('common/home');
добавляем
if (!trim(strip_tags($data['description']))) { $data['thumb'] = ''; }
Очищаем и обновляем модификаторы.
для OpenCart 1.5.* перед
$this->data['continue'] = $this->url->link('common/home');
добавляем
if (!trim(strip_tags($this->data['description']))) { $this->data['thumb'] = ''; }
-
Здравствуйте. Первоисточник ссылки какой? На демке могут быть с этим проблемы.
-
@EDemenko ожидайте, смотрю по вашим доступам..
-
@EDemenko разрешите посмотреть админку сайта (в ЛС).
-
В 27.11.2017 в 13:25, den727 сказал:
Доброго дня! Вопрос следующий:
"Укажите лимит количества значений, которые будут выводиться в модуле фильтра товаров для каждой опции. Чтобы выводить все значения, укажите 0."
Минимальное - 0, при этом он раскрывает все значения закреплённые за атрибутом. При значении 1 - он отображает одно значение, при 2- два значения и тд. Мне нужно, что бы он вообще их не отображал, что бы была только кнопка, кликнув на которую раскрываются все. Подскажите пожалуйста, какую часть кода необходимо исправить?
Может проще вам использовать выпадающие списки?
"Поместить в выпадающий список" есть такая настройка.
-
@mmmtrade какая версия модуля, opencart, ссылку? Что еще установлено и т.д.
-
@evex Писал когда-то на заказ одному человеку с форума, так он и остался висеть на демке.
-
Спойлер
SELECT p.sku, p.model, pd.name, GROUP_CONCAT(cd.name ORDER BY cd.category_id SEPARATOR ', ') AS category, p.price, p.quantity FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) LEFT JOIN category_description cd ON (p2c.category_id = cd.category_id) GROUP BY p.product_id
-
19 часов назад, svi00 сказал:
Всем добрый вечер.
Всё никак не научусь пользоваться данным модулем или в целом Опенкарт магазином.
Опытные пользователи!!! Подскажите пжл:
1. Как правильно заполнять атрибуты в товаре, чтобы OCFilter правильно копировал значения для своего фильтра?
В моём магазине есть атрибуты, которые имеют несколько значений. Пример: Материнка - поддерживает разные процессоры.
При заполнении атрибутов вручную - в фильтре ошибочно часто добавляются несколько одинаковых значений по смыслу (всякие ошибки в орфографии, пробелы и т.д.).
2. Возможно есть доп модуль, который поможет решить первый вопрос? Чтобы при оформлении видно было значения от данного атрибута и легче-проще было их добавлять, несколько значений подряд через разделительный знак - как требует этого OCFilter.
Заранее благодарен за поддержку.
Здравствуйте. Вы используете мультиатрибуты? Модуль это поддерживает.
По поводу форматирования текста атрибута от лишних пробелов и т.д., в последней версии модуля на 2.х это тоже реализовано.
-
12 часов назад, slydeev сказал:
Доброго всем! В новой версии у seo страниц если делаю параметры например material-/poliuretan, то в других категориях не фильтрует а страница 404 и адрес как у посадочной страницы.
Исправлено в обновлении.
- 1
-
3 часа назад, 20strannik08 сказал:
Здравствуйте! Вопрос, а где в каких файлах можно поправить стили у вашего модуля фильтра? что то рылся в css так и не нашел где поменять белый фон, а так же убрать разметку модуля и т.д.
Здравствуйте. Стили модуля находятся в
catalog/view/theme/default/stylesheet/ocfilter/ocfilter.css
если ваш шаблон не использует свои стили для фильтра.
-
@KomissarJuve может съехать стиль фильтра от unishop. Написал автору об обновлении.
Файлы движка затрагиваются модификаторами.
Помогите исправить ошибку: ......www/system/database/mysql.php on line 50
в Допомога програмістам та розробникам
Опубліковано:
Если вы знаете где находится этот запрос, то попробуйте заменить в нём
ORDER BY name
на
ORDER BY md.name
Если не знаете где, то посмотрите в catalog/model/catalog/manufacturer.php