Всего 123 794 комментария

Алексей Смирнов
31 мая 2023, 23:17
0
А почему вы Карточку-русурс не хотите создавать сразу в Категории-русурсе?
Почему так сложно делаете?
Zulya
31 мая 2023, 23:06
0
Здравствуйте, Алексей!
У карточек-ресурсов есть только 1 родитель. И их родитель не является категорией.
Категории-ресурсы не являются дочерними ресурсами родителя карточек. Они находятся за пределами родителей карточек. Вот такая структура:
— Родитель карточек
— карточка-ресурс
— карточка-ресурс
— карточка-ресурс
— множество карточек-ресурсов.

— Категория-ресурс 1
— Дочерняя категория-ресурс 1
— Дочерняя категория-ресурс 2

— Дочерняя категория-ресурс 100

— Категория-ресурс 2
— Дочерняя категория-ресурс 1
— Дочерняя категория-ресурс 2

— Дочерняя категория-ресурс 100


— Категория-ресурс 1000
— Дочерняя категория-ресурс 1
— Дочерняя категория-ресурс 2

— Дочерняя категория-ресурс 100

Таких категорий довольно много.

Мне необходимо чтобы при открытии страниц категорий-ресурсов отображались только те карточки-ресурсы, которые привязаны к текущей категории.
Алексей Смирнов
31 мая 2023, 22:53
+1
Вопрос такой.
Карточка-ресурс имеет 1 родителя или может иметь много родителей?
Иными словами: Карточка товара должна принадлежать мультикатегориям (карточки-категории)?
Почему задаю этот вопрос, потому что кажется, что вы что-то не так делаете, раз у вас подавляющее большинство товаров (карточек) привязывается к категорям.
Расскажите что у вас за категории и что за товары. Возможно, есть решение по проще и быстрее.
Zulya
31 мая 2023, 21:56
0
'where' => ['id:NOT IN' => [значения из ТВ]]
Если я правильно поняла, то такой синтаксис называется феном.
А как написать без фенома?
Я обычно использую tvfilters для выборки в pdoResources:
&tvFilters=`svyazka==%[[*id]]%, dlv==da`
Zulya
31 мая 2023, 21:54
0
Или установить SuperBoxSelect там есть поиск по названию.
Установила это дополнение. Очень похож на тип ввода «Список (множественный выбор)». Есть поиск. Но нет возможности выбрать все ресурсы из списка.
Zulya
31 мая 2023, 20:48
0
'where' => ['id:NOT IN' => [значения из ТВ]]
В pdoResources так же я могу это использовать?
Артур Шевченко
31 мая 2023, 20:29
+1
Если выбирать те ресурсы, которые не нужны, то потом как в категориях делать выборку?
{'!msProducts' | snippet: [
...
'where' => ['id:NOT IN' => [значения из ТВ]]
...
}}
Zulya
31 мая 2023, 20:05
0
Дополнение Console есть. Но не знаю как отметить все галочки у всех ресурсов-карточек.

у всех товаров, привязанных к одной категории, должны быть какие-то общие свойства для выборки. Есть такое?
Карточки-ресурсы не имеют общих свойств чтобы они между собой как-то привязывались и были похожи.
Единственно что их как-то связывает, это то, что они привязываются к определенным ресурсам-категориям.
Zulya
31 мая 2023, 19:46
0
Здравствуйте, Артур. Да большая часть ресурсов должна быть выбрана. Тут ниже в комментариях я описала modx.pro/help/24012#comment-139464
лучше идти от обратного, т.е. выбирать те ресурсы, которые не нужны
Если выбирать те ресурсы, которые не нужны, то потом как в категориях делать выборку?

Я побоялась использовать плагин OnDocFormRender, так как там было написано:
It is advised to only do this on new resources, as any values you set will override existing resource values.
Dan
Dan
31 мая 2023, 19:39
1
+1
Теперь понял. Можно в принципе плагином или если у вас есть дополнение Console, в нем скриптом отметить все галочки у всех ресурсов-карточек. А далее уже рутинная работка — снимать галочки у ненужных. Вообще, если по логике, у всех товаров, привязанных к одной категории, должны быть какие-то общие свойства для выборки. Есть такое?
Zulya
31 мая 2023, 19:34
0
Добрый вечер!
Дело в том, что ресурсы карточки, я таким образом привязываю к ресурсам-категориям. Список отмеченных — это ресурсы-категории, в которых будут отображаться ресурсы-карточки.
В шаблонах ресурсов-категорий, с помощью pdoResources, вывожу карточки-ресурсы. Если карточка привязана к ресурсу-категории, то эта карточка будет отображаться на странице категорий.
В большинстве случаях, карточки привязаны к 60-70% ресурсам. А ресурсов-категорий довольно много и вручную отмечать все чекбоксы занимает много времени.
Поэтому искала решение, как же сделать так чтобы ресурсы-категории были уже отмечены в чекбоксах по-умолчанию. Легче снять галочки в 30% ресурсах, чем отмечать 70% ресурсов.
Алексей
31 мая 2023, 15:45
0
Спасибо, немного переделал и получилось.
Dan
Dan
31 мая 2023, 13:26
0
Да, можно писать чистый sql. Не за что, успехов
Giant Dad
31 мая 2023, 13:25
0
Да, так сработало! Спасибо огромное! получается, в where можно и просто готовое условие вписать… учтём
Dan
Dan
31 мая 2023, 13:23
2
+1
А если так:
'where' => ['Data.old_price > Data.price AND Data.internet_magazin = 1']
Giant Dad
31 мая 2023, 13:12
0
Тот же резальтат. SQL-запрос генерится с условием
WHERE  ( `msProduct`.`class_key` = 'msProduct' AND `Data`.`old_price` > 'Data.price' AND `Data`.`internet_magazin` = '1' AND `msProduct`.`parent` IN (21904, ...) AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 )
вот тут неправильно получается
`Data`.`old_price` > 'Data.price'
а должно быть
`Data`.`old_price` > `Data`.`price`
Если поменять руками запрос в PHPMySql, то всё работает, но как сделать так, чтобы сниппет msProducts эту часть правильно генерил? Кстати, есть вообще документация как правильно прописывать в сниппете условие where? Только не с типичными примерами, а что-то посложнее типа того что у меня
Dan
Dan
31 мая 2023, 12:49
0
Попробуйте так написать where
'where' => ['Data.old_price:>' => 'Data.price', 'Data.internet_magazin' => '1']
Dan
Dan
31 мая 2023, 12:37
+1
А потом список отмеченных вы используете в сниппете, чтобы вывести связанные?
Giant Dad
31 мая 2023, 12:33
0
Копирую ваш вариант, естественно со своими родителями, выдаёт всё равно все товары подряд и со скидкой и без. Если убрать условие по свойству internet_magazin, то выдаёт то же самое, все товары.
Вот запрос: Added where condition: class_key=msProduct, Data.old_price:>=Data.price,…