MIGXdb - Contextmenues

Я так понимаю, что migxdb не создает никаких событий при создании, удалении строк в кастомной таблице т.е. я не могу при каких-то изменениях именно в одной строке сделать изменения в остальных строках? В поле Contextmenues есть пункт publish. В соответствии с этой инструкцией, если в таблице будет столбец
<field key="published" dbtype="int" precision="10" phptype="integer" null="false" default="1" />

и некоторые другие строки, и в Contextmenues отметить галку published, при редактировании таблицы в migxdbTV можно публиковать — снимать с публикации конкретную строку. А как использовать, например, activate? Пробовал сделать по аналогии с published — фиг вам.
Подскажите, куда копать, хоть на русском, хоть на английском. В документации нашел только упоминания этого пункта типа
Contextmenues

check: update, recall_remove_delete

Что мне конкретно нужно, так это возможность в тоблице прикрепленной к документу через migxdbTV либо отметить одну из строк, либо не отмечать никакой. И при сохранении этого документа выбирать помеченную строку и сохранять часть данных в ней в некоторые другие ТV. Чтобы несколько вариантов хранилось в таблице, а во фронтенд выводились именно те, что в отмеченной строке. Нужно именно сохранить их значение в др. тв, а не только выводить во фронтенде бо нужна возможность видеть их в админке и изменять без оглядки на таблицу, что в migxdbTV.
Как сохранить значение в др. тв в плагине понятно, addPackage и понеслось, но надо же как-то пометить обрабатываемую строку и причем тока одну и только выбранную. Может быть можно как-то при нажатии пункта меню «activate» сохранять дату события и тогда можно получать самое молодое изменение? Так вот как бы мне пометить одну из строк?
Идеально было бы как-то добавить в форме редактирования строки таблицы в migxdbTV кнопку, которая отправляет все в мой контроллер при клике.
Антон Соловьёв
01 мая 2014, 14:23
modx.pro
1
1 510
0

Комментарии: 2

Andrey Grachov
02 мая 2014, 12:41
0
Вы можете добавить действие «активировать» в контекстное меню, которое будет вызывать ваш процессор. Для этого надо создать файл 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 у вас есть доступ к гриду и к текущей строке, вы можете вызвать процессор, передав ему нужные данные.
    Антон Соловьёв
    07 мая 2014, 22:13
    0
    Спасибо большое. Извините, что сразу не ответил, так получается.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2