Денис Старовойтов


Денис Старовойтов

  • Денис Старовойтов Денис Старовойтов 6 ноября 2013 04:42 #
    В принципе ещё можно создать новое приложение назвать его myShop, скинуть в данную папку содержимое приложения папки шопскрипта, заменить название приложения в файлах (в названиях классов) при помощи Find&Replace. И выпускать для него свои обновления перехватывая и переписывая обновления шопскрипта :-)

    в ответ на Применение эвента products_collection

  • Денис Старовойтов Денис Старовойтов 24 октября 2013 11:29 #
    Этот вопрос висит уже больше месяца, полностью вопрос звучит так:

    --------------------------------------

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

    В общем то не большая проблема..

    При SQL-запросе товара в SELECT добавляем поле ", IF(p.count = 0, 0,1) AS count_binary",
    а в ORDER BY добавляем " count_binary DESC ," и после этого уже остальные поля сортировки.

    Но вот возникает вопрос как это сделать плагином, не трогая системных
    классов и модулей?

    В плагине я цепляюсь к событию "frontend_category", но ведь в тот
    момент когда плагин включается в работу (я имею ввиду при обработке
    экшена "shopFrontendCategory.action.php") запрос товара уже
    сформирован и что хуже того выполнен....

    В принципе, я могу в своем плагине заново собрать и выполнить этот
    запрос только уже как мне надо, а потом просто заново отправить результат в смарти-переменную:

    $this->view->assign('products', $products);
    $this->view->assign('products_count', $count);

    И вроде бы всё будет хорошо и правильно, но ведь SQL-запрос (И не
    один!!) выполниться дважды! Сначала системный потом мой. Нагрузка то
    на сервер от этого возрастет чуть не в два раза!

    Подскажите есть какой-то способ о котором я не подумал? Чтобы плагин
    был полноценным и самодостаточным?
    --------------------------------------

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

    В техподдержке ответили:
    "Для задания дополнительных параметров формирования SQL-запроса для выборки товаров используйте хук products_collection. Пример реализации можно посмотреть в исходном коде плагина "Избранные товары"

    Понятно, что я в лице заказчика - неуч не читающий документацию. Я сам так подумал. А начав работы с "products_collection" оказалось, что он не подходит для этой задачи. Если всетаки мне не ответят на поставленный вопрос положительно.

    Мне нужен, официальный ответ, что "да! плагинами данная задача не решается в принципе", "нет. есть ещё один обиван..."


    Дело ведь даже не в этой задаче конкретно - МНЕ НУЖНО МОДИФИЦИРОВАТЬ SQL-ЗАПРОС ТОВАРОВ В КАТЕГОРИИ!!! НУЖНО И ВСЁ! ДЛЯ ОПТИМИЗАЦИИ,ДЛЯ ДОПОЛНЕНИЙ, ДЛЯ ЧЕГО УГОДНО!

    в ответ на Применение эвента products_collection