You are here

function viewfield_field_settings in Viewfield 5

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

Implementation of hook_field_settings().

File

./viewfield.module, line 18
Defines a field type for referencing a view from a node

Code

function viewfield_field_settings($op, &$field) {
  switch ($op) {
    case 'form':
      $form = array();

      // Get the list of views without the "none" option.
      $view_options = _viewfield_potential_references(array(
        'required' => TRUE,
      ));
      $form['allowed_views'] = array(
        '#type' => 'checkboxes',
        '#title' => t('Allowed views'),
        '#default_value' => $field['allowed_views'],
        '#options' => $view_options,
        '#description' => t('Only allow users to select from the specified views. If no views are selected, all will be available. If only one is selected, the user will only be able to specify the arguments.'),
      );
      $form['super_default'] = array(
        '#type' => 'checkbox',
        '#title' => t('Use a common default value for all nodes if the user does not override it on the node form.'),
        '#default_value' => $field['super_default'],
      );
      $dummy = array();
      $items = $field['super_default_widget'][0][$field['field_name']];
      $form['super_default_widget'] = array(
        '#tree' => true,
      );
      viewfield_widget('process form values', $dummy, $field, $items);
      viewfield_widget('prepare form values', $dummy, $field, $items);
      $form['super_default_widget'][0] = viewfield_widget('form', $dummy, $field, $items);
      $form['super_default_widget'][0][$field['field_name']]['override_default'] = array(
        '#type' => 'value',
        '#value' => true,
      );
      return $form;
    case 'save':
      cache_clear_all('content:', 'cache_content', true);
      return array(
        'allowed_views',
        'super_default',
        'super_default_widget',
      );
    case 'database columns':
      $columns = array(
        'vname' => array(
          'type' => 'varchar',
          'not null' => false,
          'default' => "''",
          'length' => 32,
        ),
        'vargs' => array(
          'type' => 'varchar',
          'not null' => false,
          'default' => "''",
          'sortable' => TRUE,
          'length' => 255,
        ),
      );
      return $columns;
    case 'callbacks':
      return array(
        'view' => CONTENT_CALLBACK_CUSTOM,
      );
  }
}