Всего 123 797 комментариев

Dan
Dan
18 мая 2023, 18:14
0
Ну так у вас вызов msProducts неуниверсальный. Или вы в parents по другому указываете?
kudesia
18 мая 2023, 18:12
0
Зачем мне для каждой категории создавать отдельный чанк tpl для вывода товаров. а не один универсальный?

50 категорий и 50 tpl? Отличающихся одной строкой?
Dan
Dan
18 мая 2023, 18:11
0
Но вы же в msProducts напрямую указываете его, так укажите и в чанке.
kudesia
18 мая 2023, 18:09
0
просто вместо $parent в строке
{$parent | resource: 'pagetitle'}
укажите id этой категории
Так мне нужно как-то получить этот id, а не руками вписывать цифры, об этом и вопрос мой.
kudesia
18 мая 2023, 18:06
0
Что вторичных категорий несколько это и так понятно.
Вот я вывожу в каталоге такую категорию. и вывожу в ней товары, но своих собственных товаров она не имеет., а только отмечена галкой в товарах других категорий. И таких Категорий на странице каталога несколько.

Вызов msProducts стандартный.

[[!msProducts?
               &parents=`150`
               &limit=`0`
               &sortby=`{ "menuindex":"ASC" }`
               &tpl=`programs.row`
            ]]
Так как мне вывести в товарах в &tpl=`programs.row` ее pagetitle?
Dan
Dan
18 мая 2023, 17:38
0
Я прекрасно понимаю о чем вы и как это работает. Вы поймите, что этих вторичных категорий может быть несколько, поэтому должна быть какая то логика. Либо например вы находитесь на странице этой самой категории и в карточках товара нужно вывести ее название, либо вы хотите вывести название конкретной категории, id которой вы знаете заранее.
Если второй вариант, что довольно странно, то можно по той же аналогии, что и сейчас, просто вместо $parent в строке
{$parent | resource: 'pagetitle'}
укажите id этой категории

По хорошему стоит показать ваш вызов msProducts
kudesia
18 мая 2023, 17:31
0
Создайте в минишоп две категории.
В одной создайте товар, а другую отметьте в нем галочкой.

И вот выведите pagetitle этой другой категории.
Тогда Вы поймете, о чем я.

Мне не нужен pagetitle основной категории, я уже говорила, что мне нужен Pagetitle той категории, в которой выеден товар сниппетом msProducts, в данном случае id150 — она не его основная.
kudesia
18 мая 2023, 17:29
+1
В чанке parent — это то число, которое указано в бд у товара, а не то, что вы указали в parents при вызове сниппет msProducts
Так я Вам тоже самое и пишу. Что эта конструкция {$parent | resource: 'pagetitle'} не выведет то, что мне нужно, а выведет именно основного родителя.
А мне надо вывести именно ту категорию. которая в msProducts, как и писала об этом ранее и в самом вопросе.
kudesia
18 мая 2023, 17:25
0
Я оговорилась: не msCategory, а сниппет msProducts
Сергей Лим
18 мая 2023, 17:01
0
Подскажите пожалуйста. Меняю производителей через COMBO, скрипт вроде отрабатывает, но по факту не меняет, Куда копать?
Dan
Dan
18 мая 2023, 16:30
0
Какое название категории выводится в чанке, та и является основной для товара. Если это название категории с id 150, то значит у нее есть собственные товары и видимо все. Отсюда получается, что вы скорее всего неправильно свой каталог организовали.
Dan
Dan
18 мая 2023, 16:27
-1
Вообще не понимаю, что вы пишете. Причем тут msCategory, и где он выводится по умолчанию.
Вы не понимаете как это работает.
У каждого товара может быть ТОЛЬКО ОДНА основная категория, она указывается в бд в поле parent.
При этом товар может быть в других категориях, которые могут не являться дочерними категориями его parent.
В чанке parent — это то число, которое указано в бд у товара, а не то, что вы указали в parents при вызове сниппет msProducts
kudesia
18 мая 2023, 16:25
0
{$_modx->resource.pagetitle}
К сожалению — нет, в каталоге. Иначе, моего вопроса не возникло бы.

Каталог с категориями.

Есть категория id 150 в ней нет ни одного собственного товара.
Но есть товары из других категорий, у которых id 150 отмечена во вкладке Категории.
И при выводе в каталоге с категориями, id 150 выводит товары, в которых она отмечена. И без всяких дополнительных настроек, просто сниппетом msProduct

Вы попробуйте сами.
kudesia
18 мая 2023, 16:21
+1
В вызове msProducts вы указываете parents — это основные родители, а не второстепенные.
Вовсе нет. Выводит любой ресурс msCategory по умолчанию.
Dan
Dan
18 мая 2023, 16:18
0
так выводится основная категория товара, а не та, что на странице вызывается.
Как вывести именно ту, которая в вызове msProduct участвует?
Если вы в момент вызова msProducts находитесь на странице нужной категории, то как я и писал выше, в чанке укажите
{$_modx->resource.pagetitle}
так выведется название текущей страницы, т.е. текущей открытой категории, а не основной родительской категории товара
kudesia
18 мая 2023, 16:13
+1
{$parent | resource : 'pagetitle'}
так выводится основная категория товара, а не та, что на странице вызывается.

а на странице вызывается дополнительная категория

Как вывести именно ту, которая в вызове msProduct участвует?
Dan
Dan
18 мая 2023, 16:08
0
Но надо вывести в каждом товаре pagetitle такой категории. А выводится pagetitle только основной категории, а не той, что задана через [[!msProducts?]]
Имеется в виду в карточке товара, находясь на странице категории, вывести название текущей открытой категории? Не совсем понятен вопрос.
Если да, то может покажете как у вас в чанке выводится? Видимо просто
{$parent | resource : 'pagetitle'}
?

Просто в чанке укажите так:
{$_modx->resource.pagetitle}
если включен fenom, если нет, то
[[*pagetitle]]
kudesia
18 мая 2023, 16:02
0
у т.е. вообще нельзя вывести поле именно такой категории?
Алексей Смирнов
18 мая 2023, 15:44
0
В лексиконах ключи, обычно пишутся так config_key_info, поэтому, есть вариант проверять наличие в строке нижнего подчеркивания. Если у вас есть один определенный суффикс, то можно проверять его на вхождение. Примерно вот так:
{set $key = "_"}
{if $key | in : ("config_key_info" | config)}
нет в лексиконах
{/else}
  Результат: {("config_key_info" | config)}
{/if}
Еще можно проверять на пустоту.
в доке есть примеры работы со строками.