Перейти к содержанию

Лидеры

  1. Tom

    Tom

    Разработчик


    • Баллы

      42

    • Постов

      282


  2. Blast

    Blast

    Разработчик


    • Баллы

      28

    • Постов

      104


  3. AlexDW

    AlexDW

    Разработчик


    • Баллы

      24

    • Постов

      615


  4. mpn2005

    mpn2005

    Разработчик


    • Баллы

      13

    • Постов

      569


Популярный контент

Показан контент с высокой репутацией за 08.08.2024 в Сообщения

  1. 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 балла
  2. В самом начале кода контроллера ЧПУ есть пример для такой реализации: https://github.com/mpn2005/ocClub3/blob/ocClub3/upload/catalog/controller/startup/seo_url.php
    4 балла
  3. https://github.com/mpn2005/ocClub3/commit/1300040f6ff5ccfe95a4d0c8cceb4ef36a892791 если в искомой фразе есть хотя бы одна-две цифры, что нередко бывает в емейлах, то находит сотни, тысячи лишних покупателей, где в номере телефона есть такая цифра. можно не искать по телефону, если в искомой фразе есть символ @. в этом случае юзер точно хочет искать только по емейлу
    4 балла
  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 балла
  5. похоже просто закэшировалось в системном кэше для его сброса подключитесь по FTP к папке storage своего магазина и в ваша_папка_storage/cache удалите все файлы начинающиеся на caсhe. (ничего другого удалять не нужно!)
    3 балла
  6. прислал заказчик инфу, что при переходе на сайт по ссылке с Яндекс.товаров сайт отдает 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 по-прежнему кодируют этот символ в %3F
    3 балла
  7. в поле ean 14 символов отведено в базе. зайдите в phpmyadmin, кликните на таблицу oc_product, далее на вкладку Структура. отредактируйте поле ean и впишите число побольше
    3 балла
  8. Идея хорошая. Реализация не очень. Ни в коем случае нельзя заменять какие либо системные файлы. В данном случае вы могли файл назвать 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 балла
  9. /system/library/language.php $this->data = array_pop($this->backup); заменить на $this->data = array_merge($this->data, array_pop($this->backup));
    3 балла
  10. Исправлено https://github.com/OpenCart-Club/opencart/commit/7784d17a2a0b8217a59ffa2b471c8fa5a7adaaed
    3 балла
  11. Модификатор для украшения к Новому Году. Рекомендую не забывать, что удалять их нужно, раньше чем выкидывать в мае ёлку. Установка через админку : 1. Дополнения-Установка дополнений. 2. После чего обязательно обновить кэш модификаторов (дополнения-менеджер дополнений), синяя круглая иконка справа вверху. "Новогодняя мотня от Яндекс" - выводит в шапке новогодние шарики-игрушки, при проведении по ним мышкой издаёт звуки. Тот же эффект при нажатии кнопок на клавиатуре. В мобильной версии скрыто (<div class="b-page_newyear hidden-sm hidden-xs">) NewYear2025.ocmod.zip
    3 балла
  12. Например https://opencart.club/files/file/30-hyper-product-models-ajax-zamena-tovara-po-modelyam/ Обычно картинки это отдельные артикулы товара.
    2 балла
  13. Приветствую, это предложил автор данного модуля, дает возможность редактировать данные непосредственно в Batch Editor Для этого в настройках модуля вкладка Связи добавьте новую и выберите таблицу hpmodel_links
    2 балла
  14. Такие решения есть, только толку от них нет. Товары хорошо так заполнять, но вот производителей и категории лучше ручками проработать. Просто поверьте наслово)
    2 балла
  15. если собираетесь делать магазин на Opencart - значит нужно изучить движок как минимум на уровне пользователя либо нанять кого-то, кто у вас будет этим заниматься
    2 балла
  16. Нет, поначалу начал писать автору HYPER Multi Product Models в личку, но тот попросил писать по вопросам модуля в этот форум поддержки, на форуме, конечно, тоже тишина. Модуль HYPER Multi Product Models ложит сайт на Просторе на раз-два, в первые минуты настройки. Простор недавно обновился до версии 1.3.1, а файлы адаптации скорее всего для более ранних версий. По отзывам 22 и 23 годах для дополнения HYPER Multi Product Models была хорошая и быстрая поддержка, сейчас поддержки нет. 10 тыс руб в пролете :)
    2 балла
  17. Да, как сказано выше, в базе данных увеличьте количество символов, к примеру до 128 байт
    2 балла
  18. NewsBlog - неограниченное количество категорий со статьями Добавил netruxa Добавлено 04.02.2025 Категория Блоги, Новости, Статьи Просмотр файла  
    2 балла
  19. мой вопрос снимается. установлен FilterVier. для совместимости нужно установить галку fix hyper_product_models в настройках фильтра
    2 балла
  20. Спасибо за помощь нашел у себя какой то модуль Изображений для категорий переделал и сделал модуль с выводом как баннера одно так и сделать слайдер category_banner_3.x.ocmod.zip
    2 балла
  21. В опенкарт любой версии полно неиспользуемых полей. Берите любое , например 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, location
    2 балла
  22. В разделе связи у Вас выбраны нужные категории-производители? Обратите внимание, что первая связка не должна пересекаться по категориям связи со второй.
    2 балла
  23. Сделайте ПР и будет быстрее. Всё это развивается в свободное от работы время. А вы проверили актуальный код, перед написанием ишью? Странный подход, что кто-то должен перепроверять, отвечать, делать ещё и быстро.
    2 балла
  24. только что запускали такой проект. клубная сборка последняя версия с гитхаба + unishop2 3.0.2.0 полет нормальный
    2 балла
  25. В тройке можно немного попроще. catalog/view/theme/default/template/product/product.twig Найти весь блок картинок {% if thumb or images %} <ul class="thumbnails"> {% if thumb %} <li><a class="thumbnail" href="{{ popup }}" title="{{ heading_title }}"><img src="{{ thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /></a></li> {% endif %} {% if images %} {% for image in images %} <li class="image-additional"><a class="thumbnail" href="{{ image.popup }}" title="{{ heading_title }}"> <img src="{{ image.thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /></a></li> {% endfor %} {% endif %} </ul> {% endif %} И заменить со списка ul-li частично на блоки col. Что то типа <div class="row thumbnails"> {% if images %} <div class="col-sm-2"> <ul class="thumbnails-list"> {% for image in images %} <li> <a class="thumbnail" href="{{ image.popup }}" title="{{ heading_title }}"> <img src="{{ image.thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" /> </a> </li> {% endfor %} </ul> </div> {% endif %} <div class="{{ images ? 'col-sm-10' : 'col-sm-12' }}"> {% if thumb %} <a class="thumbnail main-image-container" href="{{ popup }}" title="{{ heading_title }}"> <img src="{{ thumb }}" title="{{ heading_title }}" alt="{{ heading_title }}" id="main-image" /> </a> {% endif %} </div> </div> Ну и перед {{ footer }} , так например <style> .thumbnails-list {list-style: none;padding: 0;margin: 0;overflow-y: auto;} .thumbnails li {margin-bottom: 10px;} </style> <script type="text/javascript"> $(document).ready(function() { var mainImageHeight = $('.main-image-container').height(); $('.thumbnails-list').height(mainImageHeight); }); </script>
    2 балла
  26. Спросите ncv у него там много всякого, возможно уже есть решение, а возможно изобретет что-то под Вашу задачу
    2 балла
  27. Ваш текст явно показывает, что вы только начинаете разбираться с процессом разработки на OpenCart, и это нормально. Но нужно сразу отметить несколько ключевых проблем. Во-первых, структурность вашего изложения оставляет желать лучшего. Это больше похоже на поток сознания, чем на чёткий план действий. Если вы хотите, чтобы кто-то воспринял ваши идеи серьёзно, начните с того, чтобы чётко сформулировать, что именно вы пытаетесь решить. Во-вторых, подход к использованию Git у вас какой-то размазанный. Коммитить прямо в мастер — это не вариант для серьёзного проекта, особенно если в будущем планируете работать в команде. Git Flow или хотя бы простой Feature Branch Workflow — минимально необходимая схема для хоть какого-то порядка. По поводу работы с БД и предложенного вами skeema. Идея отслеживать состояние схемы данных понятна, но её реализация вызывает сомнения. Если вы уже столкнулись с проблемами миграций, возможно, стоит рассмотреть более проверенные инструменты, которые действительно работают, а не изобретать велосипед. Ваш подход к .gitignore вроде понятен, но нужно более чётко понимать, какие конкретно файлы должны быть исключены, и какие включены. Это вопрос базового знания Git, который стоит подтянуть. И по поводу CI/CD. Да, GitHub Actions — это круто, но на данный момент ваши задачи, похоже, не требуют такой сложности. Разберитесь сначала с базовыми вещами, такими как миграции БД и нормальная работа с Git, а потом уже думайте об автоматизации. Про модификаторы, хранящиеся в БД. Да, это неудобно, и вы правы, что это «жуткая матрёшка». Но это особенность OpenCart, и пока что лучше просто смириться с этим или искать сторонние решения, которые упрощают этот процесс. Ваше предложение — что-то делать вручную и контролировать это — не выдерживает критики. В общем, пока ваши идеи выглядят сырыми и не до конца продуманными. Прежде чем предлагать что-то команде или сообществу, приведите свои мысли в порядок и определитесь с основными приоритетами.
    2 балла
  28. Здравствуйте! Спасибо за поддержку в данной сборке opencart.club - фото формата .webp. Но данный формат фото не возможно закачать при создании товара через стандартный менеджер фото. Только можно указывать на фото webp, которые закачаны ранее через фтп или хостинг, что крайне неудобно. Прошу исправить данный момент. Благодарю!
    2 балла
  29. кому надо тот найдет информацию. по сути установка движка с бд и проверка всех соответствий должна вестись программистом/разработчиком, а не просто обычным пользователем который без бюджета решил запустить магазин в стиле озон2. и не надо вводить пользователей в заблуждение, что мол появилась новая версия и всё. нужно бежать и ставить её. Это вообще не тема дискуссии и дело вкуса. Если у хозяина магазина стоит версия мускула 5.7 и магазин работает как часы уже несколько лет, то вообще не вижу смысла бежать в впереди паровоза и ставить сразу новые версии пыха и мускула. Хочешь использовать новые версии пыха и мускула на новой клубной сборке, то вперед. переделывай клубную сборку под себя. И вообще что жаловаться то на сборку? Хочешь помочь с разработкой клубной сборки - вперед! Не хочешь, тогда не надо выкатывать свои претензии. Если что то тебя не устраивает в сборке, возьми и просто опиши проблемы, только не в стиле претензий, а по человечески
    2 балла
  30. как вариант воткнуть патч но лучше вообще не использовать встроенный в админку редактор и вносить правки в файлы либо напрямую, либо, что более правильно - через модификаторы
    2 балла
  31. Делал как то по просьбе. Смысл задачи был такой. Выводим в карточке товара во вкладках статьи (Каталог - Статьи). В качестве названия вкладки Заголовок статьи, ну и содержимое это Описание статьи. При чём без привязки к конкретной статье , как в примере ТС. Добавил просто чекбокс "Показать в товаре", аналог "Отображать в футере". Отмечаем чекбокс и статьи выводятся в товаре в любом количестве. Так мне кажется логичнее и удобнее. Статьи во Вкладках.ocmod.xml
    2 балла
  32. Gray Images - Unishop2GrayImages Небольшой мод для товаров в категории. Если товара нет в наличии , то его изображение становится чёрно-белым. Unishop2GrayImages.zip
    2 балла
  33. SEOVI Filter Добавил SEOVI Добавлено 14.06.2025 Категория Фильтры, Сортировка Просмотр файла  
    1 балл
  34. Зайдите в раздел Дизайн, потом в ЧПУ - там проверьте на дубли свои URL
    1 балл
  35. Можно и так. сеопро в окстор и оно давно изжило себя а в клубной сборке используется иной подход
    1 балл
  36. Opencart: Водяные знаки и конвертация в Webp для изображений товаров Добавил seregin-pro Добавлено 31.03.2025 Категория Прочие Решения Просмотр файла  
    1 балл
  37. Можете настроить данный режим работы, прилично ускоряет, а Jet Cache сейчас устанавливать для ру домена, это выстрел себе в ногу
    1 балл
  38. Small Products Editor - быстрое редактирование товаров на одной странице Добавил netruxa Добавлено 04.02.2025 Категория Администрирование Просмотр файла  
    1 балл
  39. @Yamakasi переходите по ссылке в репозиторий, кнопка Code, далее Download ZIP распаковываете и заливаете поверх установленной сборки с этого форума
    1 балл
  40. Trash Category Добавил Panda58dev Добавлено 25.12.2024 Категория Администрирование Просмотр файла  
    1 балл
  41. Видимо это подразумевает что будет использоваться и АПИ и ключи от СДЭК в любом случае. Иначе нужна собственная база данных по ПВЗ и расценкам , а она ещё и обновляемой должна быть. Просто для справки, у СДЭК есть виджет. https://www.cdek.ru/ru/integration/modules/2/
    1 балл
  42. Посмотрите в /admin/config.php, заодно еще и в корневом config.php
    1 балл
  43. Таки там надо присваивать в (если не ошибаюсь) $this->_templateData ну и название "cart_total" смени т.к. оно уже используется
    1 балл
  44. Меня уже второй год беспокоит совместимость с многими серьезными клубными (платными) шаблонами. На многих наблюдается циклический ребут на главной странице (возможно из за другой реализации работы с ЧПУ). Постоянный ребут наблюдается на броузере Mozilla Firefox ESR, и WaterFox, пока не перейдешь на какую то другую страницу отличную от главной. На Гуглоподобных вроде нормально все, хотя работа главной страницы тоже проблемная. В основном неожиданное поведение главной страницы. Фикс категорий предлагали здесь, в принципе частично работает, но том же osstore и чистом опенкарте из коробки работает как ожидается. В общем то поэтому эта сборка подходит больше для работы на самописных шаблонах, на основе стандартного. А эти все совместимости с Mysql 9 и т.д. Уходят на второй план, если не работает основное. Приходится искать решения в другом месте.
    1 балл
  45. Нет, вы ничего не упустили, это баг появившийся в результате правки предыдущего бага. Поправил его. В этот раз был менее самонадаеянным, протестировал оформление заказа в различных варианциях, вроде как проблем нет. Плюс нашел еще несколько багов и добавил возможность обновить изображение стандартной капчи по кнопке, из-за асихронности при обработке оформления заказа бывало что изображение на картинке и значение в сессии не совпадали, теперь это решается нажатием на кнопку. Благодарю за тестирование и сообщение об ошибках, найдете ещё, дайте знать. Дистрибутив перезалил.
    1 балл
  46. Думал ирония будет считана, но просчитался. Тогда другой вариант: по причине неземной красоты разработчика exopencart https://github.com/ex-url/exopencart/issues
    1 балл
  47. для восстановления прав доступа в админке подключиться к БД и выполнить запрос UPDATE `oc_user_group` SET `permission` = '{"access":["user\\/api","user\\/user","user\\/user_permission"],"modify":["user\\/api","user\\/user","user\\/user_permission"]}' WHERE `user_group_id` =1; где 1 - обычно по умолчанию группа администратора потом зайти в Настройки > Пользователи > Группы пользователей и выставить все нужные права доступа
    1 балл
  48. вместо того чтобы отфутболивать потенциальных покупателей, лучше не отключать товары, а предлагать альтернативы например через такой модуль
    1 балл
×
×
  • Создать...