Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • entries
    15
  • comments
    86
  • views
    18,127

Entries in this blog

Автоматическая пакетная генерация изображений по очереди: связываем JSON, PHP и Gemini Flash Image

Когда нужно сгенерировать большую партию графики (например, десятки баннеров под разные ниши и соотношения сторон), ручной запуск каждого промта это трата времени. Гораздо эффективнее построить мини-конвейер: выгрузить все запросы в JSON-файл и запустить самоочищающуюся очередь на PHP, которая будет последовательно отправлять задачи в модель gemini-3.1-flash-image, сохранять результат на диск и обновлять страницу до тех пор, пока работа не завершится. В этой статье разберем, как спроектиров

kJlukOo

kJlukOo in плюшки

OCMOD Helper для Sublime

написал плагин под саблайм, который упрощает разработку модификаторов позволяет генерировать модификаторы через контекстное меню     в буфер обмена попадает такой код   <file path="catalog/controller/product/category.php">     <operation>         <search><![CDATA[$this->load->model('tool/image');]]></search>         <add position="after"><![CDATA[                      ]]></add>     </operation> </fil

kJlukOo

kJlukOo in плюшки

бесконечная прокрутка octemplates

в свежих версиях шаблонов функция бесконечной прокрутки в категориях уже есть на старых версиях такой функции нет обновление темы на работающем магазине может быть рискованным тк есть шанс, что что-то пойдет не так этот скрипт можно добавить в кастомные скрипты вашей темы (последний пункт меню в настройках темы) так вы безопасно получите функционал бесконечной ленты товаров кстати, мой скрипт использует таймаут в секундах это снижает нагрузку на сервер и при этом позволяет пользов

kJlukOo

kJlukOo in плюшки

Получаем корректную цену товара

Дело в том, что на многих магазинах стоит модификатор расширяющий знаки для опций = * и тд конечно есть и другие решения, которые влияют на ценообразование и встречаются гораздо реже эти модификаторы меняет логику формирования цены в либе system/library/cart/cart.php поэтому кратчайший способ получить верную цену это: добавить товар в корзину получить о нем инфу удалить из корзины   я это делаю как-то так function get_cart_prod($product_id, $qu

kJlukOo

kJlukOo in плюшки

сортируем значения ocfilter

По умолчанию фильтр сортирует подобные значение "до 2 м" > "до 1000 м" как строки Проблема возникает из-за того, sql запрос "до 2м" + 0 возвращает 0   Задача найти блоки фильтра в которых все значения содержат числа и отсортировать их в правильном порядке Написал скрипт, который находит фильтры имеющие только числовые значения и проставляет им необходимую сортировку  Перед тестирование скрипта делайте бекап таблицы oc_ocfilter_filter_value   function sort_ocfi

kJlukOo

kJlukOo in обсуждение

унифицируем thumb как в опенкарт 4

на одном из проектов мини карточка товара формируется и выводится в  категории, поиске, акциях, производителе, модулях окдевизарда и тд сверху на это ложатся всякие модификаторы для опций в категории тд   в фигме мы видим, что все карточки товара везде выглядят одинаково а значит момент формирования и вывода желательно унифицировать   формируем новый контроллер на основе модифицированного контроллера категории. тк в этот контроллер попали все необходимые модифи

kJlukOo

kJlukOo in плюшки

долго грузится сайт на opencart

Причин может быть масса от конфига сервера, до тяжелых запросов к бд, проблемы с dns, cdn и тд Возьмем то случай, когда ваш VPS имеет много ресурсов и настроен серьезным специалистом, а  значит проблема на стороне опенкарта и плагинов, которые были установлены   Обычно первым делом включают лог тяжелых запросов. Опенкарт в момент создания таблицы выбирает тип таблиц ENGINE=MyISAM. Этот тип может блокировать таблицы, именно поэтому в логе можно встретить простейшие запросы выполняю

kJlukOo

kJlukOo in ttfb

Обновление страницы с предварительным обновлением модификаторов

Надоело во время разработки дергать обновление модификаторов перед каждым обновлением страницы ? Я нашел в себе силы и написал решение. работает по хоткею CTRL + B на витрине сайта Единственное условие для работы модификатора - нужно быть авторизованным в админке   https://github.com/kjpower/Refresh-opencart-page-with-modif/blob/main/upload/system/refresh_page_with_modif.ocmod.xml работает на 2.3.х и 3.х   если полезно то ставь лайк и беги покупать мои дополнен

kJlukOo

kJlukOo in плюшки

выбор кол-ва в карточке товара

почему все разработчики тем оставляют выбор кол-ва в карточке товара? оптовики это нная часть от всех инет магазинов, почему бы по умолчанию не скрыть это поле господа, ваши мысли по этому поводу? кстати алло, розетка, элмир, мойо - не имеет кол-ва в карточке товара. только в корзине

kJlukOo

kJlukOo in обсуждение

исчерпываем вопрос о кэше

привет форумчане. статья может быть полезна для начинающих разрабов и тех, кто недавно столкнулся с опенкартом штатный кэш опенкарта 1. ocmod обновляется в админке. меню слева - расширения - модификаторы. обновить можно следующим образом   рекомендации: когда сайту плохо и вы получаете 404 можно сделать очистку всех модификаторов - нажав на желтую кнопку с ластиком, чтобы убедиться, что дело не в них в бд в таблице oc_modification колонка xml легк

kJlukOo

kJlukOo in cache

программное обновление модификаторов

при работе с опенкартом всегда возникает необходимость обновлять модифы, после ряда совершенных правок. делается это для того, чтобы получить актуальный контент давным давно я решил этот вопрос программно, что избавило меня от кучи головной боли в виде открытия вкладки и нажатия кнопки обновления модифов раз за разом я решил этот вопрос программно следующим образом. пришло время делиться   1. авторизация по ссылке  быстрая авторизация в админке по ссылке.  

kJlukOo

kJlukOo in плюшки

кастомный getProducts для категории

catalog/model/catalog/product.php метод getProducts имеет следующий цикл foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } те на каждый товар категории у нас создается отдельный запрос с кучей условий. как избавится от порождения кучи новых запросов? получить все в одном запросе. без цикличного вызова метода getProduct foreach ($query->rows as $result) { $product_data[$result['product_id']] = $re

kJlukOo

kJlukOo in ttfb

redis cache opencart

недавно увидел что на официальном сайте продается драйвер под редис. ссылку прикладывать не буду а вот тот самый редис, который уже давно есть на гитхабе (с 6 июля 2017 года) https://github.com/opencart/opencart/blob/master/upload/system/library/cache/redis.php   как кеш опенкарта делегировать редису? чтобы заставить работать редис на своем сервере необходимо    1. установить редис и добавить его в список автозагрузки, установить php модуль для редиса . для раз

kJlukOo

kJlukOo

коробочный cache

использовать родной кеш можно следующим образом $this->cache->get($key); $this->cache->set($key); $this->cache->delete($key); настройки родного кеша хранятся тут system/config/default.php по умолчанию в ocstore 2.3 кеш файловый, который живет один час $_['cache_type'] = 'file'; // apc, file or mem $_['cache_expire'] = 3600;   file       - файловый кеш (значения хранятся в файлах). ссдшник кстати поди ускоряет работу этого кеша mem 

kJlukOo

kJlukOo

отложенная модалка на джсе

var delay_sec = 10 * 60; // 10 min function init_delayed_modal() { var first_visit_time = get_cookie('first_visit_time'); var current_time = new Date().getTime() / 1000; var time_passed; if(first_visit_time == undefined) { // first time visit create_cookie('first_visit_time', current_time); setTimeout(show_modal,delay_sec * 1000); } else { // two and more time visit time_passed = current_time - first_visit_time; //if time left if(time_passed>delay_sec) show_modal(

kJlukOo

kJlukOo

  • Recently Browsing   0 members

    • No registered users viewing this page.
Guest
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.