diff --git a/modules/node.views.inc b/modules/node.views.inc index 777cc32..42a8258 100644 --- a/modules/node.views.inc +++ b/modules/node.views.inc @@ -598,6 +598,19 @@ function node_views_data() { 'handler' => 'views_handler_filter_history_user_timestamp', ), ); + + $data['history']['uid'] = array( + 'title' => t('Uid viewed'), + 'relationship' => array( + 'base' => 'users', + 'base field' => 'uid', + 'title' => t('User viewed'), + 'label' => t('viewed by user'), + 'handler' => 'views_handler_relationship_node_history_user', + 'description' => t('Relate to users via viewed content by the user'), + ), + ); + return $data; } diff --git a/modules/node/views_handler_relationship_node_history_user.inc b/modules/node/views_handler_relationship_node_history_user.inc new file mode 100644 index 0000000..eee48e3 --- /dev/null +++ b/modules/node/views_handler_relationship_node_history_user.inc @@ -0,0 +1,44 @@ +table_alias)) { + if (!method_exists($this->query, 'ensure_table')) { + vpr(t('Ensure my table called but query has no ensure_table method.')); + return; + } + + $def = $this->definition; + unset($def['extra']); + $def['table'] = 'history'; + $def['field'] = 'nid'; + $def['left_table'] = 'node'; + $def['left_field'] = 'nid'; + if (!empty($this->options['required'])) { + $def['type'] = 'INNER'; + } + + if (!empty($def['join_handler']) && class_exists($def['join_handler'])) { + $join = new $def['join_handler']; + } + else { + $join = new views_join(); + } + + $join->definition = $def; + $join->options = $this->options; + $join->construct(); + $join->adjusted = TRUE; + + $this->table_alias = $this->query->ensure_table($this->table, $this->relationship, $join); + } + return $this->table_alias; + } +} diff --git a/views.info b/views.info index b92205f..80498a3 100644 --- a/views.info +++ b/views.info @@ -122,6 +122,7 @@ files[] = modules/node/views_handler_filter_node_access.inc files[] = modules/node/views_handler_filter_node_status.inc files[] = modules/node/views_handler_filter_node_type.inc files[] = modules/node/views_handler_filter_node_uid_revision.inc +files[] = modules/node/views_handler_relationship_node_history_user.inc files[] = modules/node/views_plugin_argument_default_node.inc files[] = modules/node/views_plugin_argument_validate_node.inc files[] = modules/node/views_plugin_row_node_rss.inc