class ManyToOne
Same name in this branch
- 11.x core/modules/views/src/Plugin/views/argument/ManyToOne.php \Drupal\views\Plugin\views\argument\ManyToOne
Same name and namespace in other branches
- 10 core/modules/views/src/Plugin/views/filter/ManyToOne.php \Drupal\views\Plugin\views\filter\ManyToOne
- 10 core/modules/views/src/Plugin/views/argument/ManyToOne.php \Drupal\views\Plugin\views\argument\ManyToOne
- 9 core/modules/views/src/Plugin/views/filter/ManyToOne.php \Drupal\views\Plugin\views\filter\ManyToOne
- 9 core/modules/views/src/Plugin/views/argument/ManyToOne.php \Drupal\views\Plugin\views\argument\ManyToOne
- 8.9.x core/modules/views/src/Plugin/views/filter/ManyToOne.php \Drupal\views\Plugin\views\filter\ManyToOne
- 8.9.x core/modules/views/src/Plugin/views/argument/ManyToOne.php \Drupal\views\Plugin\views\argument\ManyToOne
- main core/modules/views/src/Plugin/views/filter/ManyToOne.php \Drupal\views\Plugin\views\filter\ManyToOne
- main core/modules/views/src/Plugin/views/argument/ManyToOne.php \Drupal\views\Plugin\views\argument\ManyToOne
Complex filter to handle filtering for many to one relationships.
Examples are terms (many terms per node) or roles (many roles per user).
The construct method needs to be overridden to provide a list of options; alternately, the valueForm and adminSummary methods need to be overridden to provide something that isn't just a select list.
Attributes
#[ViewsFilter("many_to_one")]
Hierarchy
- class \Drupal\views\Plugin\views\filter\ManyToOne extends \Drupal\views\Plugin\views\filter\InOperator
Expanded class hierarchy of ManyToOne
Related topics
4 files declare their use of ManyToOne
- ListField.php in core/
modules/ options/ src/ Plugin/ views/ filter/ ListField.php - Permissions.php in core/
modules/ user/ src/ Plugin/ views/ filter/ Permissions.php - Roles.php in core/
modules/ user/ src/ Plugin/ views/ filter/ Roles.php - TaxonomyIndexTid.php in core/
modules/ taxonomy/ src/ Plugin/ views/ filter/ TaxonomyIndexTid.php
File
-
core/
modules/ views/ src/ Plugin/ views/ filter/ ManyToOne.php, line 22
Namespace
Drupal\views\Plugin\views\filterView source
class ManyToOne extends InOperator {
/**
* @var \Drupal\views\ManyToOneHelper
*
* Stores the Helper object which handles the many_to_one complexity.
*/
public $helper = NULL;
/**
* {@inheritdoc}
*/
public function init(ViewExecutable $view, DisplayPluginBase $display, ?array &$options = NULL) {
parent::init($view, $display, $options);
$this->helper = new ManyToOneHelper($this);
}
/**
* {@inheritdoc}
*/
protected function defineOptions() {
$options = parent::defineOptions();
$options['operator']['default'] = 'or';
$options['value']['default'] = [];
if (isset($this->helper)) {
$this->helper
->defineOptions($options);
}
else {
$helper = new ManyToOneHelper($this);
$helper->defineOptions($options);
}
return $options;
}
/**
* {@inheritdoc}
*/
public function operators() {
$operators = [
'or' => [
'title' => $this->t('Is one of'),
'short' => $this->t('or'),
'short_single' => $this->t('='),
'method' => 'opHelper',
'values' => 1,
'ensure_my_table' => 'helper',
],
'and' => [
'title' => $this->t('Is all of'),
'short' => $this->t('and'),
'short_single' => $this->t('='),
'method' => 'opHelper',
'values' => 1,
'ensure_my_table' => 'helper',
],
'not' => [
'title' => $this->t('Is none of'),
'short' => $this->t('not'),
'short_single' => $this->t('<>'),
'method' => 'opHelper',
'values' => 1,
'ensure_my_table' => 'helper',
],
];
// If the definition allows for the empty operator, add it.
if (!empty($this->definition['allow empty'])) {
$operators += [
'empty' => [
'title' => $this->t('Is empty (NULL)'),
'method' => 'opEmpty',
'short' => $this->t('empty'),
'values' => 0,
],
'not empty' => [
'title' => $this->t('Is not empty (NOT NULL)'),
'method' => 'opEmpty',
'short' => $this->t('not empty'),
'values' => 0,
],
];
}
return $operators;
}
/**
* The default form type.
*
* @var string
*/
protected $valueFormType = 'select';
/**
* {@inheritdoc}
*/
protected function valueForm(&$form, FormStateInterface $form_state) {
parent::valueForm($form, $form_state);
if (!$form_state->get('exposed')) {
$this->helper
->buildOptionsForm($form, $form_state);
}
}
/**
* {@inheritdoc}
*/
public function ensureMyTable() {
// Defer to helper if the operator specifies it.
$info = $this->operators();
if (isset($info[$this->operator]['ensure_my_table']) && $info[$this->operator]['ensure_my_table'] == 'helper') {
return $this->helper
->ensureMyTable();
}
return parent::ensureMyTable();
}
/**
* Adds a filter.
*/
protected function opHelper() {
if (empty($this->value)) {
return;
}
// Form API returns unchecked options in the form of option_id => 0. This
// breaks the generated query for "is all of" filters so we remove them.
$this->value = array_filter($this->value, [
static::class,
'arrayFilterZero',
]);
$this->helper
->addFilter();
}
}
Members
| Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
|---|---|---|---|---|---|---|
| AutowiredInstanceTrait::createInstanceAutowired | public static | function | Instantiates a new instance of the implementing class using autowiring. | |||
| AutowiredInstanceTrait::getAutowireArguments | private static | function | Resolves arguments for a method using autowiring. | |||
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
| DependencySerializationTrait::__sleep | public | function | 2 | |||
| DependencySerializationTrait::__wakeup | public | function | 2 | |||
| FilterPluginBase::$alwaysMultiple | protected | property | Disable the possibility to force a single value. | 6 | ||
| FilterPluginBase::$always_required | public | property | Disable the possibility to allow an exposed input to be optional. | |||
| FilterPluginBase::$group_info | public | property | Contains the information of the selected item in a grouped filter. | |||
| FilterPluginBase::$no_operator | public | property | Disable the possibility to use operators. | 1 | ||
| FilterPluginBase::$operator | public | property | Contains the operator which is used on the query. | |||
| FilterPluginBase::$tableAliases | public | property | Keyed array by alias of table relations. | |||
| FilterPluginBase::$value | public | property | The value. | |||
| FilterPluginBase::addGroupForm | public | function | Add a new group to the exposed filter groups. | |||
| FilterPluginBase::arrayFilterZero | protected static | function | Filter by no empty values, though allow the use of (string) "0". | |||
| FilterPluginBase::buildExposedFiltersGroupForm | protected | function | Build the form to let users create the group of exposed filters. | |||
| FilterPluginBase::buildExposedForm | public | function | Render our chunk of the exposed filter form when selecting. | Overrides HandlerBase::buildExposedForm | ||
| FilterPluginBase::buildGroupForm | public | function | Displays the Build Group form. | |||
| FilterPluginBase::buildGroupOptions | protected | function | Provide default options for exposed filters. | |||
| FilterPluginBase::buildGroupSubmit | protected | function | Save new group items, re-enumerates and remove groups marked to delete. | |||
| FilterPluginBase::buildGroupValidate | protected | function | Validate the build group options form. | |||
| FilterPluginBase::buildOptionsForm | public | function | Provide the basic form which calls through to subforms. | Overrides HandlerBase::buildOptionsForm | 2 | |
| FilterPluginBase::buildValueWrapper | protected | function | Builds wrapper for value and operator forms. | |||
| FilterPluginBase::canBuildGroup | protected | function | Determine if a filter can be converted into a group. | |||
| FilterPluginBase::canExpose | public | function | Determine if a filter can be exposed. | Overrides HandlerBase::canExpose | 5 | |
| FilterPluginBase::canGroup | public | function | Can this filter be used in OR groups? | 1 | ||
| FilterPluginBase::convertExposedInput | public | function | Transform the input from a grouped filter into a standard filter. | |||
| FilterPluginBase::exposedInfo | public | function | Tell the renderer about our exposed form. | Overrides HandlerBase::exposedInfo | ||
| FilterPluginBase::exposedTranslate | protected | function | Make some translations to a form item to make it more suitable to exposing. | |||
| FilterPluginBase::getCacheContexts | public | function | Overrides CacheableDependencyInterface::getCacheContexts | 6 | ||
| FilterPluginBase::getCacheMaxAge | public | function | Overrides CacheableDependencyInterface::getCacheMaxAge | |||
| FilterPluginBase::getCacheTags | public | function | Overrides CacheableDependencyInterface::getCacheTags | 1 | ||
| FilterPluginBase::groupForm | public | function | Builds a group form. | |||
| FilterPluginBase::groupMultipleExposedInput | public | function | Group multiple exposed input. | |||
| FilterPluginBase::hasValidGroupedValue | protected | function | Determines if the given grouped filter entry has a valid value. | 1 | ||
| FilterPluginBase::isAGroup | public | function | Returns TRUE if the exposed filter works like a grouped filter. | Overrides HandlerBase::isAGroup | ||
| FilterPluginBase::multipleExposedInput | public | function | Multiple exposed input. | Overrides HandlerBase::multipleExposedInput | ||
| FilterPluginBase::operatorForm | protected | function | Options form subform for setting the operator. | 6 | ||
| FilterPluginBase::operatorSubmit | public | function | Perform any necessary changes to the form values prior to storage. | |||
| FilterPluginBase::operatorValidate | protected | function | Validate the operator form. | |||
| FilterPluginBase::prepareFilterSelectOptions | protected | function | Sanitizes the HTML select element's options. | |||
| FilterPluginBase::RESTRICTED_IDENTIFIERS | constant | A list of restricted identifiers. | ||||
| FilterPluginBase::showBuildGroupButton | protected | function | Shortcut to display the build_group/hide button. | |||
| FilterPluginBase::showBuildGroupForm | public | function | Shortcut to display the exposed options form. | |||
| FilterPluginBase::showExposeButton | public | function | Shortcut to display the expose/hide button. | Overrides HandlerBase::showExposeButton | ||
| FilterPluginBase::showOperatorForm | public | function | Shortcut to display the operator form. | |||
| FilterPluginBase::showValueForm | protected | function | Shortcut to display the value form. | |||
| FilterPluginBase::storeExposedInput | public | function | Overrides HandlerBase::storeExposedInput | |||
| FilterPluginBase::storeGroupInput | public | function | If set to remember exposed input in the session, store it there. | |||
| FilterPluginBase::submitOptionsForm | public | function | Simple submit handler. | Overrides PluginBase::submitOptionsForm | ||
| FilterPluginBase::trustedCallbacks | public static | function | Overrides PluginBase::trustedCallbacks | |||
| FilterPluginBase::validateExposeForm | public | function | Validate the options form. | Overrides HandlerBase::validateExposeForm | ||
| FilterPluginBase::validateIdentifier | protected | function | Validates a filter identifier. | |||
| FilterPluginBase::validateOptionsForm | public | function | Simple validate handler. | Overrides PluginBase::validateOptionsForm | 1 | |
| FilterPluginBase::valueValidate | protected | function | Validate the options form. | 3 | ||
| HandlerBase::$field | public | property | With field you can override the realField if the real field is not set. | |||
| HandlerBase::$is_handler | public | property | Tracks whether the plugin is a handler. | |||
| HandlerBase::$moduleHandler | protected | property | The module handler. | 2 | ||
| HandlerBase::$query | public | property | Where the $query object will reside. | 7 | ||
| HandlerBase::$realField | public | property | The real field. | |||
| HandlerBase::$relationship | public | property | The relationship used for this field. | |||
| HandlerBase::$table | public | property | The table this handler is attached to. | |||
| HandlerBase::$tableAlias | public | property | The alias of the table of this handler which is used in the query. | |||
| HandlerBase::$viewsData | protected | property | The views data service. | |||
| HandlerBase::access | public | function | Overrides ViewsHandlerInterface::access | 3 | ||
| HandlerBase::adminLabel | public | function | Overrides ViewsHandlerInterface::adminLabel | 4 | ||
| HandlerBase::breakString | public static | function | Overrides ViewsHandlerInterface::breakString | |||
| HandlerBase::broken | public | function | Overrides ViewsHandlerInterface::broken | |||
| HandlerBase::buildExtraOptionsForm | public | function | Provide a form for setting options. | 2 | ||
| HandlerBase::buildGroupByForm | public | function | Provide a form for aggregation settings. | 1 | ||
| HandlerBase::calculateDependencies | public | function | Overrides PluginBase::calculateDependencies | 11 | ||
| HandlerBase::caseTransform | protected | function | Transform a string by a certain method. | |||
| HandlerBase::defineExtraOptions | Deprecated | public | function | Provide defaults for the handler. | ||
| HandlerBase::displayExposedForm | public | function | Displays the Expose form. | |||
| HandlerBase::getDateField | public | function | Creates cross-database SQL dates. | 2 | ||
| HandlerBase::getDateFormat | public | function | Creates cross-database SQL date formatting. | 2 | ||
| HandlerBase::getEntityType | public | function | Overrides ViewsHandlerInterface::getEntityType | |||
| HandlerBase::getField | public | function | Overrides ViewsHandlerInterface::getField | |||
| HandlerBase::getJoin | public | function | Overrides ViewsHandlerInterface::getJoin | |||
| HandlerBase::getModuleHandler | protected | function | Gets the module handler. | |||
| HandlerBase::getTableJoin | public static | function | Overrides ViewsHandlerInterface::getTableJoin | |||
| HandlerBase::getViewsData | protected | function | Gets views data service. | |||
| HandlerBase::hasExtraOptions | public | function | Determines if the handler has extra options. | 2 | ||
| HandlerBase::isExposed | public | function | Determine if this item is 'exposed'. | |||
| HandlerBase::placeholder | protected | function | Provides a unique placeholders for handlers. | |||
| HandlerBase::postExecute | public | function | Overrides ViewsHandlerInterface::postExecute | |||
| HandlerBase::preQuery | public | function | Overrides ViewsHandlerInterface::preQuery | 2 | ||
| HandlerBase::sanitizeValue | public | function | Overrides ViewsHandlerInterface::sanitizeValue | |||
| HandlerBase::setModuleHandler | public | function | Sets the module handler. | |||
| HandlerBase::setRelationship | public | function | Overrides ViewsHandlerInterface::setRelationship | |||
| HandlerBase::setViewsData | public | function | Sets the views data service. | |||
| HandlerBase::showExposeForm | public | function | Shortcut to display the exposed options form. | Overrides ViewsHandlerInterface::showExposeForm | ||
| HandlerBase::submitExposed | public | function | Submit the exposed handler form. | |||
| HandlerBase::submitExposeForm | public | function | Perform any necessary changes to the form exposes prior to storage. | |||
| HandlerBase::submitExtraOptionsForm | public | function | Perform any necessary changes to the form values prior to storage. | 1 | ||
| HandlerBase::submitFormCalculateOptions | public | function | Calculates options stored on the handler. | 1 | ||
| HandlerBase::submitGroupByForm | public | function | Perform any necessary changes to the form values prior to storage. | 1 | ||
| HandlerBase::submitTemporaryForm | public | function | Submits a temporary form. | |||
| HandlerBase::usesGroupBy | public | function | Provides the handler some group by. | 13 | ||
| HandlerBase::validateExposed | public | function | Validate the exposed handler form. | 5 | ||
| HandlerBase::validateExtraOptionsForm | public | function | Validate the options form. | 1 | ||
| HandlerBase::__construct | public | function | Constructs a Handler object. | Overrides PluginBase::__construct | 45 | |
| InOperator::$valueOptions | protected | property | Stores all operations which are available on the form. | |||
| InOperator::$valueTitle | protected | property | The filter title. | |||
| InOperator::acceptExposedInput | public | function | Overrides FilterPluginBase::acceptExposedInput | 3 | ||
| InOperator::adminSummary | public | function | Overrides FilterPluginBase::adminSummary | 2 | ||
| InOperator::buildExposeForm | public | function | Overrides FilterPluginBase::buildExposeForm | 1 | ||
| InOperator::defaultExposeOptions | public | function | Overrides FilterPluginBase::defaultExposeOptions | |||
| InOperator::getValueOptions | public | function | Gets the value options. | 10 | ||
| InOperator::opEmpty | protected | function | Filters by operator 'empty'. | |||
| InOperator::operatorOptions | public | function | Build strings from the operators() for 'select' options. | Overrides FilterPluginBase::operatorOptions | 1 | |
| InOperator::operatorValues | protected | function | Gets the operators that have a given number of values. | |||
| InOperator::opSimple | protected | function | Filters by a simple operator. | 1 | ||
| InOperator::query | public | function | Overrides FilterPluginBase::query | 5 | ||
| InOperator::reduceValueOptions | public | function | When using exposed filters, we may be required to reduce the set. | |||
| InOperator::validate | public | function | Overrides FilterPluginBase::validate | 1 | ||
| InOperator::valueSubmit | protected | function | Overrides FilterPluginBase::valueSubmit | 3 | ||
| ManyToOne::$helper | public | property | Stores the Helper object which handles the many_to_one complexity. | |||
| ManyToOne::$valueFormType | protected | property | The default form type. | Overrides InOperator::$valueFormType | ||
| ManyToOne::defineOptions | protected | function | Overrides InOperator::defineOptions | 2 | ||
| ManyToOne::ensureMyTable | public | function | Overrides HandlerBase::ensureMyTable | |||
| ManyToOne::init | public | function | Overrides InOperator::init | 3 | ||
| ManyToOne::operators | public | function | Overrides InOperator::operators | 1 | ||
| ManyToOne::opHelper | protected | function | Adds a filter. | |||
| ManyToOne::valueForm | protected | function | Overrides InOperator::valueForm | 2 | ||
| MessengerTrait::$messenger | protected | property | The messenger. | 27 | ||
| MessengerTrait::messenger | public | function | Gets the messenger. | 27 | ||
| MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
| PluginBase::$configuration | protected | property | Configuration information passed into the plugin. | 1 | ||
| PluginBase::$definition | public | property | Plugins' definition. | |||
| PluginBase::$displayHandler | public | property | The display object this plugin is for. | |||
| PluginBase::$options | public | property | Options for this plugin will be held here. | |||
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | ||
| PluginBase::$pluginId | protected | property | The plugin ID. | |||
| PluginBase::$position | public | property | The handler position. | |||
| PluginBase::$renderer | protected | property | Stores the render API renderer. | 3 | ||
| PluginBase::$usesOptions | protected | property | Denotes whether the plugin has an additional options form. | 8 | ||
| PluginBase::$view | public | property | The top object of a view. | 1 | ||
| PluginBase::create | public static | function | Instantiates a new instance of the implementing class using autowiring. | 65 | ||
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||||
| PluginBase::destroy | public | function | Overrides ViewsPluginInterface::destroy | 2 | ||
| PluginBase::doFilterByDefinedOptions | protected | function | Do the work to filter out stored options depending on the defined options. | |||
| PluginBase::filterByDefinedOptions | public | function | Overrides ViewsPluginInterface::filterByDefinedOptions | |||
| PluginBase::getAvailableGlobalTokens | public | function | Overrides ViewsPluginInterface::getAvailableGlobalTokens | |||
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | ||
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | ||
| PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | |
| PluginBase::getPluginId | public | function | Gets the plugin ID of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | ||
| PluginBase::getProvider | public | function | Overrides ViewsPluginInterface::getProvider | |||
| PluginBase::getRenderer | protected | function | Returns the render API renderer. | 1 | ||
| PluginBase::globalTokenForm | public | function | Overrides ViewsPluginInterface::globalTokenForm | |||
| PluginBase::globalTokenReplace | public | function | Overrides ViewsPluginInterface::globalTokenReplace | |||
| PluginBase::INCLUDE_ENTITY | constant | Include entity row languages when listing languages. | ||||
| PluginBase::INCLUDE_NEGOTIATED | constant | Include negotiated languages when listing languages. | ||||
| PluginBase::isConfigurable | Deprecated | public | function | Determines if the plugin is configurable. | ||
| PluginBase::listLanguages | protected | function | Makes an array of languages, optionally including special languages. | |||
| PluginBase::pluginTitle | public | function | Overrides ViewsPluginInterface::pluginTitle | |||
| PluginBase::preRenderAddFieldsetMarkup | public static | function | Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup | |||
| PluginBase::preRenderFlattenData | public static | function | Overrides ViewsPluginInterface::preRenderFlattenData | |||
| PluginBase::queryLanguageSubstitutions | public static | function | Returns substitutions for Views queries for languages. | |||
| PluginBase::setOptionDefaults | protected | function | Fills up the options of the plugin with defaults. | |||
| PluginBase::summaryTitle | public | function | Overrides ViewsPluginInterface::summaryTitle | 6 | ||
| PluginBase::themeFunctions | public | function | Overrides ViewsPluginInterface::themeFunctions | 1 | ||
| PluginBase::unpackOptions | public | function | Overrides ViewsPluginInterface::unpackOptions | |||
| PluginBase::usesOptions | public | function | Overrides ViewsPluginInterface::usesOptions | 8 | ||
| PluginBase::viewsTokenReplace | protected | function | Replaces Views' tokens in a given string. | 1 | ||
| PluginBase::VIEWS_QUERY_LANGUAGE_SITE_DEFAULT | constant | Query string to indicate the site default language. | ||||
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | ||
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | 1 | ||
| TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | ||||
| TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.