You are here

public function RedhenContactViewsController::views_data in RedHen CRM 7

Add extra fields to views_data().

Overrides EntityDefaultViewsController::views_data

File

modules/redhen_contact/lib/redhen_contact.views.inc, line 15
Views controller for RedHen Contacts.

Class

RedhenContactViewsController
RedhenContact Views Controller class.

Code

public function views_data() {
  $data = parent::views_data();

  // Base table definition for redhen_contact_user so we can use it for joins.
  $data['redhen_contact_user']['table']['group'] = t('User');
  $data['redhen_contact_user']['table']['join'] = array(
    'redhen_contact' => array(
      'left_field' => 'contact_id',
      'field' => 'contact_id',
      // Only join where the linkage is active.
      'extra' => array(
        array(
          'field' => 'status',
          'value' => '1',
          'operator' => '=',
        ),
      ),
    ),
    'users' => array(
      'left_field' => 'uid',
      'field' => 'uid',
      // Only join where the linkage is active.
      'extra' => array(
        array(
          'field' => 'status',
          'value' => '1',
          'operator' => '=',
        ),
      ),
    ),
  );
  $data['redhen_contact_user']['uid'] = array(
    'group' => t('User'),
    'title' => t('Contact User UID'),
    'help' => t('The user id associated with this contact via redhen_contact_user'),
    'relationship' => array(
      'base' => 'users',
      'base field' => 'uid',
      'handler' => 'views_handler_relationship',
      'label' => t('User'),
      'title' => t('Contact User'),
      'help' => t('The user associated with this contact via redhen_contact_user'),
    ),
    'field' => array(
      'handler' => 'views_handler_field_numeric',
      'click sortable' => TRUE,
    ),
    'filter' => array(
      'handler' => 'views_handler_filter_numeric',
    ),
    'sort' => array(
      'handler' => 'views_handler_sort',
    ),
  );
  $data['redhen_contact_user']['contact_id'] = array(
    'group' => t('Contact'),
    'title' => t('User Contact ID'),
    'help' => t('The contact id associated with this user via redhen_contact_user'),
    'relationship' => array(
      'base' => 'redhen_contact',
      'base field' => 'contact_id',
      'handler' => 'views_handler_relationship',
      'label' => t('Contact'),
      'title' => t('User Contact'),
      'help' => t('The contact associated with this user via redhen_contact_user'),
    ),
    'field' => array(
      'handler' => 'views_handler_field_numeric',
      'click sortable' => TRUE,
    ),
    'filter' => array(
      'handler' => 'views_handler_filter_numeric',
    ),
    'sort' => array(
      'handler' => 'views_handler_sort',
    ),
  );

  // View link.
  $data['redhen_contact']['link'] = array(
    'title' => t('Link'),
    'help' => t('Provide a simple link to the RedHen Contact.'),
    'field' => array(
      'handler' => 'redhen_contact_views_handler_field_redhen_contact_link',
      'click sortable' => TRUE,
      'real field' => 'contact_id',
      'additional fields' => array(
        'contact_id',
      ),
    ),
  );

  // Edit link.
  $data['redhen_contact']['edit'] = array(
    'title' => t('Edit link'),
    'help' => t('Provide a simple link to edit the RedHen Contact.'),
    'field' => array(
      'handler' => 'redhen_contact_views_handler_field_redhen_contact_link_edit',
      'click sortable' => TRUE,
      'real field' => 'contact_id',
      'additional fields' => array(
        'contact_id',
      ),
    ),
  );

  // Delete link.
  $data['redhen_contact']['delete'] = array(
    'title' => t('Delete link'),
    'help' => t('Provide a simple link to delete the RedHen Contact.'),
    'field' => array(
      'handler' => 'redhen_contact_views_handler_field_redhen_contact_link_delete',
      'click sortable' => TRUE,
      'real field' => 'contact_id',
      'additional fields' => array(
        'contact_id',
      ),
    ),
  );
  return $data;
}