Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions entity_modified.module
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
* module.
*/

module_load_include('inc', 'entity_modified', 'includes/views/entity_modified.views');

/**
* Implements hook_entity_load().
*/
Expand Down Expand Up @@ -202,3 +204,13 @@ function entity_modified_modules_uninstalled($modules) {
->execute();
}
}

/**
* Implements hook_views_api().
*/
function entity_modified_views_api() {
return array(
'api' => 3,
'path' => backdrop_get_path('module', 'entity_modified') . '/includes/views',
);
}
61 changes: 61 additions & 0 deletions includes/views/entity_modified.views.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php
/**
* @file
* Provide views data.
*/

/**
* Implements hook_views_data().
*/
function entity_modified_views_data() {
$data = array();

// The 'group' index will be used as a prefix in the UI for any of this
// table's fields, sort criteria, etc. so it's easy to tell where they came
// from.
$data['entity_modified']['table']['group'] = t('Entity modified');

$data['entity_modified']['modified'] = array(
'title' => t('Date updated'),
'help' => t('The date this entity was modified last.'),
'field' => array(
'handler' => 'views_handler_field_date',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort_date',
),
'filter' => array(
'handler' => 'views_handler_filter_date',
),
);

return $data;
}

/**
* Implements hook_views_data_alter().
*/
function entity_modified_views_data_alter(&$data) {
// Inject our own field if it's not a property of the entity itself.
foreach (entity_get_info() as $entity_type => $entity_info) {
if (isset($entity_info['base table']) && isset($data[$entity_info['base table']]) && !entity_modified_property_name($entity_type)) {
$data[$entity_info['base table']]['entity_modified'] = array(
'title' => t('Date updated'),
'help' => t('The date this entity was last modified.'),
'relationship' => array(
'label' => t('Entity Modified'),
'title' => t('Entity Modified'),
'base' => 'entity_modified',
'base field' => 'entity_id',
// The entity specific properties to use for the join query.
'field' => $entity_info['entity keys']['id'],
'handler' => 'views_handler_relationship',
'extra' => array(
array('field' => 'entity_type', 'value' => $entity_type),
),
),
);
}
}
}