Вохможное решение по фильтам модификаций

#
Вохможное решение по фильтам модификаций
Еще раз о задаче — Есть товары у них есть модификации у модификаций есть доп. свойство —> необходимо отфильтровать все модфикации всех товаров по доп. свойству модификаций и вывести сами товары а не их модификации.

---
Ответ HostCMS: Сейчас стандартно невозможно, нужно усложнять SQL-запросы.
---
Проанализировав XSL шаблон МагазинКаталогТоваров пришел к выводу что возможно решить задачу с помощью XSL единственное не очень в нем разбираюсь но примерно вот так поправьте кто сможет:

<!-- Шаблон для модификаций -->
<xsl:template match="modifications/item">
<xsl:value-of select="property[@xml_name='razm_odez']/value"/>
</xsl:template>


Здесь просматриваем все модификации товара по доп. свойству.

А вот при выводе вот этого надо добавить условие
<!-- Шаблон для товара -->   
<xsl:template match="item">

Которое просмотрит верхний шаблон и проверив условие выводит товар или нет.

<xsl:if test="________">   
</xsl:if>


В общем смысл вроде ясен. У кого по больше опыта с XSL помогите. Не судите строго.                     
#
Re: Вохможное решение по фильтам модификаций
Решать эту задачу на уровне XSL - несколько не верно, если подходить к системе с точки зрения MVC-парадигмы.
В XSL должна быть только дизайнерская логика, а вся бизнес-логика должна реализовываться на php в динамических страницах.
С практической же точки зрения это выливается в следующие баги:
1. Загоняя в xml слишком больше количество товаров и их модификаций, есть изрядный риск столкнуться с потолком выделяемой процессу памяти.
2. Будут проблемы с разбивкой вывода на страницы.
3. и т.д...
Заказов не беру. Консультирую редко.
#
Re: Вохможное решение по фильтам модификаций
и чтож теперь делать. Перелопачивать HostCMS API.Это же достаточно стандартная функция почему нет ее стандартного решения. Для этого вроде модификации и создавались. Просто не хочется ручками размеры в основной товар забивать да и зачем для этого же есть модификации
#
Re: Вохможное решение по фильтам модификаций
denisov999 писал(а):
и чтож теперь делать.
Воспользоваться направлением, которое подсказал модератор - усложнять SQL-запросы.
Да, знание API потребуется.
Да, увы, не все на свете бывает сразу и из коробки
Вероятно можно попробовать разбить задачу на две более простых: а) получение модификаций с заданными характеристиками и б) получение родительских товаров по списку модификаций.
Заказов не беру. Консультирую редко.
#
Re: Вохможное решение по фильтам модификаций
Здравствуйте.

У меня немного другая задача: фильтровать модификации и выводить их же. При генерации страницы методом ShowShop получается такой запрос:
SELECT SQL_CALC_FOUND_ROWS DISTINCT shop_items_catalog_table.shop_items_catalog_item_id FROM shop_items_catalog_table WHERE shop_items_catalog_table.shop_items_catalog_is_active = '1' AND shop_items_catalog_table.shop_items_catalog_modification_id = '0' AND ...другие условия отбора

Можно ли как-то обойти условие
AND shop_items_catalog_table.shop_items_catalog_modification_id = '0'
? Мне кажется, писать дополнительно
(or shop_items_catalog_table.shop_items_catalog_modification_id != '0' and ...снова все те же условия отбора)
будет неправильно, т.к. запрос сильно утяжелится (условий много). А другие способы в голову не приходят. Подскажите, пожалуйста.
#
Re: Возможное решение по фильтрам модификаций
Ответ: чтобы указанное условие
AND shop_items_catalog_table.shop_items_catalog_modification_id = '0'
пропало из запроса (в результате чего модификации фильтруются наравне с товарами), надо передать в ShowShop параметр
$param['sql_select_modification'] = false;
Прошу разработчиков добавить его в API, а то он фигурирует только в описании метода GetAllItems, и возможность использовать его в ShowShop обнаружилась случайно.
#
Re: Вохможное решение по фильтам модификаций
Скажите, пожалуйста, почему в базе в поле shop_groups_id (таблица shop_items_catalog_table) у модификаций стоит 0, даже если родитель находится не в корневой группе? Причем если ставишь значение в базе вручную, потом при пересохранении модификации из центра администрирования в базу опять пишется 0. Это по принципиальным соображениям или нет?
Модератор
#
Re: Вохможное решение по фильтам модификаций
bie,
Модификация принадлежит товару, группы у нее нет, поэтому и 0.
#
Re: Вохможное решение по фильтам модификаций
Но ведь shop_shops_id не 0, хотя модификация принадлежит товару? Просто непонятна логика: у модификации все поля заполняются, кроме id группы. Мне как раз надо, чтобы там было значение. Если бы оно ставилось в 0 один раз, то ничего. Но из-за того, что каждый раз при пересохранении оно обнуляется, никак не придумаю, как выпутаться.
Модератор
#
Re: Вохможное решение по фильтам модификаций
bie,
а он и не должен быть 0, модификация не может поменять магазин, а вот группу могла бы, если родительский товар ее менял. Т.к. модификация не выводится в конкретной группе, а принадлежит товару, то значение группы 0.
Авторизация