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

Dan
Dan
19 мая 2023, 17:04
0
Можно чистый SQL попробовать
[[!PdoPage?
    &class=`RecordMy`
    &tpl=`tpl.recordMy`
    &element=`getRecords`
    &ajaxMode=`default`
    &sortby=`{"date":"ASC"}`
    &where=`['DATE BETWEEN "2023-03-17 00:00:00" AND "2023-03-18 23:59:59"']`
]]
Советую также указать время у обеих дат, раз хранится в datetime.
Dan
Dan
19 мая 2023, 16:56
0
Поставьте логирование серверных ошибок. После появления такой ошибки смотрите в журнал, если Timeweb, то он сохраняется в папке сайта на уровне public_html с названием error_log. Там будет конкретная причина, вызывающая ошибку.
Но подозреваю, что виноват какой-нибудь кастомный плагин.
Dan
Dan
19 мая 2023, 16:44
0
Уже делал такое без проблем и не раз на многих проектах. Я же говорю, вы что-то делаете неправильно.
Павел Романов
19 мая 2023, 12:27
+1
Если Вам нужно вывести второстепенные категории товара, сделайте сниппет myCategories:
<?php
$id = $modx->getOption('id', $scriptProperties, $modx->resource->get('id'));
$table_cont = $modx->getOption('table_prefix').'site_content';
$table_cat = $modx->getOption('table_prefix').'ms2_product_categories';
$sql = "SELECT * FROM {$table_cat} WHERE `product_id` = {$id}";
$q = $modx->prepare($sql);
$q->execute();
$resources = $q->fetchAll(PDO::FETCH_ASSOC);
foreach ($resources as $category){
    $cid = $category['category_id'];
	if($result = $modx->query("SELECT * FROM {$table_cont} WHERE id = {$cid}")){
		$row = $result->fetch(PDO::FETCH_ASSOC);
		$out .= $modx->getChunk($tpl, $row);
	}
}
return $out;

В чанке msProducts (programs.row) вызывайте его так:
[[myCategories? &id=`[[+id]]`&tpl=`subcat_tpl`]]
Или на Fenom
{'myCategories' | snippet: ['id' => $id, 'tpl' => 'subcat_tpl']}
В карточке товара &id можно не указывать.

В чанке subcat_tpl доступны любые поля категории: [[+pagetitle]], [[+content]] и т. д.
kudesia
19 мая 2023, 10:17
0
Так Вы попробуйте сами.

Создайте в минишоп две категории.
В одной создайте товар, а другую отметьте в нем галочкой.

И вот выведите pagetitle этой другой категории.

modx.pro/help/23970#comment-139267
kudesia
18 мая 2023, 21:16
0
Да тут сложно неправильно сделать.
Dan
Dan
18 мая 2023, 20:42
0
Чет вы неправильно делаете
kudesia
18 мая 2023, 19:38
0
Эх…

так выводит родителя этих всех категорий…
Dan
Dan
18 мая 2023, 18:59
0
Во, другой разговор, с этого и надо было начинать вопрос.
Вы можете использовать additionalPlaceholders, про который написано тут.
Но нужно обновить minishop2 как минимум до 4.2. Не знаю, как будет в синтаксисе PHx, но на феном вызов будет такой:
{'!msProducts' | snippet : [
        'parents' => 180,
        'limit' => 0,
        'sortby' => '{"menuindex":"ASC"}',
        'tpl' => 'programs.row',
        'additionalPlaceholders' => [
            'pr' => 180
        ]
]}
И в чанке programs.row вместо
{$parent | resource: 'pagetitle'}
укажите
{$additionalPlaceholders.pr | resource: 'pagetitle'}
kudesia
18 мая 2023, 18:17
0
Так.

Может так понятнее будет.

КАТАЛОГ

[[!msProducts?
               &parents=`150`
               &limit=`0`
               &sortby=`{ "menuindex":"ASC" }`
               &tpl=`programs.row`
            ]]

[[!msProducts?
               &parents=`151`
               &limit=`0`
               &sortby=`{ "menuindex":"ASC" }`
               &tpl=`programs.row`
            ]]

[[!msProducts?
               &parents=`152`
               &limit=`0`
               &sortby=`{ "menuindex":"ASC" }`
               &tpl=`programs.row`
            ]]

[[!msProducts?
               &parents=`155`
               &limit=`0`
               &sortby=`{ "menuindex":"ASC" }`
               &tpl=`programs.row`
            ]]

[[!msProducts?
               &parents=`140`
               &limit=`0`
               &sortby=`{ "menuindex":"ASC" }`
               &tpl=`programs.row`
            ]]

[[!msProducts?
               &parents=`180`
               &limit=`0`
               &sortby=`{ "menuindex":"ASC" }`
               &tpl=`programs.row`
            ]]

....
&tpl=`programs.row` у всех одинаковый, потому что универсальный.
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