You are here

recommender.views.inc in Recommender API 6.3

recommender.views.inc Views support for recommender tables

File

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

/**
 * @file recommender.views.inc
 * Views support for recommender tables
 */

/**
 * Implements hook_views_handlers().
 * This is not needed in Views 3.
 */
function recommender_views_handlers() {
  return array(
    'info' => array(
      'path' => drupal_get_path('module', 'recommender') . '/views',
    ),
    'handlers' => array(
      'views_handler_filter_recommender_app_id' => array(
        'parent' => 'views_handler_filter_in_operator',
      ),
      'views_handler_filter_recommender_app_name' => array(
        'parent' => 'views_handler_filter_in_operator',
      ),
      'views_handler_relationship_recommender_entity_type' => array(
        'parent' => 'views_handler_relationship',
      ),
    ),
  );
}

/**
 * Implements hook_views_data().
 */
function recommender_views_data() {
  $data = array(
    // for the recommender_app table
    'recommender_app' => array(
      'table' => array(
        'group' => t('Recommender Application'),
        'join' => array(
          'recommender_similarity' => array(
            'left_field' => 'app_id',
            'field' => 'id',
            'type' => 'inner',
          ),
          'recommender_prediction' => array(
            'left_field' => 'app_id',
            'field' => 'id',
            'type' => 'inner',
          ),
        ),
      ),
      'name' => array(
        'title' => t('Application name'),
        'help' => t('Recommender application used to provide similarity/prediction data. Filtering is a little slower than using application id.'),
        'filter' => array(
          'handler' => 'views_handler_filter_recommender_app_name',
        ),
      ),
    ),
    // for the recommender_similarity table
    'recommender_similarity' => array(
      'table' => array(
        'group' => t('Recommender Similarity'),
        'help' => t('Recommender similarity data between node-node and user-user'),
        /*'join' => array(
            'node' => array(
              'left_field' => 'nid',
              'field' => 'target_eid',
              'type' => 'inner',
              //'handler'
            ),
            'users' => array(
              'left_field' => 'uid',
              'field' => 'target_eid',
              'type' => 'inner',
            ),
          ),*/

        // [#1191904] use base tables
        'base' => array(
          'field' => 'id',
          'title' => t('Recommender Similarity'),
          'help' => t('Recommender similarity data between node-node and user-user'),
        ),
      ),
      'app_id' => array(
        'title' => t('Application ID'),
        'help' => t('Recommender application used to provide similarity data'),
        'filter' => array(
          'handler' => 'views_handler_filter_recommender_app_id',
        ),
      ),
      'source_eid' => array(
        'title' => t('Entity ID (Source)'),
        'help' => t('The entity ID (node, user, etc) upon which this similarity is for.'),
        'argument' => array(
          'handler' => 'views_handler_argument_numeric',
        ),
      ),
      // // [#1191904] use base tables
      'target_eid' => array(
        'title' => t('Entity ID (Target)'),
        'help' => t('The entity ID (node, user, etc) similar to the source entity.'),
        'relationship' => array(
          'base' => 'node',
          'base field' => 'nid',
          'handler' => 'views_handler_relationship_recommender_entity_type',
          'label' => t('Recommended entity (by similarity)'),
        ),
      ),
      'score' => array(
        'title' => t('Similarity score'),
        'help' => t('Score of how similar the source entity and the target entity are.'),
        'field' => array(
          'handler' => 'views_handler_field_numeric',
          'click sortable' => TRUE,
        ),
        'filter' => array(
          'handler' => 'views_handler_filter_numeric',
        ),
        'sort' => array(
          'handler' => 'views_handler_sort',
        ),
      ),
      'updated' => array(
        'title' => t('Updated'),
        'help' => t('Last updated timestamp of this similarity score.'),
        'field' => array(
          'handler' => 'views_handler_field_date',
          'click sortable' => TRUE,
        ),
        'filter' => array(
          'handler' => 'views_handler_filter_date',
        ),
        'sort' => array(
          'handler' => 'views_handler_sort_date',
        ),
      ),
    ),
    // for the recommender_prediction table
    'recommender_prediction' => array(
      'table' => array(
        'group' => t('Recommender Prediction'),
        'help' => t('Recommender prediction data between user-node.'),
        /*'join' => array(
            'node' => array(
              'left_field' => 'nid',
              'field' => 'target_eid',
              'type' => 'inner',
            ),
            'users' => array(
              'left_field' => 'uid',
              'field' => 'target_eid',
              'type' => 'inner',
            ),
          ),*/

        // [#1191904] use base tables
        'base' => array(
          'field' => 'id',
          'title' => t('Recommender Prediction'),
          'help' => t('Recommender prediction data for node-user pairs.'),
        ),
      ),
      'app_id' => array(
        'title' => t('Application ID'),
        'help' => t('Recommender application used to provide prediction data'),
        'filter' => array(
          'handler' => 'views_handler_filter_recommender_app_id',
        ),
      ),
      'source_eid' => array(
        'title' => t('Entity ID (Source)'),
        'help' => t('The entity ID (node, user, etc) upon which this prediction is for.'),
        'argument' => array(
          'handler' => 'views_handler_argument_numeric',
        ),
      ),
      // [#1191904] use base tables
      'target_eid' => array(
        'title' => t('Entity ID (Target)'),
        'help' => t('The entity ID (node, user, etc) recommended to the source entity.'),
        'relationship' => array(
          'base' => 'node',
          'base field' => 'nid',
          'handler' => 'views_handler_relationship_recommender_entity_type',
          'label' => t('Recommended entity (by prediction)'),
        ),
      ),
      'score' => array(
        'title' => t('Prediction score'),
        'help' => t('Score of how confident to recommend the target entity to the source entity'),
        'field' => array(
          'handler' => 'views_handler_field_numeric',
          'click sortable' => TRUE,
        ),
        'filter' => array(
          'handler' => 'views_handler_filter_numeric',
        ),
        'sort' => array(
          'handler' => 'views_handler_sort',
        ),
      ),
      'updated' => array(
        'title' => t('Updated'),
        'help' => t('Last updated timestamp of this prediction score.'),
        'field' => array(
          'handler' => 'views_handler_field_date',
          'click sortable' => TRUE,
        ),
        'filter' => array(
          'handler' => 'views_handler_filter_date',
        ),
        'sort' => array(
          'handler' => 'views_handler_sort_date',
        ),
      ),
    ),
  );
  return $data;
}

Functions

Namesort descending Description
recommender_views_data Implements hook_views_data().
recommender_views_handlers Implements hook_views_handlers(). This is not needed in Views 3.