You are here

function viewreference_field in View reference 6.3

Same name and namespace in other branches
  1. 6 viewreference.module \viewreference_field()
  2. 6.2 viewreference.module \viewreference_field()

Implementation of hook_field().

File

./viewreference.module, line 169
Defines a field type for referencing a view from a node.

Code

function viewreference_field($op, &$node, $field, &$items, $teaser, $page) {
  switch ($op) {
    case 'validate':
      $views = viewreference_get_views($field['append_id'], $field['referenceable_views']);
      foreach ($items as $delta => $item) {
        if (is_array($item) && !empty($item['error_field'])) {
          $error_field = $item['error_field'];
          unset($item['error_field']);
          if (!empty($item['view_id'])) {
            if (!in_array($item['view_id'], array_keys($views))) {
              form_set_error($error_field, t("%name : This view can't be referenced.", array(
                '%name' => t($field['widget']['label']),
              )));
            }
          }
        }
      }
      return $items;
  }
}