00001 <?php 00002 00008 class views_handler_field_user extends views_handler_field { 00012 function init(&$view, &$data) { 00013 parent::init($view, $data); 00014 if (!empty($this->options['link_to_user'])) { 00015 $this->additional_fields['uid'] = 'uid'; 00016 } 00017 } 00018 00019 function option_definition() { 00020 $options = parent::option_definition(); 00021 $options['link_to_user'] = array('default' => TRUE); 00022 return $options; 00023 } 00024 00028 function options_form(&$form, &$form_state) { 00029 $form['link_to_user'] = array( 00030 '#title' => t('Link this field to its user'), 00031 '#description' => t("Enable to override this field's links."), 00032 '#type' => 'checkbox', 00033 '#default_value' => $this->options['link_to_user'], 00034 ); 00035 parent::options_form($form, $form_state); 00036 } 00037 00038 function render_link($data, $values) { 00039 if (!empty($this->options['link_to_user']) && user_access('access user profiles') && ($uid = $this->get_value($values, 'uid')) && $data !== NULL && $data !== '') { 00040 $this->options['alter']['make_link'] = TRUE; 00041 $this->options['alter']['path'] = "user/" . $uid; 00042 } 00043 return $data; 00044 } 00045 00046 function render($values) { 00047 $value = $this->get_value($values); 00048 return $this->render_link($this->sanitize_value($value), $values); 00049 } 00050 }