function subform_widget in Subform 5
File
- ./
subform.module, line 31
Code
function subform_widget($op, &$node, &$field, &$items) {
switch ($op) {
case 'form':
$node_property = $field['field_name'] . '_parent_node';
if (isset($node->nid)) {
$parent_node = $node->nid;
}
else {
if (isset($node->{$node_property})) {
$parent_node = $node->{$node_property};
}
else {
$parent_node = 0 - floor(rand());
}
}
$form = array(
$field['field_name'] => array(
$field['field_name'] . '_parent_node' => array(
'#type' => 'hidden',
'#default_value' => $parent_node,
),
'widget' => array(
'#type' => 'subform',
'#title' => $field['widget']['label'],
'#mode' => $field['widget']['children_display_mode'],
'#child_side' => $field['widget']['child_side'],
'#relation_class' => $field['widget']['relation_class'],
'#parent_node' => $parent_node,
'#allow_selection' => $field['widget']['allow_selection'],
'#allow_hoisting' => $field['widget']['allow_hoisting'],
'#selection_query' => $field['widget']['selection_query'],
'#type_name' => $node->type,
'#field_name' => $field['field_name'],
),
),
);
return $form;
case 'submit':
$node_property = $field['field_name'] . '_parent_node';
$node->subforms[$field['field_name']] = $node->{$node_property};
}
}