<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.28.0">
</HEAD>
<BODY>
<BR>
Hi Adam<BR>
Have you tried<BR>
$data['term_node']['tid_purpose'] = array(<BR>
&nbsp; 'real field' =&gt; 'tid',<BR>
....<BR>
<BR>
This tops the 
<BLOCKQUOTE TYPE=CITE>
<PRE>
    'group' =&gt; t('Taxonomy'),
    'title' =&gt; t('Term ID by Purpose'),
    'help' =&gt; t('The taxonomy term id, restricted by vocabulary purpose.'),
    'filter' =&gt; array(
      'handler' =&gt; 'og_vocab_purpose_handler_filter_term_node_tid',
      'hierarchy ta
</PRE>
</BLOCKQUOTE>
<BR>
<BR>
On Thu, 2010-07-15 at 19:49 -0700, Adam B. Ross wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
I am trying to dive into Views Plugin writing, and I suspect I've hit
a deep end.

I'm working on a module which builds on OG Vocabularies, with the aim
of being able to assign a given group vocabulary to a particular
purpose for that group. For example, you could define a &quot;Waterfall&quot;
group vocabulary as a project management field for the group, and in a
different group, use an &quot;Agile&quot; group vocabulary.

As part of my use case, I need to be able to create an Exposed Filter
that will make use of whichever group Vocabulary is assigned to the
Purpose configured in the View itself. I am having trouble wrapping my
head around how to do this.

Using the Taxonomy TID filter, you can select a vocabulary and an
interface widget. I want to select a Purpose and an interface widget,
have it do nothing except as an exposed filter, and then a View
displayed in a given group will route it's widget to the configured
vocabulary.

(Still working out how to describe this functionality.)

At this point, I'm defining my handler like so:

function og_vocab_purpose_views_data_alter(&amp;$data) {
  // This handler is dependent on Spaces OG.
  if (!module_exists('spaces_og')) {
    return array();
  }
  $data['term_node']['tid_purpose'] = array(
    'group' =&gt; t('Taxonomy'),
    'title' =&gt; t('Term ID by Purpose'),
    'help' =&gt; t('The taxonomy term id, restricted by vocabulary purpose.'),
    'filter' =&gt; array(
      'handler' =&gt; 'og_vocab_purpose_handler_filter_term_node_tid',
      'hierarchy table' =&gt; 'term_hierarchy',
      'numeric' =&gt; TRUE,
      'skip base' =&gt; 'term_data',
      'allow empty' =&gt; TRUE,
    ),
  );
}

But of course, it then tries to use tid_purpose as an actual field.
Can't use &quot;tid&quot; as that's already taken...

Any pointers on an approach, documentation, or modules with similar
functionality would be greatly appreciated.
</PRE>
</BLOCKQUOTE>
<BR>
</BODY>
</HTML>