location_handler_field_location_street.inc 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * @file
  4. * Province field handler.
  5. */
  6. class location_handler_field_location_street extends views_handler_field {
  7. function construct() {
  8. parent::construct();
  9. $this->additional_fields = array(
  10. 'additional' => 'additional',
  11. );
  12. }
  13. function option_definition() {
  14. $options = parent::option_definition();
  15. $options['style'] = array('default' => 'both');
  16. return $options;
  17. }
  18. function options_form(&$form, &$form_state) {
  19. parent::options_form($form, $form_state);
  20. $form['style'] = array(
  21. '#title' => t('Display style'),
  22. '#type' => 'select',
  23. '#options' => array(
  24. 'both' => t('Both street and additional'),
  25. 'street' => t('Street only'),
  26. 'additional' => t('Additional only'),
  27. ),
  28. '#default_value' => $this->options['style'],
  29. );
  30. }
  31. function render($values) {
  32. $parts = array();
  33. if ($this->options['style'] != 'additional') {
  34. $parts[] = check_plain($values->{$this->field_alias});
  35. }
  36. if ($this->options['style'] != 'street') {
  37. $additional = trim($values->{$this->aliases['additional']});
  38. if (!empty($additional)) {
  39. $parts[] = check_plain($values->{$this->aliases['additional']});
  40. }
  41. }
  42. // @@@ Better theming?
  43. return implode('<br />', $parts);
  44. }
  45. }