Migx+formit. Как добавить несколько строк?

Приветствую коллеги.

Подскажите рецепт счастья.
Хочу добавлять данные в Migx ТV через formit.
Делаю сайт рецептов, в Migx TV хочу хранить ингридиенты.

На просторах интернета нашел код сниппета\хука который работает, но не совсем как нужно.
Он прекрасно добавляет в ресурс (а точнее в товар minishop2, которые я использую для рецептов) ингредиент, но к сожалению только 1, последний в форме.

Кусок сниппета\хука отвечающий за работу с Migx:
$page = $modx->getObject('modResource', $doc->get('id'));   
$value = $page->getTVValue('ingredients');
$items = $modx->fromJSON($value);

$next_id = 1;
//get the next MIGX_id
if (is_array($items)){
    foreach ($items as $item){
        $id = $modx->getOption('MIGX_id',$item,0)+1;
        if ($id > $next_id){
            $next_id = $id;
        }   
    }
}else{
    $items = array();
}

   
$item = array(
    'MIGX_id'       => $next_id,
    'ingredient'          => $hook->getValue('ingredient'),
    'quantity'          => $hook->getValue('quantity'),
    'notes'          => $hook->getValue('notes'),
    
);
$items[] = $item;

if (!$page ->setTVValue('ingredients', $modx->toJson($items))) {
  $modx->log(modX::LOG_LEVEL_ERROR,'There was a problem saving your data!');
  return false;
}else {
    return true;
}
Каждый ингредиент — это три поля одной строки MIGX TV — 'ingredient', 'quantity' и 'notes'.
Подскажите люди добрые, как заставить добавлять несколько ингредиентов?
G@G
G@G
21 июля 2016, 19:35
modx.pro
1
1 487
0

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

Андрей
22 июля 2016, 18:48
0
Надо сложить массивы наверное

$result = array_merge($items, $item);
$page ->setTVValue('ingredients', $modx->toJson($result))
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1