flag_lists_handler_field_list_delete.inc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. // $I$
  3. /**
  4. * @file
  5. * Contains the basic 'list delete' field handler.
  6. */
  7. /**
  8. * Field handler to provide simple renderer that links to the list edit page.
  9. */
  10. class flag_lists_handler_field_list_delete extends views_handler_field {
  11. function construct() {
  12. parent::construct();
  13. $this->additional_fields['fid'] = 'fid';
  14. }
  15. function option_definition() {
  16. $options = parent::option_definition();
  17. $options['text'] = array('default' => '', 'translatable' => TRUE);
  18. return $options;
  19. }
  20. function options_form(&$form, &$form_state) {
  21. parent::options_form($form, $form_state);
  22. $form['text'] = array(
  23. '#type' => 'textfield',
  24. '#title' => t('Text to display'),
  25. '#default_value' => $this->options['text'],
  26. );
  27. }
  28. function query() {
  29. $this->ensure_my_table();
  30. $this->add_additional_fields();
  31. }
  32. function render($values) {
  33. $fid = $values->{$this->aliases['fid']};
  34. // Check delete access.
  35. if (!flag_lists_is_owner('delete', $fid)) {
  36. return;
  37. }
  38. $text = !empty($this->options['text']) ? $this->options['text'] : t('delete');
  39. return l($text, "flags/lists/delete/" . $fid, array('query' => drupal_get_destination()));
  40. }
  41. }