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

Dan
Dan
20 мая 2023, 07:22
0
Between есть, просто он априори странно себя ведет с datetime иногда. Так конечно можно писать, ничего в этом нет зазорного.
Andrew
19 мая 2023, 23:11
0
Эх, пока смотрю тихо с обновлением, но надежда умирает последней)
gloobus
19 мая 2023, 22:27
0
Разобрался!

Идём в core/components/migx/elements/tv/migx.tpl
В самом низу находим:
Ext.ComponentMgr.onAvailable('modx-resource-tabs', function() {
    Ext.apply(this, {
        listeners: {
            tabchange: MIGx.updateGrid,
            afterlayout: MIGx.updateGrid,
            resize: MIGx.updateGrid
        }
    });
});

Особо не вникал, но добавляет компонент modx-resource-tabs и действия на события.
Это горизонтальные табы в ресурсе, а MIGx.updateGrid обновляет таблицу в TV.
Сразу после добавляем:
Ext.ComponentMgr.onAvailable('modx-resource-vtabs', function() {
    Ext.apply(this, {
        listeners: {
            tabchange: MIGx.updateGrid
        }
    });
});

Оставил тут только одно событие tabchange, мне этого было достаточно, при изменении вертикальных табов категорий TV запускается обновление таблицы.

Далее, с шириной тулбара где кнопка Добавить элемент не стал глубоко лезть, заколхозил, в assets/components/migx/css/mgr.css добавил:
.tv_modx-grid-multitvgrid_items .x-toolbar,
.tv_modx-grid-multitvgrid_items .x-panel-tbar {
    width: 100% !important;
}
Проблему решает, выглядит красиво :)

Кто может красиво изложить, черканите Бруно.
vit
vit
19 мая 2023, 22:09
0
так работает, значит BETWEEN нету, а так норм писать или не очень?
Dan
Dan
19 мая 2023, 21:47
0
А попробуй так написать.
[[!PdoPage?
    &class=`RecordMy`
    &tpl=`tpl.recordMy`
    &element=`getRecords`
    &ajaxMode=`default`
    &sortby=`{"date":"ASC"}`
    &where=`['DATE >= "2023-03-17 00:00:00" AND DATE <= "2023-03-18 23:59:59"']`
]]
Артур Шевченко
19 мая 2023, 21:00
0
Может и не проверял, как разработчик могу сказать, что баг хоть и доставляет неудобства, но критично на работу не влияет. А поскольку автор компонента дядька занятой, мог этот баг и не заметить. Напиши issue или сразу PR зашли.
vit
vit
19 мая 2023, 20:10
0
пробовал так все равно первое выводит 2023-03-16
gloobus
19 мая 2023, 18:53
0
Это не так страшно было, т.к. информация все умещалась, отображалась. Сейчас же другая ситуация, что уезжает. Не понимаю только одного, это же вот явная проблема, видна сразу, разработчики совсем не проверяли?
По сути нужно или найти где тулбару с кнопкой Добавить указывается стиль ширины, или отрисовку таблицы при переходе по категориям в ТВ
Артур Шевченко
19 мая 2023, 18:44
0
Есть другие сайты на 2.x версии и там такого не замечено.
Там противоположная проблема есть: при первой загрузке табличка не тянется на положенную ширину, а после редактирования принимает нормальный вид.
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` у всех одинаковый, потому что универсальный.