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

SooR

Пользователи
  • Публикаций

    724
  • Зарегистрирован

  • Посещение

Репутация

166 Очень хороший

Информация о SooR

  • Звание
    Продвинутый пользователь
  • День рождения 19.06.1988

Контакты

  • Сайт
    http://ocfilter.com/
  • Skype
    ocfilter

Информация

  • Пол
    Мужчина
  • Город:
    Одесса

Посетители профиля

17 824 просмотра профиля
  1. @Tinyled , сделайте по аналогии со вторым вариантом, должно ускорить ваш запрос.
  2. @Tinyled , раз, два. Учитесь (хотя бы на SO). P.S. без подзапроса не обойтись.
  3. @so0EmFD190 , у вас старая версия модуля, либо новая, но старый шаблон (который еще содержит в себе ссылки на фильтры). Нужно смотреть по доступам (в ЛС).
  4. @so0EmFD190 , здравствуйте. Что выводится по этим ссылкам? Если не 404 или редирект - надо смотреть.
  5. @mario512 , здравствуйте. Могу подключить по ftp.
  6. SooR

    Определите CMS...

    OpenCart на базе прекрасного (на мой взгляд) макета Electro - Electronics eCommerce
  7. @Dmitriy614 , возможно залили слишком большое изображение для товара. Измените название его изображения по ftp и проверьте.
  8. @tenderataras , по всей видимости, в параметрах пагинации они учитывают только свои ссылки + те, что идут в стандартном opencart (sort, order, limit, path..) А должны были предусмотреть еще и другие параметры, любые другие! Это делается элементарно, перебирая массив $this->request->get. Фильтр не обязан работать с "левой" пагинацией, потому что пагинация должна учитывать текущую ссылку на страницу и исходя из этого генерировать ссылки на другие страницы. Элементарно же: $url = rawurldecode(http_build_query(array_diff_key($this->request->get, array('page' => false, 'route' => false, '_route_' => false, /* anything else? */)))); .... $pagination->url = $this->url->link('product/category', $url . '&page={page}'); .... Вот так можно сделать учет всех нужных GET параметров ссылки на страницы пагинации, так нет же, писаки пагинаторов почему-то тупо копируют то что в стандартном opencart и добавляют параметры своих модулей, игнорируя параметры других.
  9. @Qwertty777 , а почему вы не пишете мне в личные сообщения, если вам так нужна помощь? @splka , делайте числовые атрибуты и будет вам фильтр по слайдеру. @tenderataras , у вас нестандартная пагинация, её изменили разработчики темы, либо вы установили отдельно модуль пагинации.
  10. Пока не проверял, по теории: задача не стоит свеч. Процедуры требуют свои привилегии, а от временных таблиц я недавно отказался, т.к. их конфигурация в разных окружениях, движках и платформах сильно отличается (в основном по выделяемому объему данных и их типу). Лучше создать одну постоянную буферную табличку с префиксом temp_* и использовать под свои нужды. Ну и, повторюсь, весь азарт как раз в том, чтобы сделать это одним запросом :)
  11. @100napb , вроде бы как и работает, но лочит всю базу, запрос на i5 7600k выполнился за 36,735 sec.
  12. @elanda , добрый день. Уточните ваш вопрос.
  13. @Qwertty777 , здравствуйте. Копируются опции с остатком > 0, проверьте это в товарах. Если не пользуетесь количеством товаров для опций, то нужно изменить логику копирования опций, убрав это условие в коде.
  14. SooR

    Inline

    @susha , их добавляет bootstrap.css при появлении модального окна (компенсация области прокрутки). В нормальных условиях дискомфорта не должно быть, если наблюдаете "дерганье" - что-то неправильно сверстано.
  15. Если нужно брать товары небольшими партиями, то можно обойтись и простым GROUP_CONCAT + PHP разбор SELECT SUBSTRING_INDEX(GROUP_CONCAT(p.product_id ORDER BY p.product_id DESC SEPARATOR ','), ',', 15) AS products, /* 15 = лимит на категорию */ p2c.category_id FROM product p LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE DATE(p.date_added) > "' . $this->db->escape(date('Y-m-d', strtotime('-60 day'))) . '" /* Чтобы кешировался */ GROUP BY p2c.category_id ORDER BY p.date_added DESC затем перебираем php циклом получившийся результат и выбираем уже отдельно товары по их product_id $product_data = array(); foreach ($query->rows as $result) { $product_data[$result['category_id']] = array( 'category' => ... , 'products' => array(), ); foreach (explode(',', $result['products']) as $product_id) { $product_data[$result['category_id']]['products'][] = $this->model_catalog_product->getProduct($product_id); } } Дополнительно можно: - итоговые массивы кешировать в общий системный кеш - дополнить запрос другими фильтрами по товарам либо категориям - дополнить выдачу другими данными из товаров, добавив CONCAT(p.product_id, ':', p.date_added .... ) и так далее. P.S. На шареде 90к товаров и около 300 категорий запрос выполняется за 0.78 - 0.125s
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.