MIGX. Поля по умолчанию

Доброго дня. Изучая migx, возник вопрос: возможно ли, при создании ресурса, отображать MIGX с заполненными по-умолчанию полями?



Николаевич
08 октября 2017, 12:15
modx.pro
1
3 875
0

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

Андрей
08 октября 2017, 18:22
+2
При создании нет, но можно сделать немного по другому — записывать значения при сохранении.

Создать плагин на событие OnDocFormRender и указать в нем значения по-умолчанию. При сохранении ресурса плагин проверяет есть ли значения в TV с migx и если пусто, то записывает значения.

Т.е. вы создаете ресурс, сохраняете и значения записываются.

Пример плагина, в переменной $default ваши значения, $tvname имя TV

switch ($modx->event->name) {
  case 'OnDocFormRender':
    if ($mode === 'upd') {
        
        $tvname = 'autofill';
        
        $default = array(
            array(
                'MIGX_id' => 1,
                'name' => 'Тест'
            ),
            array(
                'MIGX_id' => 2,
                'name' => 'Тест 2'
            )        
        );
      
        $tv = $modx->fromJson($resource->getTVValue($tvname), true);
      
        if (empty($tv)) {
            if (!$resource->setTVValue($tvname, $modx->toJson($default))) {
                $modx->log(1, 'Не удалось добавить значение');
            };      
        }
      
    }
    
    break;
}
    man
    man
    09 октября 2017, 11:38
    1
    +1
    Можно!
    В значения по умолчанию пишешь стандартный migx-json, типа такого но со своими полями:
    [{
    	"MIGX_id":"1",
    	"name":"name 1",
    	"description":"description 1",
    	"size":"10,5 х 14,8см",
    	...
    	"impPrint":"25"},
    {
    	"MIGX_id":"2",
    	"name":"name 2",
    	"description":"description 2",
    	"size":"42,0 x 59,4 см",
    	...
    	"impPrint":"22"},
    {
    	"MIGX_id":"3",
    	"name":"name 3",
    	"description":"description 3",
    	"size":"59,4 х 84,1 см",
    	...
    	"impPrint":"23"}
    ]
      Николаевич
      11 октября 2017, 17:31
      0
      мда… как все просто и логично) Спасибо
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3