Andrey Grachov

Andrey Grachov

Был в сети 30 августа 2021, 18:52
Заказы принимаю
Насколько я помню, нормального решения этой проблемы нет. Предлагаемое решение — вызывать getImageList с processTV=`0`, а правильную ссылку формировать вручную (/assets/resourceimages/[[+id]]/[[+image]]). Хотя может уже и поменялось что-то с тех пор, как я видел похожую проблему :)
Квадратные скобки нужны, чтобы отделить эти условия от всех остальных (в том числе дефолтных), то есть итоговый запрос получится такого вида:
...`product_id` = 1 AND (`description` LIKE '%123%' OR `description` LIKE '%456%' ...) ...
Насчет группировки не понял о чем вы, поскольку в моем примере указана группировка по ID файла. Если картинки в выдаче повторяются — то группировка по ID файла должна убрать дубликаты.
Можно в цикле слать несколько запросов на добавление в корзину (по одному для каждого товара из списка) или слать сразу все данные, но написать свой обработчик (серверный), который добавит все в корзину.
Вы можете добавить действие «активировать» в контекстное меню, которое будет вызывать ваш процессор. Для этого надо создать файл core/components/migx/configs/grid/grid.GRID_ID.config.inc.php, где GRID_ID — имя конфигурации migxdb. В файле добавить код такого вида:
<?php
$gridfunctions['this.activateRow'] = "activateRow: function(btn, e) {
	alert('Activated row #' + this.menu.record.id);
}";

$gridcontextmenus['activateRow'] = array(
	'code' => "
if (!n.active) {
	m.push({
		text: 'Activate Row',
		handler: 'this.activateRow'
	});
	m.push('-');
}
	",
	'handler' => 'this.activateRow',
);
После этого в редактировании конфигурации migxdb на вкладке с контекстными меню появится новый чекбокс activateRow. В самой функции activateRow у вас есть доступ к гриду и к текущей строке, вы можете вызвать процессор, передав ему нужные данные.
Если на процессор идет AJAX запрос, то окно сохранения файла не появится. Чтобы дать возможность сохранить файл, надо оставить код из вашего второго примера (отправляющий нужные заголовки) в процессоре, а в JS «вызывать» процессор таким образом:
window.location.href = ComponentName.config.connectorUrl + '?HTTP_MODAUTH=' + MODx.siteId + '&action=processor/name';
Хоть это и внесет сложности, думаю стоит упомянуть про ветки и делать изменения для каждого пул-реквеста в отдельной ветке. Потому что, если пул-реквест отправлен и вы добавите новых коммитов в ту же ветку, они автоматически присоединятся к пул-реквесту. То есть получается, что используя одну ветку, необходимо постоянно ждать пока пул-реквест примут, чтобы сделать следующие изменения.
Также стоит упомянуть, что если правка очень простая и затрагивает один файл, можно сделать изменения прямо на сайте Github в целевом репозитории, что приведет к прозрачному созданию пул-реквеста :)