Лидеры
Популярный контент
Показан контент с высокой репутацией за 06.10.2024 в Сообщения
-
67к товаров, 26к связей в hpmodel_links, 2.5к отзывов, вызов getProduct() занимает около 70мс и если на странице в модулях набирается больше 10 товаров получается довольно большая задержка. Удалось ускорить работу метода в 10-15 раз заменив 2 подзапроса к review на один и немного оптимизировав его: --- z_hpm14.ocmod.xml~070725 2025-02-12 14:38:04.067381375 +0300 +++ z_hpm14.ocmod.xml 2025-07-07 08:51:32.842664104 +0300 @@ -169,11 +169,15 @@ </operation> <operation error="skip"> <search index="0"><![CDATA[(SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating]]></search> - <add position="replace"><![CDATA[(SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 LEFT JOIN " . DB_PREFIX . "hpmodel_links hpl ON (r1.product_id = hpl.product_id OR r1.product_id = hpl.parent_id) WHERE (" . ($parent_id !== false ? "hpl.parent_id = '" . (int)$parent_id . "'" : "r1.product_id = p.product_id") . ") AND r1.status = '1' GROUP BY " . ($parent_id !== false ? "hpl.parent_id" : "r1.product_id") . ") AS rating]]></add> + <add position="replace"><![CDATA[(SELECT CONCAT(AVG(rating),';',COUNT(review_id)) FROM " . DB_PREFIX . "review r1" . ($parent_id !== false ? " LEFT JOIN " . DB_PREFIX . "hpmodel_links hpl ON (r1.product_id = hpl.product_id)" : "") . " WHERE r1.product_id = p.product_id" . ($parent_id !== false ? " OR hpl.parent_id = '" . (int)$parent_id . "'" : "") . " AND r1.status = '1' GROUP BY " . ($parent_id !== false ? "hpl.parent_id" : "r1.product_id") . ") AS rating]]></add> </operation> <operation error="skip"> <search index="0"><![CDATA[(SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews]]></search> - <add position="replace"><![CDATA[(SELECT COUNT(DISTINCT review_id) AS total FROM " . DB_PREFIX . "review r2 LEFT JOIN " . DB_PREFIX . "hpmodel_links hpl ON (r2.product_id = hpl.product_id OR r2.product_id = hpl.parent_id) WHERE (" . ($parent_id !== false ? "hpl.parent_id = '" . (int)$parent_id . "'" : "r2.product_id = p.product_id") . ") AND r2.status = '1' GROUP BY " . ($parent_id !== false ? "hpl.parent_id" : "r2.product_id") . ") AS reviews]]></add> + <add><![CDATA[NULL]]></add> + </operation> + <operation error="skip"> + <search index="0"><![CDATA[=> $query->row['reviews'] ? $query->row['reviews'] : 0,]]></search> + <add><![CDATA[=> $query->row['rating'] ? explode(';', $query->row['rating'])[1] : 0,]]></add> </operation> </file>4 балла
-
В самом начале кода контроллера ЧПУ есть пример для такой реализации: https://github.com/mpn2005/ocClub3/blob/ocClub3/upload/catalog/controller/startup/seo_url.php4 балла
-
https://github.com/mpn2005/ocClub3/commit/1300040f6ff5ccfe95a4d0c8cceb4ef36a892791 если в искомой фразе есть хотя бы одна-две цифры, что нередко бывает в емейлах, то находит сотни, тысячи лишних покупателей, где в номере телефона есть такая цифра. можно не искать по телефону, если в искомой фразе есть символ @. в этом случае юзер точно хочет искать только по емейлу4 балла
-
В схожей ситуации , данное решение предложил сам хостер. Сразу после RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) добавить RewriteRule ^([^?]*) index.php?_route_=$1 [B,L,QSA,UnsafeAllow3F] Ну и как вариант от меня (так же нужно проверять). # Преобразование UTM-меток от Яндекс.Товаров RewriteCond %{QUERY_STRING} utm_referrer=https%3A%2F%2Fyandex\.ru%2Fproducts(.*) RewriteRule ^(.*)$ $1?utm_source=yandex&utm_medium=products [R=301,L] Применяет UnsafeAllow3F только для трафика с Яндекс. Сохраняет UTM-метки в исходном виде Не создает дополнительных редиректов Минимально влияет на существующую логику работы сайта4 балла
-
похоже просто закэшировалось в системном кэше для его сброса подключитесь по FTP к папке storage своего магазина и в ваша_папка_storage/cache удалите все файлы начинающиеся на caсhe. (ничего другого удалять не нужно!)3 балла
-
прислал заказчик инфу, что при переходе на сайт по ссылке с Яндекс.товаров сайт отдает 403 ошибку. общение с хостером ничего не дало, начал выяснять в чем тут дело. в url добавляется utm метка utm_referrer=https://yandex.ru/products/search?text=текст на сервак естественно приходит перекодированный вариант вида https://domain/path-to-product?utm_referrer=https%3A%2F%2Fyandex.ru%2Fproducts%2Fsearch%3Ftext%3D%D1%82%D0%B5%D0%BA%D1%81%D1%82 методом проб выяснил что если заменить %3F на что-то другое, то сайт вполне работает. похоже, что обновление безопасности апача запретило использовать hex-перекодированный символ "?" в "%3F" в url. наткнулся на такое обсуждение https://stackoverflow.com/questions/78729429/403-forbidden-when-url-contains-get-with-encoded-question-mark-unsafeallow3f заменил в .htaccess строку RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] на RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA,UnsafeAllow3F] работать то работает, но интересно насколько это безопасно и есть ли другие решения, учитывая что и php'шный urlencode и js'овский encodeURIComponent по-прежнему кодируют этот символ в %3F3 балла
-
в поле ean 14 символов отведено в базе. зайдите в phpmyadmin, кликните на таблицу oc_product, далее на вкладку Структура. отредактируйте поле ean и впишите число побольше3 балла
-
Идея хорошая. Реализация не очень. Ни в коем случае нельзя заменять какие либо системные файлы. В данном случае вы могли файл назвать extension_new.twig Запаковать архив в ocmod ( tab_for_ext_oc3x.ocmod.zip ) Ну и добавить модификатор install.xml который бы просто подменил путь до шаблона <?xml version="1.0" encoding="utf-8"?> <modification> <name>Tab for Ext</name> <code>Tab for Ext</code> <version>1.0</version> <author>freeworld</author> <link>Tab for Ext</link> <file path="admin/controller/marketplace/extension.php"> <operation> <search><![CDATA[$this->response->setOutput($this->load->view('marketplace/extension', $data));]]></search> <add position="replace"><![CDATA[$this->response->setOutput($this->load->view('marketplace/extension_new', $data));]]></add> </operation> </file> </modification> Получаете безопасную установку/удаление через админку. Не затрагиваете системные файлы.3 балла
-
/system/library/language.php $this->data = array_pop($this->backup); заменить на $this->data = array_merge($this->data, array_pop($this->backup));3 балла
-
Модификатор для украшения к Новому Году. Рекомендую не забывать, что удалять их нужно, раньше чем выкидывать в мае ёлку. Установка через админку : 1. Дополнения-Установка дополнений. 2. После чего обязательно обновить кэш модификаторов (дополнения-менеджер дополнений), синяя круглая иконка справа вверху. "Новогодняя мотня от Яндекс" - выводит в шапке новогодние шарики-игрушки, при проведении по ним мышкой издаёт звуки. Тот же эффект при нажатии кнопок на клавиатуре. В мобильной версии скрыто (<div class="b-page_newyear hidden-sm hidden-xs">) NewYear2025.ocmod.zip3 балла
-
в /catalog/controller/checkout/simplecheckout_cart.php после 'model' => $product['model'], добавьте 'isbn' => $product_info['isbn'], в /catalog/view/theme/default/template/checkout/simplecheckout_cart.twig замените {{ product['model'] }} на {{ product['isbn'] }} обновить модификаторы2 балла
-
Например https://opencart.club/files/file/30-hyper-product-models-ajax-zamena-tovara-po-modelyam/ Обычно картинки это отдельные артикулы товара.2 балла
-
Приветствую, это предложил автор данного модуля, дает возможность редактировать данные непосредственно в Batch Editor Для этого в настройках модуля вкладка Связи добавьте новую и выберите таблицу hpmodel_links2 балла
-
Такие решения есть, только толку от них нет. Товары хорошо так заполнять, но вот производителей и категории лучше ручками проработать. Просто поверьте наслово)2 балла
-
если собираетесь делать магазин на Opencart - значит нужно изучить движок как минимум на уровне пользователя либо нанять кого-то, кто у вас будет этим заниматься2 балла
-
Нет, поначалу начал писать автору HYPER Multi Product Models в личку, но тот попросил писать по вопросам модуля в этот форум поддержки, на форуме, конечно, тоже тишина. Модуль HYPER Multi Product Models ложит сайт на Просторе на раз-два, в первые минуты настройки. Простор недавно обновился до версии 1.3.1, а файлы адаптации скорее всего для более ранних версий. По отзывам 22 и 23 годах для дополнения HYPER Multi Product Models была хорошая и быстрая поддержка, сейчас поддержки нет. 10 тыс руб в пролете :)2 балла
-
Да, как сказано выше, в базе данных увеличьте количество символов, к примеру до 128 байт2 балла
-
NewsBlog - неограниченное количество категорий со статьями Добавил netruxa Добавлено 04.02.2025 Категория Блоги, Новости, Статьи Просмотр файла2 балла
-
мой вопрос снимается. установлен FilterVier. для совместимости нужно установить галку fix hyper_product_models в настройках фильтра2 балла
-
Спасибо за помощь нашел у себя какой то модуль Изображений для категорий переделал и сделал модуль с выводом как баннера одно так и сделать слайдер category_banner_3.x.ocmod.zip2 балла
-
В опенкарт любой версии полно неиспользуемых полей. Берите любое , например mpn и замените в админке вывод текстового инпута на переключатель Да-Нет. <?xml version="1.0" encoding="UTF-8"?> <modification> <name>Change MPN to Yes-No and Display in Frontend</name> <code>change_mpn_to_yes_no_and_display</code> <version>1.0</version> <author>Tom</author> <link>https://www.yoursite.com</link> <file path="admin/view/template/catalog/product_form.twig"> <operation> <search><![CDATA[<input type="text" name="mpn" value="{{ mpn }}" placeholder="{{ entry_mpn }}" id="input-mpn" class="form-control"/>]]></search> <add position="replace"><![CDATA[ <select name="mpn" id="input-mpn" class="form-control"> <option value="1" {{ mpn == '1' ? 'selected' : '' }}>Да</option> <option value="0" {{ mpn == '0' ? 'selected' : '' }}>Нет</option> </select> ]]></add> </operation> </file> <file path="catalog/controller/product/product.php"> <operation> <search><![CDATA[$data['points'] = $product_info['points'];]]></search> <add position="after"><![CDATA[$data['mpn'] = $product_info['mpn'];]]></add> </operation> </file> <file path="catalog/view/theme/default/template/product/product.twig"> <operation> <search><![CDATA[{% if price %}]]></search> <add position="before"><![CDATA[ {% if mpn == '1' %} <div class="product-mpn-enabled"> <!-- Контент для активации MPN --> <p>Этот блок включен для данного товара.</p> </div> {% elseif mpn == '0' %} <div class="product-mpn-disabled"> <!-- Контент для деактивации MPN --> <p>Этот блок отключен для данного товара.</p> </div> {% endif %} ]]></add> </operation> </file> </modification> Нет возможности использовать mpn, заменяйте на любое иное существующее значение типа jan, isbn, upc, location2 балла
-
В разделе связи у Вас выбраны нужные категории-производители? Обратите внимание, что первая связка не должна пересекаться по категориям связи со второй.2 балла
-
Сделайте ПР и будет быстрее. Всё это развивается в свободное от работы время. А вы проверили актуальный код, перед написанием ишью? Странный подход, что кто-то должен перепроверять, отвечать, делать ещё и быстро.2 балла
-
только что запускали такой проект. клубная сборка последняя версия с гитхаба + unishop2 3.0.2.0 полет нормальный2 балла
-
как вариант воткнуть патч но лучше вообще не использовать встроенный в админку редактор и вносить правки в файлы либо напрямую, либо, что более правильно - через модификаторы2 балла
-
Gray Images - Unishop2GrayImages Небольшой мод для товаров в категории. Если товара нет в наличии , то его изображение становится чёрно-белым. Unishop2GrayImages.zip2 балла
-
я б не ввязывался в эти дебри с этими сеокомплитами , дешевле и проще перенести на сборку и нашими модулями расширить функционал1 балл
-
Это явно задача фильтра и посадочных страниц , а не опенкарт, который с такой логикой придётся основательно перепилить, что в итоге может привести к проблемам как в Сео так и и с другими расширениями.1 балл
-
После покупки модуля пишите в личку автору и он скинет файлы модуля1 балл
-
Файловый менеджер Scanapper Добавил q3dm0 Добавлено 05.05.2025 Категория Администрирование Просмотр файла1 балл
-
Opencart: Водяные знаки и конвертация в Webp для изображений товаров Добавил seregin-pro Добавлено 31.03.2025 Категория Прочие Решения Просмотр файла1 балл
-
Не представляю что такое "готовое решение готовить". Ставьте на демо домен. Указывайте его при оформлении покупки. Тестируйте и готовьте .1 балл
-
Можете настроить данный режим работы, прилично ускоряет, а Jet Cache сейчас устанавливать для ру домена, это выстрел себе в ногу1 балл
-
Подскажите, а как можно реализовать плоскую структуру категорий? Имеется ли модуль для сборки опенкарт клуб?1 балл
-
filterpro Добавил freelancer Добавлено 14.01.2025 Категория Фильтры, Сортировка Просмотр файла1 балл
-
еще лучше сделать это альтернативным пунктом меню, без подмены и с сохранением старого1 балл
-
1 балл
-
можете поставить Ничего не делать, а в Событиях поставить - Обнулить необновленные товары1 балл
-
Trash Category Добавил Panda58dev Добавлено 25.12.2024 Категория Администрирование Просмотр файла1 балл
-
Модуль шик блекс, маст хев. - современный API Яндекс Переводчика не работает, похоже. - На вкладе Перевода почемуто нет возможности выбора нескольких полей чтобы сразу переводить, по одному... в целом с этим можно было бы жить если бы Апи работал.1 балл
-
https://github.com/OpenCart-Club/opencart/commit/3d850029bfe3c9003c3f4f94cfef64907b727fcc целью коммита была оптимизация использования памяти из-за вложенных элементов массива backup. Но зацепило и встроенную возможность по использованию языковых переменных в родительских контроллерах. Мне кажется, что это исправление бага, разработчики модулей вполне вправе ориентироваться на механизм чистого опенкарта. по версии сборки присоединяюсь к вопросу1 балл
-
1 балл
-
ChatGPT SEO - Массовая генерация описаний с помощью нейросети для Opencart Добавил d1medrol Добавлено 30.03.2023 Категория Seo оптимизация, Карта сайта, Теги , Массовые редакторы , Встраиваемые сервисы Просмотр файла1 балл
-
DELETE FROM oc_product_attribute WHERE attribute_id IN (12, 19, 48, 49, 50, 51)1 балл
-
Привет! Не могу понять, почему не загружается/не видно файла mp4 1. Делаю модификатором так: <file path="admin/controller/common/filemanager.php"> <operation> <search> <![CDATA[$files = glob($directory . '/' . $filter_name . '*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF}', GLOB_BRACE);]]> </search> <add position="replace"> <![CDATA[$files = glob($directory . '/' . $filter_name . '*.{jpg,jpeg,png,gif,JPG,JPEG,PNG,GIF,mp4,webm}', GLOB_BRACE);]]> </add> </operation> <operation> <search> <![CDATA['jpeg',]]> </search> <add position="after"> <![CDATA[ 'mp4', 'webm', ]]> </add> </operation> <operation> <search> <![CDATA['image/jpeg',]]> </search> <add position="after"> <![CDATA[ 'video/mp4', 'video/webm', ]]> </add> </operation> </file> Пишет, что некорректный тип файла, соответственно, не загружается - http://joxi.ru/zANXMOGTwy39Zm 2. Ладно иду в Система - Настройки - Сервер Загрузить надо 3 мб, поставил, чтобы допустимо 5 2.1. Указал допустимый тип файла http://joxi.ru/brRygkGF86x94A Пишет, что файл загружен - http://joxi.ru/4AkDLkaiVlZZGr На хостинг тоже лежит - http://joxi.ru/12Mng3lH81R5VA Но почему то не отображается файлик в менеджере - http://joxi.ru/gmvD15zi0nlOdA Что не так то?1 балл
-
Файлы для скачивания в статьях Блога Unishop2 - DownloadableFilesUnishop2News Небольшой мод для Блога Unishop2, позволяющая добавить к статьям Блога файлы для скачивания. Установка : 1.Перейти в раздел Расширения - Установка расширений (Дополнения - Установка дополнений). 2.Установить модуль DownloadableFilesUnishop2News.ocmod.zip 3. Перейти в раздел Расширения - Расширения (Дополнения - Дополнения) 4. Установить модуль UniShop2 - Файлы для скачивания в статьях Блога. 5. Перейти в раздел модификаторов и обновить кеш модификаторов (синяя иконка справа вверху). Готово. При не соблюдении порядка установки, получите ошибки. Пункты не пропускать и не менять местами. Файлы предварительно должны быть загружены в админке в разделе Каталог - Файлы для скачивания. Дополнительно нужно добавить стили css для внешнего вида. В панели шаблона во вкладке "Объединение и сжатие стилей и скриптов, свои стили и скрипты, кнопки соц.сетей и прочие настройки" далее вкладка "Свои стили и скрипты" в поле CSS добавить и сохранить: .download_file .icone{float:left;font-size:35px;margin-right:15px;color:#C85755;} .download_file .link{font-size: 16px;line-height: 1.9;font-weight: 600;color: #5b5b5e;} .download_file .size{font-size: 12px;line-height: 1.2;color: #5b5b5e;} .download_file {border:1px solid #fff;padding: 5px;margin: 0px;} @media (max-width:761px){.download_file {border:1px solid #eee;}} https://prnt.sc/3jOfUhDvPzQ2 https://prnt.sc/K_Y11BjxIN4i DownloadableFilesUnishop2News.ocmod.zip1 балл
-
Быстрое редактирование - Quick_Edit_Unishop2 Небольшой модификатор, который выводит в шаблоне Unishop 2, в левом нижнем углу иконку , при клике на которую вы сможете из самого магазина попасть непосредственно в данный товар/категорию/статью/бренд в админке. Работает эта фишка исключительно для авторизованного админа. Quick_Edit_Unishop2.ocmod.zip1 балл
-
в файле .htaccess после строки RewriteBase / добавьте # Redirect www -> not www RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] # Redirect http -> https RewriteCond %{ENV:HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] первая часть редиректит с www на без www вторая - редирект протокола, если используется ssl если сертификата нет - используйте только первую часть и замените в ней https на http1 балл