Нашел решение самостоятельно - может кому пригодится.
1) создаем новую ноду которая будет служить в качестве заготовки с предустановленным набором элементов в
$node_template->field_properties['und'][0..2] у меня три свойства для продукта по умолчанию
$node_template->nid==22
2) Хардкодно присваиваем эту же структуру объекту создаваемой ноды (еще без ее nid) в хуке:
/**
* Implements hook_node_prepare().
*/
function nxte_database_node_prepare($node) {
//Изменяем объект ноды перед тем как друпал построит для него форму добавления материала
if($node->type == 'product' && !isset($node->nid)){
$node_array_hardcoded =array(
'body' => array(
'und' => array(
0 => array(
'value' => 'Description of product',
'format' => 'full_html',
'safe_value' => 'Description of product',
),
),
),
'field_properties' => array(
'und' => array(
0 => array(
'value' => 46, //это значение будет изменено после сохранения новой ноды (сейчас это existing_filed_collection_item_ID)
'revision_id' => 46,
),
1 => array(
'value' => 47, //это значение будет изменено после сохранения новой ноды (сейчас это existing_filed_collection_item_ID)
'revision_id' => 47,
),
2 => array(
'value' => 48, //это значение будет изменено после сохранения новой ноды (сейчас это existing_filed_collection_item_ID)
'revision_id' => 48,
),
),
),
);
foreach ($node_array_hardcoded as $key => $value){
$node->$key = $value;
}
}
}
Смотреть результат:
Сделаю до ума поделюсь модулем.
dev-alexmazaltov.pantheon.io