В принципе ещё можно создать новое приложение назвать его myShop, скинуть в данную папку содержимое приложения папки шопскрипта, заменить название приложения в файлах (в названиях классов) при помощи Find&Replace. И выпускать для него свои обновления перехватывая и переписывая обновления шопскрипта :-)
Этот вопрос висит уже больше месяца, полностью вопрос звучит так:
--------------------------------------
Стоит вполне себе абстрактная задача, необходимо в SS5 добавить
принудительную сортировку товара в категориях во фронтенде, чтобы
товары с нулевым количеством улетали в конец списка, но при этом чтобы
товары продолжали сортироваться по наименованию, цене и прочему и прочему...
В общем то не большая проблема..
При SQL-запросе товара в SELECT добавляем поле ", IF(p.count = 0, 0,1) AS count_binary",
а в ORDER BY добавляем " count_binary DESC ," и после этого уже остальные поля сортировки.
Но вот возникает вопрос как это сделать плагином, не трогая системных
классов и модулей?
В плагине я цепляюсь к событию "frontend_category", но ведь в тот
момент когда плагин включается в работу (я имею ввиду при обработке
экшена "shopFrontendCategory.action.php") запрос товара уже
сформирован и что хуже того выполнен....
В принципе, я могу в своем плагине заново собрать и выполнить этот
запрос только уже как мне надо, а потом просто заново отправить результат в смарти-переменную:
И вроде бы всё будет хорошо и правильно, но ведь SQL-запрос (И не
один!!) выполниться дважды! Сначала системный потом мой. Нагрузка то
на сервер от этого возрастет чуть не в два раза!
Подскажите есть какой-то способ о котором я не подумал? Чтобы плагин
был полноценным и самодостаточным?
--------------------------------------
Я его задавал и на форуме, и по почте, но везде сплошной игнор. И тут я попросил заказчика задать техподдержке мой вопрос. Потому что я не могу выполнить задачу заказчика, так чтобы это не затерлось обновкой (не трогая системных файлов).
В техподдержке ответили:
"Для задания дополнительных параметров формирования SQL-запроса для выборки товаров используйте хук products_collection. Пример реализации можно посмотреть в исходном коде плагина "Избранные товары"
Понятно, что я в лице заказчика - неуч не читающий документацию. Я сам так подумал. А начав работы с "products_collection" оказалось, что он не подходит для этой задачи. Если всетаки мне не ответят на поставленный вопрос положительно.
Мне нужен, официальный ответ, что "да! плагинами данная задача не решается в принципе", "нет. есть ещё один обиван..."
Дело ведь даже не в этой задаче конкретно - МНЕ НУЖНО МОДИФИЦИРОВАТЬ SQL-ЗАПРОС ТОВАРОВ В КАТЕГОРИИ!!! НУЖНО И ВСЁ! ДЛЯ ОПТИМИЗАЦИИ,ДЛЯ ДОПОЛНЕНИЙ, ДЛЯ ЧЕГО УГОДНО!
в ответ на Применение эвента products_collection
--------------------------------------
Стоит вполне себе абстрактная задача, необходимо в 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