class ProximityField in Geolocation Field 8
Same name and namespace in other branches
- 8.3 src/Plugin/views/field/ProximityField.php \Drupal\geolocation\Plugin\views\field\ProximityField
- 8.2 src/Plugin/views/field/ProximityField.php \Drupal\geolocation\Plugin\views\field\ProximityField
Field handler for geolocaiton field.
Plugin annotation
@ViewsField("geolocation_field_proximity");
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface
- class \Drupal\views\Plugin\views\HandlerBase implements ViewsHandlerInterface
- class \Drupal\views\Plugin\views\field\FieldPluginBase implements FieldHandlerInterface
- class \Drupal\views\Plugin\views\field\NumericField
- class \Drupal\geolocation\Plugin\views\field\ProximityField implements ContainerFactoryPluginInterface
- class \Drupal\views\Plugin\views\field\NumericField
- class \Drupal\views\Plugin\views\field\FieldPluginBase implements FieldHandlerInterface
- class \Drupal\views\Plugin\views\HandlerBase implements ViewsHandlerInterface
- class \Drupal\views\Plugin\views\PluginBase implements DependentPluginInterface, ContainerFactoryPluginInterface, TrustedCallbackInterface, ViewsPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of ProximityField
File
- src/
Plugin/ views/ field/ ProximityField.php, line 20
Namespace
Drupal\geolocation\Plugin\views\fieldView source
class ProximityField extends NumericField implements ContainerFactoryPluginInterface {
/**
* The GeolocationCore object.
*
* @var \Drupal\geolocation\GeolocationCore
*/
protected $geolocationCore;
/**
* Constructs a Handler object.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin_id for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\geolocation\GeolocationCore $geolocation_core
* The GeolocationCore object.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, GeolocationCore $geolocation_core) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->geolocationCore = $geolocation_core;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
// Make phpcs happy.
/** @var \Drupal\geolocation\GeolocationCore $geolocation_core */
$geolocation_core = $container
->get('geolocation.core');
return new static($configuration, $plugin_id, $plugin_definition, $geolocation_core);
}
/**
* {@inheritdoc}
*/
protected function defineOptions() {
// Add source, lat, lng and filter.
return [
'proximity_source' => [
'default' => 'direct_input',
],
'proximity_lat' => [
'default' => '',
],
'proximity_lng' => [
'default' => '',
],
'proximity_units' => [
'default' => 'km',
],
'proximity_filter' => [
'default' => '',
],
'proximity_argument' => [
'default' => '',
],
'entity_id_argument' => [
'default' => '',
],
'boundary_filter' => [
'default' => '',
],
'proximity_geocoder' => [
'default' => FALSE,
],
'proximity_geocoder_plugin_settings' => [
'default' => [
'plugin_id' => '',
'settings' => [],
],
],
] + parent::defineOptions();
}
/**
* {@inheritdoc}
*/
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
// Add the proximity field group.
$form['proximity_group'] = [
'#type' => 'fieldset',
'#title' => $this
->t('Proximity Settings'),
];
$form['proximity_source'] = [
'#type' => 'select',
'#title' => $this
->t('Select the source type.'),
'#description' => $this
->t('To calculate proximity we need a starting point to compare the field value to. Select where to get the start location.'),
'#default_value' => $this->options['proximity_source'],
'#fieldset' => 'proximity_group',
'#options' => [
'direct_input' => $this
->t('Static Values'),
'user_input' => $this
->t('User input'),
],
];
/*
* Direct input form elements.
*/
$form['proximity_lat'] = [
'#type' => 'textfield',
'#title' => $this
->t('Latitude'),
'#empty_value' => '',
'#default_value' => $this->options['proximity_lat'],
'#maxlength' => 255,
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'select[name="options[proximity_source]"]' => [
'value' => 'direct_input',
],
],
],
];
$form['proximity_lng'] = [
'#type' => 'textfield',
'#title' => $this
->t('Longitude'),
'#empty_value' => '',
'#default_value' => $this->options['proximity_lng'],
'#maxlength' => 255,
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'select[name="options[proximity_source]"]' => [
'value' => 'direct_input',
],
],
],
];
$form['proximity_units'] = [
'#type' => 'select',
'#title' => $this
->t('Units'),
'#default_value' => !empty($this->options['proximity_units']) ? $this->options['proximity_units'] : '',
'#weight' => 40,
'#fieldset' => 'proximity_group',
'#options' => [
'mile' => $this
->t('Miles'),
'km' => $this
->t('Kilometers'),
],
'#states' => [
'visible' => [
[
[
'select[name="options[proximity_source]"]' => [
'value' => 'direct_input',
],
],
'or',
[
'select[name="options[proximity_source]"]' => [
'value' => 'boundary_filter',
],
],
'or',
[
'select[name="options[proximity_source]"]' => [
'value' => 'entity_id_argument',
],
],
'or',
[
'select[name="options[proximity_source]"]' => [
'value' => 'user_input',
],
],
],
],
],
];
$geocoder_definitions = $this->geolocationCore
->getGeocoderManager()
->getLocationCapableGeocoders();
if ($geocoder_definitions) {
$form['proximity_geocoder'] = [
'#type' => 'checkbox',
'#default_value' => $this->options['proximity_geocoder'],
'#title' => $this
->t('Use Geocoder for latitude/longitude input'),
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'select[name="options[proximity_source]"]' => [
'value' => 'user_input',
],
],
],
];
$geocoder_options = [];
foreach ($geocoder_definitions as $id => $definition) {
$geocoder_options[$id] = $definition['name'];
}
$form['proximity_geocoder_plugin_settings'] = [
'#type' => 'container',
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'input[name="options[proximity_geocoder]"]' => [
'checked' => TRUE,
],
'select[name="options[proximity_source]"]' => [
'value' => 'user_input',
],
],
],
];
$geocoder_container =& $form['proximity_geocoder_plugin_settings'];
$geocoder_container['plugin_id'] = [
'#type' => 'select',
'#options' => $geocoder_options,
'#title' => $this
->t('Geocoder plugin'),
'#default_value' => $this->options['proximity_geocoder_plugin_settings']['plugin_id'],
'#ajax' => [
'callback' => [
get_class($this->geolocationCore
->getGeocoderManager()),
'addGeocoderSettingsFormAjax',
],
'wrapper' => 'geocoder-plugin-settings',
'effect' => 'fade',
],
];
if (!empty($this->options['proximity_geocoder_plugin_settings']['plugin_id'])) {
$geocoder_plugin = $this->geolocationCore
->getGeocoderManager()
->getGeocoder($this->options['proximity_geocoder_plugin_settings']['plugin_id'], $this->options['proximity_geocoder_plugin_settings']['settings']);
}
elseif (current(array_keys($geocoder_options))) {
$geocoder_plugin = $this->geolocationCore
->getGeocoderManager()
->getGeocoder(current(array_keys($geocoder_options)));
}
if (!empty($geocoder_plugin)) {
$geocoder_settings_form = $geocoder_plugin
->getOptionsForm();
if ($geocoder_settings_form) {
$geocoder_container['settings'] = $geocoder_settings_form;
}
}
if (empty($geocoder_container['settings'])) {
$geocoder_container['settings'] = [
'#type' => 'html_tag',
'#tag' => 'span',
'#value' => $this
->t("No settings available."),
];
}
$geocoder_container['settings'] = array_replace_recursive($geocoder_container['settings'], [
'#flatten' => TRUE,
'#prefix' => '<div id="geocoder-plugin-settings">',
'#suffix' => '</div>',
]);
}
/*
* Available proximity filters form elements.
*/
$proximity_filters = [];
/** @var \Drupal\views\Plugin\views\filter\FilterPluginBase $filter */
foreach ($this->displayHandler
->getHandlers('filter') as $delta => $filter) {
if (is_a($filter, '\\Drupal\\geolocation\\Plugin\\views\\filter\\ProximityFilter')) {
$proximity_filters[$delta] = $filter
->adminLabel();
}
}
if (!empty($proximity_filters)) {
$form['proximity_filter'] = [
'#type' => 'select',
'#title' => $this
->t('Select filter.'),
'#description' => $this
->t('Select the filter to use as the starting point for calculating proximity.'),
'#options' => $proximity_filters,
'#default_value' => $this->options['proximity_filter'],
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'select[name="options[proximity_source]"]' => [
'value' => 'filter',
],
],
],
];
$form['proximity_source']['#options']['filter'] = $this
->t('Proximity Filter');
}
/*
* Proximity contextual filter form elements.
*/
$proximity_arguments = [];
/** @var \Drupal\views\Plugin\views\argument\ArgumentPluginBase $argument */
foreach ($this->displayHandler
->getHandlers('argument') as $delta => $argument) {
if ($argument
->getPluginId() === 'geolocation_argument_proximity') {
$proximity_arguments[$delta] = $argument
->adminLabel();
}
}
if (!empty($proximity_arguments)) {
$form['proximity_argument'] = [
'#type' => 'select',
'#title' => $this
->t('Select contextual filter (argument).'),
'#description' => $this
->t('Select the contextual filter (argument) to use as the starting point for calculating proximity.'),
'#options' => $proximity_arguments,
'#default_value' => $this->options['proximity_argument'],
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'select[name="options[proximity_source]"]' => [
'value' => 'argument',
],
],
],
];
$form['proximity_source']['#options']['argument'] = $this
->t('Proximity Contextual Filter');
}
/*
* Available boundary filters form elements.
*/
$boundary_filters = [];
/** @var \Drupal\views\Plugin\views\filter\FilterPluginBase $filter */
foreach ($this->displayHandler
->getHandlers('filter') as $delta => $filter) {
if (is_a($filter, '\\Drupal\\geolocation\\Plugin\\views\\filter\\BoundaryFilter')) {
$boundary_filters[$delta] = $filter
->adminLabel();
}
}
if (!empty($boundary_filters)) {
$form['boundary_filter'] = [
'#type' => 'select',
'#title' => $this
->t('Select filter.'),
'#description' => $this
->t('Select the boundary filter to use as the starting point for calculating proximity.'),
'#options' => $boundary_filters,
'#default_value' => $this->options['boundary_filter'],
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'select[name="options[proximity_source]"]' => [
'value' => 'boundary_filter',
],
],
],
];
$form['proximity_source']['#options']['boundary_filter'] = $this
->t('Boundary Filter');
}
/*
* Entity ID contextual filter form elements.
*/
$entity_id_arguments = [];
/** @var \Drupal\views\Plugin\views\argument\ArgumentPluginBase $argument */
foreach ($this->displayHandler
->getHandlers('argument') as $delta => $argument) {
$entity_id_arguments[$delta] = $argument
->adminLabel();
}
$entity_type_label = \Drupal::entityTypeManager()
->getDefinition($this
->getEntityType())
->getLabel();
if (!empty($entity_id_arguments)) {
$form['entity_id_argument'] = [
'#type' => 'select',
'#title' => $this
->t('Select a contextual filter returning the @entity_type ID to base proximity on.', [
'@entity_type' => $entity_type_label,
]),
'#description' => $this
->t('The value of the @field_name field of this @entity_type will be used as center for distance values.', [
'@entity_type' => $entity_type_label,
'@field_name' => $this->field,
]),
'#options' => $entity_id_arguments,
'#default_value' => $this->options['entity_id_argument'],
'#fieldset' => 'proximity_group',
'#states' => [
'visible' => [
'select[name="options[proximity_source]"]' => [
'value' => 'entity_id_argument',
],
],
],
];
$form['proximity_source']['#options']['entity_id_argument'] = $this
->t('Entity ID Contextual Filter');
}
parent::buildOptionsForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function query() {
/** @var \Drupal\views\Plugin\views\query\Sql $query */
$query = $this->query;
switch ($this->options['proximity_source']) {
case 'user_input':
$latitude = $this->view
->getRequest()
->get('proximity_lat', '');
$longitude = $this->view
->getRequest()
->get('proximity_lng', '');
$units = $this->options['proximity_units'];
break;
case 'filter':
/** @var \Drupal\geolocation\Plugin\views\filter\ProximityFilter $filter */
$filter = $this->view->filter[$this->options['proximity_filter']];
$latitude = $filter
->getLatitudeValue();
$longitude = $filter
->getLongitudeValue();
$units = $filter
->getProximityUnit();
break;
case 'boundary_filter':
$filter = $this->view->filter[$this->options['boundary_filter']];
// See documentation at
// http://tubalmartin.github.io/spherical-geometry-php/#LatLngBounds
$latitude = ($filter->value['lat_south_west'] + $filter->value['lat_north_east']) / 2;
$longitude = ($filter->value['lng_south_west'] + $filter->value['lng_north_east']) / 2;
if ($filter->value['lng_south_west'] > $filter->value['lng_north_east']) {
$longitude = $longitude == 0 ? 180 : fmod(fmod($longitude + 180 - -180, 360) + 360, 360) + -180;
}
$units = $this->options['proximity_units'];
break;
case 'argument':
/** @var \Drupal\geolocation\Plugin\views\argument\ProximityArgument $argument */
$argument = $this->view->argument[$this->options['proximity_argument']];
$values = $argument
->getParsedReferenceLocation();
$latitude = $values['lat'];
$longitude = $values['lng'];
$units = $values['units'];
break;
case 'entity_id_argument':
$argument = $this->view->argument[$this->options['entity_id_argument']];
if (empty($argument)) {
return;
}
$entity_id = $argument
->getValue();
if (!ctype_digit($entity_id)) {
return;
}
/** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
$entity = \Drupal::entityTypeManager()
->getStorage($this
->getEntityType())
->load($entity_id);
if (!$entity || !$entity
->hasField($this->realField)) {
return;
}
$field = $entity
->get($this->realField);
if (empty($field)) {
return;
}
$values = $field
->getValue();
if (empty($values)) {
return;
}
$values = reset($values);
$latitude = $values['lat'];
$longitude = $values['lng'];
$units = $this->options['proximity_units'];
break;
default:
$latitude = $this->options['proximity_lat'];
$longitude = $this->options['proximity_lng'];
$units = $this->options['proximity_units'];
}
if (!is_numeric($latitude) || !is_numeric($longitude)) {
return;
}
// Get the earth radius from the units.
$earth_radius = $units === 'mile' ? GeolocationCore::EARTH_RADIUS_MILE : GeolocationCore::EARTH_RADIUS_KM;
// Build the query expression.
$expression = $this->geolocationCore
->getProximityQueryFragment($this
->ensureMyTable(), $this->realField, $latitude, $longitude, $earth_radius);
// Get a placeholder for this query and save the field_alias for it.
// Remove the initial ':' from the placeholder and avoid collision with
// original field name.
$this->field_alias = $query
->addField(NULL, $expression, substr($this
->placeholder(), 1));
}
/**
* Form constructor for the user input form.
*
* @param array $form
* An associative array containing the structure of the form.
* @param \Drupal\Core\Form\FormStateInterface $form_state
* The current state of the form.
*/
public function viewsForm(array &$form, FormStateInterface $form_state) {
if ($this->options['proximity_source'] != 'user_input') {
unset($form['actions']);
return;
}
$form['#cache']['max-age'] = 0;
$form['#method'] = 'GET';
$form['#attributes']['class'][] = 'geolocation-views-proximity-field';
$form['proximity_lat'] = [
'#type' => 'textfield',
'#title' => $this
->t('Latitude'),
'#empty_value' => '',
'#default_value' => $this->view
->getRequest()
->get('proximity_lat', ''),
'#maxlength' => 255,
'#weight' => -1,
];
$form['proximity_lng'] = [
'#type' => 'textfield',
'#title' => $this
->t('Longitude'),
'#empty_value' => '',
'#default_value' => $this->view
->getRequest()
->get('proximity_lng', ''),
'#maxlength' => 255,
'#weight' => -1,
];
if ($this->options['proximity_geocoder'] && !empty($this->options['proximity_geocoder_plugin_settings'])) {
$geocoder_configuration = $this->options['proximity_geocoder_plugin_settings']['settings'];
$geocoder_configuration['label'] = $this
->t('Address');
/** @var \Drupal\geolocation\GeocoderInterface $geocoder_plugin */
$geocoder_plugin = $this->geolocationCore
->getGeocoderManager()
->getGeocoder($this->options['proximity_geocoder_plugin_settings']['plugin_id'], $geocoder_configuration);
if (empty($geocoder_plugin)) {
return;
}
$form['proximity_lat']['#type'] = 'hidden';
$form['proximity_lng']['#type'] = 'hidden';
$geocoder_plugin
->formAttachGeocoder($form, 'views_field_geocoder');
$form = array_merge_recursive($form, [
'#attached' => [
'library' => [
'geolocation/geolocation.views.field.geocoder',
],
],
]);
}
$form['actions']['submit']['#value'] = $this
->t('Calculate proximity');
// #weight will be stripped from 'output' in preRender callback.
// Offset negatively to compensate.
foreach (Element::children($form) as $key) {
if (isset($form[$key]['#weight'])) {
$form[$key]['#weight'] = $form[$key]['#weight'] - 2;
}
else {
$form[$key]['#weight'] = -2;
}
}
$form['actions']['#weight'] = -1;
}
/**
* {@inheritdoc}
*/
public function render(ResultRow $row) {
// Remove once https://www.drupal.org/node/1232920 lands.
$value = $this
->getValue($row);
// Hiding should happen before rounding or adding prefix/suffix.
if ($this->options['hide_empty'] && empty($value) && ($value !== 0 || $this->options['empty_zero'])) {
return '';
}
return parent::render($row);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FieldPluginBase:: |
public | property | Stores additional fields which get added to the query. | |
FieldPluginBase:: |
public | property | ||
FieldPluginBase:: |
public | property | ||
FieldPluginBase:: |
protected | property | Keeps track of the last render index. | |
FieldPluginBase:: |
protected | property | The link generator. | |
FieldPluginBase:: |
public | property | The field value prior to any rewriting. | |
FieldPluginBase:: |
protected | property |
Stores the render API renderer. Overrides PluginBase:: |
1 |
FieldPluginBase:: |
protected | function | Add 'additional' fields to the query. | |
FieldPluginBase:: |
protected | function | Add any special tokens this field might use for itself. | 4 |
FieldPluginBase:: |
public | function |
Return a string representing this handler's name in the UI. Overrides HandlerBase:: |
|
FieldPluginBase:: |
public | function |
Provide extra data to the administration form Overrides HandlerBase:: |
|
FieldPluginBase:: |
public | function |
Renders a field using advanced settings. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
protected | function | Determine if this field can allow advanced rendering. | |
FieldPluginBase:: |
public | function |
Adds an ORDER BY clause to the query for click sort columns. Overrides FieldHandlerInterface:: |
1 |
FieldPluginBase:: |
public | function |
Determines if this field is click sortable. Overrides FieldHandlerInterface:: |
5 |
FieldPluginBase:: |
protected | function | Document any special tokens this field might use for itself. | 3 |
FieldPluginBase:: |
public | function |
Returns the class of the field. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Returns the class of the field's label. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Returns an HTML element for the label based upon the field's element type. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Returns an HTML element based upon the field's element type. Overrides FieldHandlerInterface:: |
1 |
FieldPluginBase:: |
public | function |
Returns the class of the field's wrapper. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Returns an HTML element for the wrapper based upon the field's element type. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Provides a list of elements valid for field HTML. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Gets the entity matching the current row and relationship. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
protected | function | Returns a token placeholder for the current field. | |
FieldPluginBase:: |
protected | function | Returns all field labels of fields before this field. | |
FieldPluginBase:: |
protected | function |
Returns the render API renderer. Overrides PluginBase:: |
|
FieldPluginBase:: |
public | function |
Gets the 'render' tokens to use for advanced rendering. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
protected | function | Recursive function to add replacements for nested query string parameters. | |
FieldPluginBase:: |
public | function |
Gets the value that's supposed to be rendered. Overrides FieldHandlerInterface:: |
2 |
FieldPluginBase:: |
public | function |
Initialize the plugin. Overrides HandlerBase:: |
14 |
FieldPluginBase:: |
public | function |
Checks if a field value is empty. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Gets this field's label. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
protected | function | Gets the link generator. | |
FieldPluginBase:: |
public | function |
Runs after every field has been rendered. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Runs before any fields are rendered. Overrides FieldHandlerInterface:: |
10 |
FieldPluginBase:: |
protected | function | Render this field as user-defined altered text. | |
FieldPluginBase:: |
protected | function | Render this field as a link, with the info from a fieldset set by the user. | |
FieldPluginBase:: |
public | function |
Performs an advanced text render for the item. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
protected | function | Trims the field down to the specified length. | |
FieldPluginBase:: |
constant | Indicator of the renderText() method for rendering the whole element. (if no render_item() method is available). | ||
FieldPluginBase:: |
constant | Indicator of the renderText() method for rendering the empty text. | ||
FieldPluginBase:: |
constant | Indicator of the renderText() method for rendering a single item. (If no render_item() is present). | ||
FieldPluginBase:: |
public | function |
Passes values to drupal_render() using $this->themeFunctions() as #theme. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public | function |
Provide a full list of possible theme templates used by this style. Overrides PluginBase:: |
|
FieldPluginBase:: |
public | function |
Replaces a value with tokens from the last field. Overrides FieldHandlerInterface:: |
|
FieldPluginBase:: |
public static | function | Trims the field down to the specified length. | |
FieldPluginBase:: |
public | function |
Determines if this field will be available as an option to group the result
by in the style settings. Overrides FieldHandlerInterface:: |
|
HandlerBase:: |
public | property | With field you can override the realField if the real field is not set. | |
HandlerBase:: |
protected | property | The module handler. | 3 |
HandlerBase:: |
public | property | Where the $query object will reside: | 7 |
HandlerBase:: |
public | property | The actual field in the database table, maybe different on other kind of query plugins/special handlers. | |
HandlerBase:: |
public | property | The relationship used for this field. | |
HandlerBase:: |
public | property | The table this handler is attached to. | |
HandlerBase:: |
public | property | The alias of the table of this handler which is used in the query. | |
HandlerBase:: |
protected | property | The views data service. | |
HandlerBase:: |
public | function | Take input from exposed handlers and assign to this handler, if necessary. | 1 |
HandlerBase:: |
public | function |
Check whether given user has access to this handler. Overrides ViewsHandlerInterface:: |
4 |
HandlerBase:: |
public static | function |
Breaks x,y,z and x+y+z into an array. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function |
Determines if the handler is considered 'broken', meaning it's a
placeholder used when a handler can't be found. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function | Render our chunk of the exposed handler form when selecting | 1 |
HandlerBase:: |
public | function | Form for exposed handler options. | 2 |
HandlerBase:: |
public | function | Provide a form for setting options. | 1 |
HandlerBase:: |
public | function | Provide a form for aggregation settings. | 1 |
HandlerBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides PluginBase:: |
10 |
HandlerBase:: |
public | function | Determine if a handler can be exposed. | 2 |
HandlerBase:: |
protected | function | Transform a string by a certain method. | |
HandlerBase:: |
public | function | Set new exposed option defaults when exposed setting is flipped on. | 2 |
HandlerBase:: |
public | function | Provide defaults for the handler. | |
HandlerBase:: |
public | function | Displays the Expose form. | |
HandlerBase:: |
public | function |
Ensure the main table for this handler is in the query. This is used
a lot. Overrides ViewsHandlerInterface:: |
2 |
HandlerBase:: |
public | function | Get information about the exposed form for the form renderer. | 1 |
HandlerBase:: |
public | function | Creates cross-database SQL dates. | 2 |
HandlerBase:: |
public | function | Creates cross-database SQL date formatting. | 2 |
HandlerBase:: |
public | function |
Determines the entity type used by this handler. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function |
Shortcut to get a handler's raw field value. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function |
Get the join object that should be used for this handler. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
protected | function | Gets the module handler. | |
HandlerBase:: |
public static | function |
Fetches a handler to join one table to a primary table from the data cache. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
protected | function | Gets views data service. | |
HandlerBase:: |
public | function | If a handler has 'extra options' it will get a little settings widget and another form called extra_options. | 1 |
HandlerBase:: |
public | function | Returns TRUE if the exposed filter works like a grouped filter. | 1 |
HandlerBase:: |
public | function | Determine if this item is 'exposed', meaning it provides form elements to let users modify the view. | |
HandlerBase:: |
public | function | Define if the exposed input has to be submitted multiple times. This is TRUE when exposed filters grouped are using checkboxes as widgets. | 1 |
HandlerBase:: |
protected | function | Provides a unique placeholders for handlers. | |
HandlerBase:: |
public | function |
Run after the view is executed, before the result is cached. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function |
Run before the view is built. Overrides ViewsHandlerInterface:: |
2 |
HandlerBase:: |
public | function |
Sanitize the value for output. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function | Sets the module handler. | |
HandlerBase:: |
public | function |
Called just prior to query(), this lets a handler set up any relationship
it needs. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function | ||
HandlerBase:: |
public | function | Shortcut to display the expose/hide button. | 2 |
HandlerBase:: |
public | function |
Shortcut to display the exposed options form. Overrides ViewsHandlerInterface:: |
|
HandlerBase:: |
public | function | If set to remember exposed input in the session, store it there. | 1 |
HandlerBase:: |
public | function | Submit the exposed handler form | |
HandlerBase:: |
public | function | Perform any necessary changes to the form exposes prior to storage. There is no need for this function to actually store the data. | |
HandlerBase:: |
public | function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | |
HandlerBase:: |
public | function | Calculates options stored on the handler | 1 |
HandlerBase:: |
public | function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | 1 |
HandlerBase:: |
public | function | A submit handler that is used for storing temporary items when using multi-step changes, such as ajax requests. | |
HandlerBase:: |
public | function | Provides the handler some groupby. | 13 |
HandlerBase:: |
public | function |
Validate that the plugin is correct and can be saved. Overrides PluginBase:: |
2 |
HandlerBase:: |
public | function | Validate the exposed handler form | 4 |
HandlerBase:: |
public | function | Validate the options form. | 1 |
HandlerBase:: |
public | function | Validate the options form. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
NumericField:: |
public | function |
Performs some cleanup tasks on the options array before saving it. Overrides FieldPluginBase:: |
|
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
public | property | Plugins's definition | |
PluginBase:: |
public | property | The display object this plugin is for. | |
PluginBase:: |
public | property | Options for this plugin will be held here. | |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
protected | property | Denotes whether the plugin has an additional options form. | 8 |
PluginBase:: |
public | property | The top object of a view. | 1 |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Clears a plugin. Overrides ViewsPluginInterface:: |
2 |
PluginBase:: |
protected | function | Do the work to filter out stored options depending on the defined options. | |
PluginBase:: |
public | function |
Filter out stored options depending on the defined options. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns an array of available token replacements. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function |
Returns the plugin provider. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Adds elements for available core tokens to a form. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns a string with any core tokens replaced. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
constant | Include entity row languages when listing languages. | ||
PluginBase:: |
constant | Include negotiated languages when listing languages. | ||
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
protected | function | Makes an array of languages, optionally including special languages. | |
PluginBase:: |
public | function |
Return the human readable name of the display. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function |
Moves form elements into fieldsets for presentation purposes. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function |
Flattens the structure of form elements. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public static | function | Returns substitutions for Views queries for languages. | |
PluginBase:: |
protected | function | Fills up the options of the plugin with defaults. | |
PluginBase:: |
public | function |
Returns the summary of the settings in the display. Overrides ViewsPluginInterface:: |
6 |
PluginBase:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: |
6 |
PluginBase:: |
public | function |
Unpack options over our existing defaults, drilling down into arrays
so that defaults don't get totally blown away. Overrides ViewsPluginInterface:: |
|
PluginBase:: |
public | function |
Returns the usesOptions property. Overrides ViewsPluginInterface:: |
8 |
PluginBase:: |
public | function |
Validate the options form. Overrides ViewsPluginInterface:: |
15 |
PluginBase:: |
protected | function | Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin. | 1 |
PluginBase:: |
constant | Query string to indicate the site default language. | ||
ProximityField:: |
protected | property | The GeolocationCore object. | |
ProximityField:: |
public | function |
Default options form that provides the label widget that all fields
should have. Overrides NumericField:: |
|
ProximityField:: |
public static | function |
Creates an instance of the plugin. Overrides PluginBase:: |
|
ProximityField:: |
protected | function |
Information about options for all kinds of purposes will be held here. Overrides NumericField:: |
|
ProximityField:: |
public | function |
Called to add the field to a query. Overrides FieldPluginBase:: |
|
ProximityField:: |
public | function |
Renders the field. Overrides NumericField:: |
|
ProximityField:: |
public | function | Form constructor for the user input form. | |
ProximityField:: |
public | function |
Constructs a Handler object. Overrides HandlerBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. |