class TaxonomyIndexTid
Field handler to display all taxonomy terms of a node.
Attributes
#[ViewsField("taxonomy_index_tid")]
Hierarchy
- class \Drupal\taxonomy\Plugin\views\field\TaxonomyIndexTid extends \Drupal\views\Plugin\views\field\PrerenderList
Expanded class hierarchy of TaxonomyIndexTid
Related topics
File
-
core/
modules/ taxonomy/ src/ Plugin/ views/ field/ TaxonomyIndexTid.php, line 18
Namespace
Drupal\taxonomy\Plugin\views\fieldView source
class TaxonomyIndexTid extends PrerenderList {
/**
* The vocabulary storage.
*
* @var \Drupal\taxonomy\VocabularyStorageInterface
*/
protected $vocabularyStorage;
/**
* Constructs a TaxonomyIndexTid 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\taxonomy\VocabularyStorageInterface $vocabulary_storage
* The vocabulary storage.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, VocabularyStorageInterface $vocabulary_storage) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->vocabularyStorage = $vocabulary_storage;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container->get('entity_type.manager')
->getStorage('taxonomy_vocabulary'));
}
/**
* {@inheritdoc}
*/
public function init(ViewExecutable $view, DisplayPluginBase $display, ?array &$options = NULL) {
parent::init($view, $display, $options);
// @todo Wouldn't it be possible to use $this->base_table and no if here?
if ($view->storage
->get('base_table') == 'node_field_revision') {
$this->additional_fields['nid'] = [
'table' => 'node_field_revision',
'field' => 'nid',
];
}
else {
$this->additional_fields['nid'] = [
'table' => 'node_field_data',
'field' => 'nid',
];
}
}
protected function defineOptions() {
$options = parent::defineOptions();
$options['link_to_taxonomy'] = [
'default' => TRUE,
];
$options['limit'] = [
'default' => FALSE,
];
$options['vids'] = [
'default' => [],
];
return $options;
}
/**
* Provide "link to term" option.
*/
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
$form['link_to_taxonomy'] = [
'#title' => $this->t('Link this field to its term page'),
'#type' => 'checkbox',
'#default_value' => !empty($this->options['link_to_taxonomy']),
];
$form['limit'] = [
'#type' => 'checkbox',
'#title' => $this->t('Limit terms by vocabulary'),
'#default_value' => $this->options['limit'],
];
$options = [];
$vocabularies = $this->vocabularyStorage
->loadMultiple();
foreach ($vocabularies as $voc) {
$options[$voc->id()] = $voc->label();
}
$form['vids'] = [
'#type' => 'checkboxes',
'#title' => $this->t('Vocabularies'),
'#options' => $options,
'#default_value' => $this->options['vids'],
'#states' => [
'visible' => [
':input[name="options[limit]"]' => [
'checked' => TRUE,
],
],
],
];
parent::buildOptionsForm($form, $form_state);
}
/**
* Add this term to the query.
*/
public function query() {
$this->addAdditionalFields();
}
public function preRender(&$values) {
$vocabularies = $this->vocabularyStorage
->loadMultiple();
$this->field_alias = $this->aliases['nid'];
$nids = [];
foreach ($values as $result) {
if (!empty($result->{$this->aliases['nid']})) {
$nids[] = $result->{$this->aliases['nid']};
}
}
if ($nids) {
$vids = array_filter($this->options['vids']);
if (empty($this->options['limit'])) {
$vids = [];
}
$result = \Drupal::entityTypeManager()->getStorage('taxonomy_term')
->getNodeTerms($nids, $vids);
foreach ($result as $node_nid => $data) {
foreach ($data as $tid => $term) {
$this->items[$node_nid][$tid]['name'] = \Drupal::service('entity.repository')->getTranslationFromContext($term)
->label();
$this->items[$node_nid][$tid]['tid'] = $tid;
$this->items[$node_nid][$tid]['vocabulary_vid'] = $term->bundle();
$this->items[$node_nid][$tid]['vocabulary'] = $vocabularies[$term->bundle()]
->label();
if (!empty($this->options['link_to_taxonomy'])) {
$this->items[$node_nid][$tid]['make_link'] = TRUE;
$this->items[$node_nid][$tid]['path'] = 'taxonomy/term/' . $tid;
}
}
}
}
}
public function render_item($count, $item) {
return $item['name'];
}
protected function documentSelfTokens(&$tokens) {
$tokens['{{ ' . $this->options['id'] . '__tid' . ' }}'] = $this->t('The taxonomy term ID for the term.');
$tokens['{{ ' . $this->options['id'] . '__name' . ' }}'] = $this->t('The taxonomy term name for the term.');
$tokens['{{ ' . $this->options['id'] . '__vocabulary_vid' . ' }}'] = $this->t('The machine name for the vocabulary the term belongs to.');
$tokens['{{ ' . $this->options['id'] . '__vocabulary' . ' }}'] = $this->t('The name for the vocabulary the term belongs to.');
}
protected function addSelfTokens(&$tokens, $item) {
foreach ([
'tid',
'name',
'vocabulary_vid',
'vocabulary',
] as $token) {
$tokens['{{ ' . $this->options['id'] . '__' . $token . ' }}'] = $item[$token] ?? '';
}
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
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 | #[\ReturnTypeWillChange] | 2 | ||
FieldPluginBase::$additional_fields | public | property | Stores additional fields which get added to the query. | |||
FieldPluginBase::$aliases | public | property | ||||
FieldPluginBase::$field_alias | public | property | ||||
FieldPluginBase::$lastRenderIndex | protected | property | Keeps track of the last render index. | |||
FieldPluginBase::$last_render | public | property | The last rendered value. | |||
FieldPluginBase::$last_render_text | public | property | The last rendered text. | |||
FieldPluginBase::$last_tokens | public | property | The last rendered tokens. | |||
FieldPluginBase::$linkGenerator | protected | property | The link generator. | |||
FieldPluginBase::$original_value | public | property | The field value prior to any rewriting. | |||
FieldPluginBase::$renderer | protected | property | Stores the render API renderer. | Overrides PluginBase::$renderer | 1 | |
FieldPluginBase::addAdditionalFields | protected | function | Add 'additional' fields to the query. | |||
FieldPluginBase::adminLabel | public | function | Overrides HandlerBase::adminLabel | |||
FieldPluginBase::adminSummary | public | function | Provide extra data to the administration form. | Overrides HandlerBase::adminSummary | ||
FieldPluginBase::advancedRender | public | function | Overrides FieldHandlerInterface::advancedRender | |||
FieldPluginBase::allowAdvancedRender | protected | function | Determine if this field can allow advanced rendering. | |||
FieldPluginBase::clickSort | public | function | Overrides FieldHandlerInterface::clickSort | 1 | ||
FieldPluginBase::clickSortable | public | function | Overrides FieldHandlerInterface::clickSortable | 5 | ||
FieldPluginBase::elementClasses | public | function | Overrides FieldHandlerInterface::elementClasses | |||
FieldPluginBase::elementLabelClasses | public | function | Overrides FieldHandlerInterface::elementLabelClasses | |||
FieldPluginBase::elementLabelType | public | function | Overrides FieldHandlerInterface::elementLabelType | |||
FieldPluginBase::elementType | public | function | Overrides FieldHandlerInterface::elementType | 1 | ||
FieldPluginBase::elementWrapperClasses | public | function | Overrides FieldHandlerInterface::elementWrapperClasses | |||
FieldPluginBase::elementWrapperType | public | function | Overrides FieldHandlerInterface::elementWrapperType | |||
FieldPluginBase::getElements | public | function | Overrides FieldHandlerInterface::getElements | |||
FieldPluginBase::getEntity | public | function | Overrides FieldHandlerInterface::getEntity | |||
FieldPluginBase::getFieldTokenPlaceholder | protected | function | Returns a token placeholder for the current field. | |||
FieldPluginBase::getPreviousFieldLabels | protected | function | Returns all field labels of fields before this field. | |||
FieldPluginBase::getRenderer | protected | function | Returns the render API renderer. | Overrides PluginBase::getRenderer | ||
FieldPluginBase::getRenderTokens | public | function | Overrides FieldHandlerInterface::getRenderTokens | |||
FieldPluginBase::getTokenValuesRecursive | protected | function | Recursive function to add replacements for nested query string parameters. | |||
FieldPluginBase::getValue | public | function | Overrides FieldHandlerInterface::getValue | 2 | ||
FieldPluginBase::isValueEmpty | public | function | Overrides FieldHandlerInterface::isValueEmpty | |||
FieldPluginBase::label | public | function | Overrides FieldHandlerInterface::label | |||
FieldPluginBase::linkGenerator | protected | function | Gets the link generator. | |||
FieldPluginBase::postRender | public | function | Overrides FieldHandlerInterface::postRender | |||
FieldPluginBase::render | public | function | Overrides FieldHandlerInterface::render | 26 | ||
FieldPluginBase::renderAltered | protected | function | Render this field as user-defined altered text. | |||
FieldPluginBase::renderAsLink | protected | function | Render this field as a link, with the info from a fieldset set by the user. | |||
FieldPluginBase::renderText | public | function | Overrides FieldHandlerInterface::renderText | |||
FieldPluginBase::renderTrimText | protected | function | Trims the field down to the specified length. | |||
FieldPluginBase::RENDER_TEXT_PHASE_COMPLETELY | constant | Indicator of the renderText() method for rendering the whole element. | ||||
FieldPluginBase::RENDER_TEXT_PHASE_EMPTY | constant | Indicator of the renderText() method for rendering the empty text. | ||||
FieldPluginBase::RENDER_TEXT_PHASE_SINGLE_ITEM | constant | Indicator of the renderText() method for rendering a single item. | ||||
FieldPluginBase::submitOptionsForm | public | function | Performs some cleanup tasks on the options array before saving it. | Overrides PluginBase::submitOptionsForm | 1 | |
FieldPluginBase::theme | public | function | Overrides FieldHandlerInterface::theme | |||
FieldPluginBase::themeFunctions | public | function | Overrides PluginBase::themeFunctions | |||
FieldPluginBase::tokenizeValue | public | function | Overrides FieldHandlerInterface::tokenizeValue | |||
FieldPluginBase::trimText | public static | function | Trims the field down to the specified length. | |||
FieldPluginBase::useStringGroupBy | public | function | Overrides FieldHandlerInterface::useStringGroupBy | |||
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::acceptExposedInput | public | function | Take input from exposed handlers and assign to this handler, if necessary. | 1 | ||
HandlerBase::access | public | function | Overrides ViewsHandlerInterface::access | 5 | ||
HandlerBase::breakString | public static | function | Overrides ViewsHandlerInterface::breakString | |||
HandlerBase::broken | public | function | Overrides ViewsHandlerInterface::broken | |||
HandlerBase::buildExposedForm | public | function | Render our chunk of the exposed handler form when selecting. | 1 | ||
HandlerBase::buildExposeForm | public | function | Form for exposed handler options. | 2 | ||
HandlerBase::buildExtraOptionsForm | public | function | Provide a form for setting options. | 1 | ||
HandlerBase::buildGroupByForm | public | function | Provide a form for aggregation settings. | 1 | ||
HandlerBase::calculateDependencies | public | function | Overrides PluginBase::calculateDependencies | 10 | ||
HandlerBase::canExpose | public | function | Determine if a handler can be exposed. | 2 | ||
HandlerBase::caseTransform | protected | function | Transform a string by a certain method. | |||
HandlerBase::defaultExposeOptions | public | function | Set new exposed option defaults when exposed setting is flipped on. | 2 | ||
HandlerBase::defineExtraOptions | public | function | Provide defaults for the handler. | |||
HandlerBase::displayExposedForm | public | function | Displays the Expose form. | |||
HandlerBase::ensureMyTable | public | function | Overrides ViewsHandlerInterface::ensureMyTable | 2 | ||
HandlerBase::exposedInfo | public | function | Get information about the exposed form for the form renderer. | 1 | ||
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. | 1 | ||
HandlerBase::isAGroup | public | function | Returns TRUE if the exposed filter works like a grouped filter. | 1 | ||
HandlerBase::isExposed | public | function | Determine if this item is 'exposed'. | |||
HandlerBase::multipleExposedInput | public | function | Define if the exposed input has to be submitted multiple times. | 1 | ||
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 | ||||
HandlerBase::showExposeButton | public | function | Shortcut to display the expose/hide button. | 2 | ||
HandlerBase::showExposeForm | public | function | Shortcut to display the exposed options form. | Overrides ViewsHandlerInterface::showExposeForm | ||
HandlerBase::storeExposedInput | public | function | If set to remember exposed input in the session, store it there. | 1 | ||
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. | |||
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 groupby. | 13 | ||
HandlerBase::validate | public | function | Overrides PluginBase::validate | 2 | ||
HandlerBase::validateExposed | public | function | Validate the exposed handler form. | 4 | ||
HandlerBase::validateExposeForm | public | function | Validate the options form. | 2 | ||
HandlerBase::validateExtraOptionsForm | public | function | Validate the options form. | |||
MessengerTrait::$messenger | protected | property | The messenger. | 25 | ||
MessengerTrait::messenger | public | function | Gets the messenger. | 25 | ||
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::$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::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::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 | 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::trustedCallbacks | public static | function | Overrides TrustedCallbackInterface::trustedCallbacks | 6 | ||
PluginBase::unpackOptions | public | function | Overrides ViewsPluginInterface::unpackOptions | |||
PluginBase::usesOptions | public | function | Overrides ViewsPluginInterface::usesOptions | 8 | ||
PluginBase::validateOptionsForm | public | function | Overrides ViewsPluginInterface::validateOptionsForm | 15 | ||
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. | ||||
PrerenderList::$items | public | property | Stores all items which are used to render the items. | |||
PrerenderList::getItems | public | function | Items should be stored in the result array, if possible, as an array with 'value' as the actual displayable value of the item, plus any items that might be found in the 'alter' options array for creating links, such as… |
Overrides MultiItemsFieldHandlerInterface::getItems | ||
PrerenderList::renderItems | public | function | Overrides MultiItemsFieldHandlerInterface::renderItems | |||
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. | |||
TaxonomyIndexTid::$vocabularyStorage | protected | property | The vocabulary storage. | |||
TaxonomyIndexTid::addSelfTokens | protected | function | Overrides FieldPluginBase::addSelfTokens | |||
TaxonomyIndexTid::buildOptionsForm | public | function | Provide "link to term" option. | Overrides PrerenderList::buildOptionsForm | ||
TaxonomyIndexTid::create | public static | function | Overrides PluginBase::create | |||
TaxonomyIndexTid::defineOptions | protected | function | Overrides PrerenderList::defineOptions | |||
TaxonomyIndexTid::documentSelfTokens | protected | function | Overrides FieldPluginBase::documentSelfTokens | |||
TaxonomyIndexTid::init | public | function | Overrides FieldPluginBase::init | |||
TaxonomyIndexTid::preRender | public | function | Overrides FieldPluginBase::preRender | |||
TaxonomyIndexTid::query | public | function | Add this term to the query. | Overrides FieldPluginBase::query | ||
TaxonomyIndexTid::render_item | public | function | Overrides MultiItemsFieldHandlerInterface::render_item | |||
TaxonomyIndexTid::__construct | public | function | Constructs a TaxonomyIndexTid object. | Overrides HandlerBase::__construct | ||
TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | ||||
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||||
TrustedCallbackInterface::TRIGGER_WARNING | Deprecated | constant | Untrusted callbacks trigger E_USER_WARNING errors. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.