Приветствую, господа Гуру!
Помогите пожалуйста решить задачку!
Дано: Д7+ entityform+ field_collections
В entityform создана форма с применением field_collections – все работает!
Задача в следующем: если при открытии формы, я вижу куки (которые сам создал свом модулем) – заполняю эту форму! Вроде все чудесно работает – спотыкнулся на коллекциях. Работаю с формой по hook_form_FORM_ID_alter(). Если есть несколько экземпляров коллекции – пробовал так: $form['field_languages']['und'][]=$form['field_languages']['und'][0];
Вроде отрабатывает, но не верно! Т.е. в $form['field_languages']['und'][1], в именах полей типа: «name="field_languages[und][0][field_language][und][0][value]"» - а должно быть: «name="field_languages[und][1][field_language][und][0][value]"»
Хотя дельту в контейнере менял на 1цу
С коллекциями работал – но там было понятно, т.к. привязывал к ноде.
Как тут поступать? Т.е. как в hook_form_FORM_ID_alter() программно нажать «добавить» ?
За ранее Спасибо
Комментарии
<?php
$field_collection = new FieldCollectionItemEntity($fc_options);
$field_collection->save();
$fc_options = [
'field_name' => 'field_machine_name',
'hostEntityType' => 'entity type',
'hostEntity' => $entity,
'is_new' => TRUE,
];
$field_collection->setHostEntity('entity type', $entity);
?>
Не уверен что setHostEntity() надо
Ну и учтите, что ->save() сохраняет также и хост сущность, если не передать туда параметр TRUE (skiphostsave)
Здравствуйте!
Спасибо большое за ответ! Если Вас не затруднить – помогите, пока не получается.
Что передавать в качестве хоста, саму форму? И тип – это entityform.type ?
Вот код:
<?php
$field_collection = new FieldCollectionItemEntity($fc_options);
function sy_test_form_sy_test_entityform_edit_form_alter(&$form, &$form_state, $form_id)
{
dsm($form);
$fc_options = [
'field_name' => 'field_vvv',
'hostEntityType' => 'sy_test',
'hostEntity' => $form,
'is_new' => TRUE,
];
$field_collection->setHostEntity('sy_test', $form);
$field_collection->save();
}
?>
Спасибо заранее!