You are here

public function RedhenEngagementScoreViewsController::views_data in RedHen CRM 7

Add extra fields to views_data().

Overrides EntityDefaultViewsController::views_data

File

modules/redhen_engagement/lib/redhen_engagement.views.inc, line 67

Class

RedhenEngagementScoreViewsController
RedhenMembership Views Controller class.

Code

public function views_data() {
  $data = parent::views_data();
  $entity_info = entity_get_info();
  foreach ($entity_info as $entity_type => $info) {
    if ($entity_type == 'redhen_engagement') {

      // Entity to engagment_score.
      $data[$info['base table']]['redhen_engagement_score_rel'] = array(
        'group' => t('Engagement Score'),
        'title' => t('@entity to Engagement Score', array(
          '@entity' => drupal_ucfirst($info['label']),
        )),
        'help' => t('The Note associated with the @entity entity.', array(
          '@entity' => drupal_ucfirst($info['label']),
        )),
        'relationship' => array(
          'entity' => $entity_type,
          'label' => t('@entity being the Engagement', array(
            '@entity' => $entity_type,
          )),
          'base' => 'redhen_engagement_score',
          'base field' => 'name',
          'relationship field' => 'engagement_score',
        ),
      );

      // Engagement score to entity.
      $data['redhen_engagement_score']['redhen_engagement_related_' . $entity_type] = array(
        'group' => t('Engagement Score'),
        'title' => t('Engagement Score to @entity', array(
          '@entity' => drupal_ucfirst($info['label']),
        )),
        'help' => t('The @entity entity that is associated with the Engagement.', array(
          '@entity' => $info['label'],
        )),
        'relationship' => array(
          'handler' => 'views_handler_relationship',
          'label' => t('@entity from Redhen Engagement', array(
            '@entity' => $entity_type,
          )),
          'base' => $info['base table'],
          'base field' => 'engagement_score_id',
          'relationship field' => 'engagement_score_id',
        ),
      );
    }
  }
  return $data;
}