Migx+formit. Как добавить несколько строк?
Приветствую коллеги.
Подскажите рецепт счастья.
Хочу добавлять данные в Migx ТV через formit.
Делаю сайт рецептов, в Migx TV хочу хранить ингридиенты.
На просторах интернета нашел код сниппета\хука который работает, но не совсем как нужно.
Он прекрасно добавляет в ресурс (а точнее в товар minishop2, которые я использую для рецептов) ингредиент, но к сожалению только 1, последний в форме.
Кусок сниппета\хука отвечающий за работу с Migx:
Подскажите люди добрые, как заставить добавлять несколько ингредиентов?
Подскажите рецепт счастья.
Хочу добавлять данные в 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'.Подскажите люди добрые, как заставить добавлять несколько ингредиентов?
Комментарии: 1
Надо сложить массивы наверное
$result = array_merge($items, $item);
$page ->setTVValue('ingredients', $modx->toJson($result))
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.