function viewfield_field in Viewfield 5
Same name and namespace in other branches
- 6.2 viewfield.module \viewfield_field()
- 6 viewfield.module \viewfield_field()
Implementation of hook_field().
File
- ./
viewfield.module, line 93 - Defines a field type for referencing a view from a node
Code
function viewfield_field($op, &$node, $field, &$node_field, $teaser, $page) {
if ($op == 'load') {
if (!$node_field[0]['vname']) {
// We're in default land here.
$items = $field['super_default_widget'][0][$field['field_name']];
viewfield_widget('process form values', $node, $field, $items);
$items[0]['default'] = true;
$adds = array(
$field['field_name'] => $items,
);
return $adds;
}
}
elseif ($op == 'view') {
// Custom override of the view function to eliminate the 'default' key if any.
foreach ($node_field as $delta => $item) {
if (!is_array($node_field[$delta])) {
continue;
}
// From _content_field_view().
$context = $teaser ? 'teaser' : 'full';
$formatter = isset($field['display_settings'][$context]['format']) ? $field['display_settings'][$context]['format'] : 'default';
$node_field[$delta]['view'] = content_format($field, $item, $formatter, $node);
}
$value = theme('field', $node, $field, $node_field, $teaser, $page);
return $value;
}
}