You are here

matrix.views.inc in Matrix field 8.2

Same filename and directory in other branches
  1. 7.2 views/matrix.views.inc

Views handlers for matrix fields

File

views/matrix.views.inc
View source
<?php

// $Id: matrix.views.inc,v 1.1.2.1 2011/01/18 10:10:05 aaron1234nz Exp $

/**
 * @file
 * Views handlers for matrix fields
 */

/**
 * Implements hook_field_views_data_alter().
 */
function matrix_field_views_data_alter(&$result, &$field, &$module) {
  if ($module != 'matrix') {
    return;
  }
  $field_name = $field['field_name'];
  $tables = array(
    'field_data_' . $field_name,
  );
  if (isset($result['field_revision_' . $field_name])) {
    $tables[] = 'field_revision_' . $field_name;
  }
  foreach ($tables as $table) {

    // There's no reason to be able to select the 'row' or 'col' value.
    unset($result[$table][$field_name . '_row']);
    unset($result[$table][$field_name . '_col']);

    // Nor does it make sense to sort by the individual matrix values, since the
    // grid is fixed on both axis.
    unset($result[$table][$field_name . '_value']['sort']);
    $result[$table][$field_name]['field']['handler'] = 'matrix_handler_field_field';
    $result[$table][$field_name . '_value']['filter']['handler'] = 'matrix_handler_filter';
  }
}

/**
 * Implements hook_views_handler().
 */
function matrix_views_handlers() {
  return array(
    'info' => array(
      'path' => drupal_get_path('module', 'matrix') . '/views',
    ),
    'handlers' => array(
      'matrix_handler_field_field' => array(
        'parent' => 'views_handler_field_field',
      ),
      'matrix_handler_filter' => array(
        'parent' => 'views_handler_filter_string',
      ),
    ),
  );
}

Functions

Namesort descending Description
matrix_field_views_data_alter Implements hook_field_views_data_alter().
matrix_views_handlers Implements hook_views_handler().