Active
Project:
Views Bonus Pack
Version:
6.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
27 Feb 2009 at 02:16 UTC
Updated:
27 Feb 2009 at 02:23 UTC
With a lot help from Earl, I stumbled this together and he suggested aI share it here:
function foo_views_data_alter(&$data) {
if (isset($data['term_node'])) {
$data['term_node']['vid']['title'] = t('Term version ID');
$data['term_node']['vid']['relationship'] = array(
'base' => 'node',
'base field' => 'vid',
'handler' => 'views_handler_relationship',
'label' => t('Terms (vid)'),
);
$data['term_node']['tid']['title'] = t('Term ID');
$data['term_node']['tid']['relationship'] = array(
'base' => 'term_node',
'base field' => 'tid',
'handler' => 'views_handler_relationship',
'label' => t('Terms (tid)'),
);
}
}
If you chain these correctly, you can produce SQL such as
SELECT node.nid AS nid, node.title AS node_title, node.type AS node_type FROM node node LEFT JOIN term_node term_node ON node.vid = term_node.vid INNER JOIN term_node term_node_term_node ON term_node.tid = term_node_term_node.tid INNER JOIN node node_term_node ON term_node_term_node.vid = node_term_node.vid WHERE (node_term_node.nid = %d);
Comments
Comment #1
agentrickardUm. Wait.
hook_views_data_alter()
Where did _that_ come from?
Ref: http://views.doc.logrus.com/group__views__hooks.html