Index: i18nviews/includes/i18nviews_handler_field_term_description.inc =================================================================== --- i18nviews/includes/i18nviews_handler_field_term_description.inc (revision 0) +++ i18nviews/includes/i18nviews_handler_field_term_description.inc (revision 236) @@ -0,0 +1,17 @@ + $value) { + if (isset($value->term_data_description)) { + $tid = (isset($value->term_data_tid)) ? $value->term_data_tid : $value->tid; + $values[$key]->term_data_description = tt('taxonomy:term:'. $tid .':description', $value->term_data_description); + } + } + } +} \ No newline at end of file Property changes on: i18nviews/includes/i18nviews_handler_field_term_description.inc ___________________________________________________________________ Added: svn:keywords + Id Index: i18nviews/includes/i18nviews_handler_argument_term_node_tid.inc =================================================================== --- i18nviews/includes/i18nviews_handler_argument_term_node_tid.inc (revision 0) +++ i18nviews/includes/i18nviews_handler_argument_term_node_tid.inc (revision 236) @@ -0,0 +1,19 @@ +value), '%d')); + + $result = db_query("SELECT name, tid FROM {term_data} WHERE tid IN ($placeholders)", $this->value); + while ($term = db_fetch_object($result)) { + $titles[] = check_plain(tt('taxonomy:term:'. $term->tid .':name', $term->name)); + } + return $titles; + } +} + Property changes on: i18nviews/includes/i18nviews_handler_argument_term_node_tid.inc ___________________________________________________________________ Added: svn:keywords + Id Index: i18nviews/includes/i18nviews.views.inc =================================================================== --- i18nviews/includes/i18nviews.views.inc (revision 190) +++ i18nviews/includes/i18nviews.views.inc (working copy) @@ -17,11 +17,39 @@ function i18nviews_views_data() { */ function i18nviews_views_handlers() { return array( + 'info' => array( + 'path' => drupal_get_path('module', 'i18nviews') . '/includes', + ), 'handlers' => array( 'content_negotiation_filter_handler' => array( 'parent' => 'views_handler_filter', - 'file' => 'includes/content_negotiation_filter_handler.inc' + ), + 'i18nviews_handler_field_taxonomy' => array( + 'parent' => 'views_handler_field_taxonomy', + ), + 'i18nviews_handler_field_term_description' => array( + 'parent' => 'views_handler_field_markup', + ), + 'i18nviews_handler_field_term_node_tid' => array( + 'parent' => 'views_handler_field_term_node_tid', + ), + 'i18nviews_handler_argument_term_node_tid' => array( + 'parent' => 'views_handler_argument_term_node_tid', + ), + 'i18nviews_handler_filter_term_node_tid' => array( + 'parent' => 'views_handler_filter_term_node_tid', ), ), ); } + +/** + * Implemenation of hook_views_data_alter(). + */ +function i18nviews_views_data_alter(&$data) { + $data['term_data']['name']['field']['handler'] = 'i18nviews_handler_field_taxonomy'; + $data['term_data']['description']['field']['handler'] = 'i18nviews_handler_field_term_description'; + $data['term_node']['tid']['field']['handler'] = 'i18nviews_handler_field_term_node_tid'; + $data['term_node']['tid']['argument']['handler'] = 'i18nviews_handler_argument_term_node_tid'; + $data['term_node']['tid']['filter']['handler'] = 'i18nviews_handler_filter_term_node_tid'; +} \ No newline at end of file Index: i18nviews/includes/i18nviews_handler_field_term_node_tid.inc =================================================================== --- i18nviews/includes/i18nviews_handler_field_term_node_tid.inc (revision 0) +++ i18nviews/includes/i18nviews_handler_field_term_node_tid.inc (revision 236) @@ -0,0 +1,40 @@ +field_alias = $this->aliases['vid']; + $vids = array(); + foreach ($values as $result) { + if (!empty($result->{$this->aliases['vid']})) { + $vids[] = $result->{$this->aliases['vid']}; + } + } + + if ($vids) { + $voc = ''; + if (!empty($this->options['limit']) && !empty($this->options['vids'])) { + $voc = " AND td.vid IN (" . implode(', ', array_keys(array_filter($this->options['vids']))) . ")"; + } + + $result = db_query("SELECT tn.vid AS node_vid, td.*, v.name as vocabulary FROM {term_data} td INNER JOIN {term_node} tn ON td.tid = tn.tid INNER JOIN {vocabulary} v ON v.vid = td.vid WHERE tn.vid IN (" . implode(', ', $vids) . ")$voc ORDER BY td.weight, td.name"); + + while ($term = db_fetch_object($result)) { + $name = tt('taxonomy:term:'. $term->tid .':name', $term->name); + $this->items[$term->node_vid][$term->tid]['name'] = check_plain($name); + $this->items[$term->node_vid][$term->tid]['tid'] = $term->tid; + $this->items[$term->node_vid][$term->tid]['vid'] = $term->vid; + $this->items[$term->node_vid][$term->tid]['vocabulary'] = check_plain($term->vocabulary); + + if (!empty($this->options['link_to_taxonomy'])) { + $this->items[$term->node_vid][$term->tid]['make_link'] = TRUE; + $this->items[$term->node_vid][$term->tid]['path'] = taxonomy_term_path($term); + } + } + } + } +} + Property changes on: i18nviews/includes/i18nviews_handler_field_term_node_tid.inc ___________________________________________________________________ Added: svn:keywords + Id Index: i18nviews/includes/i18nviews_handler_field_taxonomy.inc =================================================================== --- i18nviews/includes/i18nviews_handler_field_taxonomy.inc (revision 0) +++ i18nviews/includes/i18nviews_handler_field_taxonomy.inc (revision 236) @@ -0,0 +1,17 @@ + $value) { + if (isset($value->term_data_name)) { + $tid = (isset($value->term_data_tid)) ? $value->term_data_tid : $value->tid; + $values[$key]->term_data_name = tt('taxonomy:term:'. $tid .':name', $value->term_data_name); + } + } + } +} \ No newline at end of file Property changes on: i18nviews/includes/i18nviews_handler_field_taxonomy.inc ___________________________________________________________________ Added: svn:keywords + Id Index: i18nviews/includes/i18nviews_handler_filter_term_node_tid.inc =================================================================== --- i18nviews/includes/i18nviews_handler_filter_term_node_tid.inc (revision 0) +++ i18nviews/includes/i18nviews_handler_filter_term_node_tid.inc (revision 236) @@ -0,0 +1,170 @@ +options['vid']); + if (empty($vocabulary) && $this->options['limit']) { + $form['markup'] = array( + '#prefix' => '