feedback_handler_field_feedback_link.inc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. /**
  3. * Field handler to present a link to a feedback entry.
  4. */
  5. class feedback_handler_field_feedback_link extends views_handler_field {
  6. function construct() {
  7. parent::construct();
  8. $this->additional_fields['fid'] = 'fid';
  9. }
  10. function option_definition() {
  11. $options = parent::option_definition();
  12. $options['text'] = array('default' => '', 'translatable' => TRUE);
  13. return $options;
  14. }
  15. function options_form(&$form, &$form_state) {
  16. $form['text'] = array(
  17. '#type' => 'textfield',
  18. '#title' => t('Text to display'),
  19. '#default_value' => $this->options['text'],
  20. );
  21. parent::options_form($form, $form_state);
  22. }
  23. function query() {
  24. $this->ensure_my_table();
  25. $this->add_additional_fields();
  26. }
  27. function render($values) {
  28. $value = $this->get_value($values, 'fid');
  29. return $this->render_link($this->sanitize_value($value), $values);
  30. }
  31. function render_link($data, $values) {
  32. $this->options['alter']['make_link'] = TRUE;
  33. $this->options['alter']['path'] = "admin/reports/feedback/$data";
  34. $text = !empty($this->options['text']) ? $this->options['text'] : t('view');
  35. return $text;
  36. }
  37. }