00001 <?php
00007 class views_handler_field_node_translation_link extends views_handler_field {
00008 function construct() {
00009 parent::construct();
00010 $this->additional_fields['nid'] = 'nid';
00011 $this->additional_fields['tnid'] = 'tnid';
00012 $this->additional_fields['title'] = 'title';
00013 $this->additional_fields['language'] = 'language';
00014 }
00015
00016 function query() {
00017 $this->ensure_my_table();
00018 $this->add_additional_fields();
00019 }
00020
00021 function render($values) {
00022 $value = $this->get_value($values, 'tnid');
00023 return $this->render_link($this->sanitize_value($value), $values);
00024 }
00025
00026 function render_link($data, $values) {
00027 global $language;
00028
00029 $tnid = $this->get_value($values, 'tnid');
00030
00031 if ($this->get_value($values, 'language') != $language->language) {
00032 $translations = translation_node_get_translations($tnid);
00033 if (isset($translations[$language->language])) {
00034 $values->{$this->aliases['nid']} = $translations[$language->language]->nid;
00035 $values->{$this->aliases['title']} = $translations[$language->language]->title;
00036 }
00037 }
00038
00039 $this->options['alter']['make_link'] = TRUE;
00040 $this->options['alter']['path'] = "node/" . $this->get_value($values, 'nid');
00041 return $this->get_value($values, 'title');
00042 }
00043 }