tripal_views_handler_filter_textarea.inc

  1. 2.x tripal_views/views/handlers/tripal_views_handler_filter_textarea.inc
  2. 3.x tripal_chado_views/views/handlers/tripal_views_handler_filter_textarea.inc
  3. 1.x tripal_views/views/handlers/tripal_views_handler_filter_textarea.inc

Contants tripal_views_handler_filter_textarea Filter Handler

File

tripal_views/views/handlers/tripal_views_handler_filter_textarea.inc
View source
  1. <?php
  2. /**
  3. * @file
  4. * Contants tripal_views_handler_filter_textarea Filter Handler
  5. */
  6. /**
  7. * This Handler provides a file upload field by extending the
  8. * views_handler_filter object.
  9. *
  10. * @ingroup tripal_views
  11. */
  12. class tripal_views_handler_filter_textarea extends views_handler_filter {
  13. /**
  14. * {@inheritdoc}
  15. */
  16. function value_form(&$form, &$form_state) {
  17. parent::value_form($form, $form_state);
  18. $this->value_form = array(
  19. '#type' => 'textarea',
  20. '#title' => t('%label', array('%label' => $this->options['expose']['label'])),
  21. '#default_value' => $this->value,
  22. '#multiple' => FALSE,
  23. '#description' => t('Provide search values for %label. Please place each search
  24. item on a separate line or separated by commas.', array('%label' => $this->options['expose']['label'])),
  25. );
  26. $form['value'] = &$this->value_form;
  27. }
  28. /**
  29. * {@inheritdoc}
  30. */
  31. function exposed_form(&$form, &$form_state) {
  32. // don't do anything if the form isn't exposed.
  33. if (empty($this->options['exposed'])) {
  34. return;
  35. }
  36. // rebuild the form elements
  37. $value = $this->options['expose']['identifier'];
  38. $this->value_form($form, $form_state);
  39. $form[$value] = $form['value'];
  40. unset($form[$value]['#title']);
  41. $this->exposed_translate($form[$value], 'value');
  42. if ($value != 'value') {
  43. unset($form['value']);
  44. }
  45. }
  46. /**
  47. * {@inheritdoc}
  48. */
  49. function query() {
  50. // make optional
  51. // if it is not set or empty then don't restrict the query
  52. if (!$this->value) {
  53. return;
  54. }
  55. $this->ensure_my_table();
  56. $field = "$this->table.$this->real_field";
  57. // get the form element value
  58. if (is_array($this->value)) {
  59. $value = $this->value[0];
  60. }
  61. else {
  62. $value = $this->value;
  63. }
  64. // remove extra spaces and new lines
  65. $value = preg_replace("/\s+,/", ",", $value);
  66. $value = preg_replace("/\s+\n/", "\n", $value);
  67. $value = preg_replace("/,\n/", "\n", $value);
  68. $values = preg_split("/[\n,]+/", $value);
  69. $values = array_filter($values);
  70. if (sizeof($values)) {
  71. $operator = 'IN';
  72. }
  73. else {
  74. $operator = '=';
  75. }
  76. if (!empty($values)) {
  77. $this->query->add_where($this->options['group'], $field, $values, $operator);
  78. }
  79. }
  80. }