views_handler_field_comment_username.inc

  1. 3.x modules/comment/views_handler_field_comment_username.inc
  2. 2.x modules/comment/views_handler_field_comment_username.inc

Definition of views_handler_field_comment_username.

File

modules/comment/views_handler_field_comment_username.inc
View source
  1. <?php
  2. /**
  3. * @file
  4. * Definition of views_handler_field_comment_username.
  5. */
  6. /**
  7. * Field handler to allow linking to a user account or homepage.
  8. *
  9. * @ingroup views_field_handlers
  10. */
  11. class views_handler_field_comment_username extends views_handler_field {
  12. /**
  13. * Override init function to add uid and homepage fields.
  14. */
  15. function init(&$view, &$data) {
  16. parent::init($view, $data);
  17. $this->additional_fields['uid'] = 'uid';
  18. $this->additional_fields['homepage'] = 'homepage';
  19. }
  20. function option_definition() {
  21. $options = parent::option_definition();
  22. $options['link_to_user'] = array('default' => TRUE, 'bool' => TRUE);
  23. return $options;
  24. }
  25. function options_form(&$form, &$form_state) {
  26. $form['link_to_user'] = array(
  27. '#title' => t("Link this field to its user or an author's homepage"),
  28. '#type' => 'checkbox',
  29. '#default_value' => $this->options['link_to_user'],
  30. );
  31. parent::options_form($form, $form_state);
  32. }
  33. function render_link($data, $values) {
  34. if (!empty($this->options['link_to_user'])) {
  35. $account = new stdClass();
  36. $account->uid = $this->get_value($values, 'uid');
  37. $account->name = $this->get_value($values);
  38. $account->homepage = $this->get_value($values, 'homepage');
  39. return theme('username', array(
  40. 'account' => $account
  41. ));
  42. }
  43. else {
  44. return $data;
  45. }
  46. }
  47. function render($values) {
  48. $value = $this->get_value($values);
  49. return $this->render_link($this->sanitize_value($value), $values);
  50. }
  51. }