entityreference_view_widget.views.inc in Entity Reference View Widget 7.2
File
views/entityreference_view_widget.views.inc
View source
<?php
function entityreference_view_widget_views_data_alter(&$data) {
$tables = array();
$entity_info = entity_get_info();
foreach ($entity_info as $info) {
if (isset($info['base table'])) {
$tables[$info['base table']] = $info['entity keys']['id'];
}
}
if (module_exists('search_api_views')) {
foreach (search_api_index_load_multiple(FALSE) as $index) {
$tables['search_api_index_' . $index->machine_name] = 'search_api_id';
}
}
foreach ($tables as $table => $name) {
if (isset($data[$table]['table'])) {
$data[$table]['entityreference_view_widget'] = array(
'title' => $data[$table]['table']['group'],
'group' => t('Entity Reference View Widget Checkbox'),
'help' => t('Provide a checkbox to select the row for an entity reference.'),
'real field' => $name,
'field' => array(
'handler' => 'entityreference_view_widget_handler_field_checkbox',
'click sortable' => FALSE,
),
);
$efq = 'efq_' . $table;
if (isset($data[$efq]['table'])) {
$data[$efq]['entityreference_view_widget'] = $data[$table]['entityreference_view_widget'];
}
}
}
}
function entityreference_view_widget_views_plugins() {
$entity_tables = array();
$tables = views_fetch_data();
foreach ($tables as $table_name => $table) {
if (!empty($table['table']['entity type'])) {
$entity_tables[] = $table_name;
}
}
$plugins = array(
'display' => array(
'entityreference_view_widget' => array(
'title' => t('Entity Reference View Widget'),
'help' => t('Selects referenceable entities for an entity reference view widget.'),
'handler' => 'entityreference_view_widget_plugin_display',
'use ajax' => TRUE,
'use pager' => TRUE,
'use more' => FALSE,
'accept attachments' => FALSE,
'theme' => 'views_view',
'base' => $entity_tables,
'entityreference view display' => TRUE,
),
),
);
return $plugins;
}