• Main Page
  • Related Pages
  • Modules
  • Classes
  • Files
  • File List
  • File Members

modules/node/views_handler_field_node_revision.inc

00001 <?php
00011 class views_handler_field_node_revision extends views_handler_field_node {
00012   function init(&$view, &$options) {
00013     parent::init($view, $options);
00014     if (!empty($this->options['link_to_node_revision'])) {
00015       $this->additional_fields['vid'] = 'vid';
00016       $this->additional_fields['nid'] = 'nid';
00017       if (module_exists('translation')) {
00018         $this->additional_fields['language'] = array('table' => 'node', 'field' => 'language');
00019       }
00020     }
00021   }
00022   function option_definition() {
00023     $options = parent::option_definition();
00024     $options['link_to_node_revision'] = array('default' => FALSE);
00025     return $options;
00026   }
00027 
00031   function options_form(&$form, &$form_state) {
00032     $form['link_to_node_revision'] = array(
00033       '#title' => t('Link this field to its content revision'),
00034       '#description' => t('This will override any other link you have set.'),
00035       '#type' => 'checkbox',
00036       '#default_value' => !empty($this->options['link_to_node_revision']),
00037     );
00038     parent::options_form($form, $form_state);
00039   }
00040 
00046   function render_link($data, $values) {
00047     if (!empty($this->options['link_to_node_revision']) && $data !== NULL && $data !== '') {
00048       $this->options['alter']['make_link'] = TRUE;
00049       $nid = $this->get_value($values, 'nid');
00050       $vid = $this->get_value($values, 'vid');
00051       $this->options['alter']['path'] = "node/" . $nid . '/revisions/' . $vid . '/view';
00052       if (module_exists('translation')) {
00053         $language = $this->get_value($values, 'language');
00054         $languages = language_list();
00055         if (isset($languages[$language])) {
00056           $this->options['alter']['language'] = $languages[$language];
00057         }
00058       }
00059     }
00060     else {
00061       return parent::render_link($data, $values);
00062     }
00063     return $data;
00064   }
00065 }

Generated on Sun Feb 26 2012 12:52:51 for Views by  doxygen 1.7.1