[[!pdoPage?
&element=`msProducts`
&loadModels=`gallery`
&leftJoin=`{
"360x270": {"class":"msProductFile","alias":"360x270", "on": "360x270.product_id = msProduct.id AND 360x270.path LIKE '%/360x270/' AND 360x270.rank=0"}
,"360x270x1": {"class":"msProductFile","alias":"360x270x1", "on": "360x270x1.product_id = msProduct.id AND 360x270x1.path LIKE '%/360x270/' AND 360x270x1.rank=1"}
}`
&select=`{
"msProduct":"*"
,"360x270":"360x270.url as 360x270"
,"360x270x1":"360x270x1.url as 360x270x1"
}`
]]
и в чанке tpl.msProducts.row.php вывожу ДВА фото товара так:
Количество запросов снизилось вдвое, время загрузки страницы упало в полтора раза.
Извините, если кому наступил на мозоль, разжевав досконально, я знаю, что тут это не приветствуется...)))
Если связей много то можно навесить общую функцию и в ней выставлять нужные поля.
— lavkaschastya.com/
— www.schastye.com/
React, нестандартные наборы товаров, вёрстка любой сложности. Хочу ещё попробовать полностью отказаться от MODX-шаблонизатора, но подходящего проекта пока не было.
Сергей·в шаблоне категории вызываю список товаров так:
и в чанке tpl.msProducts.row.php вывожу ДВА фото товара так:
Количество запросов снизилось вдвое, время загрузки страницы упало в полтора раза.
Извините, если кому наступил на мозоль, разжевав досконально, я знаю, что тут это не приветствуется...)))
MODX делает несколько запросов в базу данных.
Если упрощённо, то сначала определяет ID группы по её имени (из таблицы modx_membergroup_names), потом — ID роли (таблица modx_user_group_roles). Когда ID-шники определены, происходит создание новой записи в таблице modx_member_groups.
После этого сбрасываются значения параметров сессии:
Для удаления пользователя из группы точно так же нужно найти ID-шник группы по её имени и удалить соответствующую запись из таблицы modx_member_groups.
В итоге запись
сгенерирует минимум 5 запросов к базе данных.
Если где-то ранее у нас уже определены ID-шники ролей и групп, то можно внести изменения вручную:
Но через год-полтора будет сложно понять, что тут происходит.
Так что решение о том, какой из способов выбрать, каждый принимает сам.
В modstore.pro, например, сделано вообще вот так:
Поэтому все уведомления от ms2 работают через общую систему уведомлений сайта.
Плагин дублирует опции товара из опций товара из другого контекста у которых совпадает alias. Используется minishop 2.4.11, начиная опции идут исключительно массивами.
Вешается на OnDocFormSave
А те опции которые создаешь сам так