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;
  }
}