class PrerenderList
Same name in other branches
- 8.9.x core/modules/views/src/Plugin/views/field/PrerenderList.php \Drupal\views\Plugin\views\field\PrerenderList
- 10 core/modules/views/src/Plugin/views/field/PrerenderList.php \Drupal\views\Plugin\views\field\PrerenderList
- 11.x core/modules/views/src/Plugin/views/field/PrerenderList.php \Drupal\views\Plugin\views\field\PrerenderList
Field handler to provide a list of items.
The items are expected to be loaded by a child object during preRender, and 'my field' is expected to be the pointer to the items in the list.
Items to render should be in a list in $this->items
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
- class \Drupal\views\Plugin\views\PluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface
- class \Drupal\views\Plugin\views\HandlerBase extends \Drupal\views\Plugin\views\PluginBase implements \Drupal\views\Plugin\views\ViewsHandlerInterface
- class \Drupal\views\Plugin\views\field\FieldPluginBase extends \Drupal\views\Plugin\views\HandlerBase implements \Drupal\views\Plugin\views\field\FieldHandlerInterface
- class \Drupal\views\Plugin\views\field\PrerenderList extends \Drupal\views\Plugin\views\field\FieldPluginBase implements \Drupal\views\Plugin\views\field\MultiItemsFieldHandlerInterface
- class \Drupal\views\Plugin\views\field\FieldPluginBase extends \Drupal\views\Plugin\views\HandlerBase implements \Drupal\views\Plugin\views\field\FieldHandlerInterface
- class \Drupal\views\Plugin\views\HandlerBase extends \Drupal\views\Plugin\views\PluginBase implements \Drupal\views\Plugin\views\ViewsHandlerInterface
- class \Drupal\views\Plugin\views\PluginBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\Core\Plugin\ContainerFactoryPluginInterface, \Drupal\views\Plugin\views\ViewsPluginInterface, \Drupal\Component\Plugin\DependentPluginInterface, \Drupal\Core\Security\TrustedCallbackInterface
- class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
Expanded class hierarchy of PrerenderList
Related topics
3 files declare their use of PrerenderList
- Permissions.php in core/
modules/ user/ src/ Plugin/ views/ field/ Permissions.php - Roles.php in core/
modules/ user/ src/ Plugin/ views/ field/ Roles.php - TaxonomyIndexTid.php in core/
modules/ taxonomy/ src/ Plugin/ views/ field/ TaxonomyIndexTid.php
File
-
core/
modules/ views/ src/ Plugin/ views/ field/ PrerenderList.php, line 18
Namespace
Drupal\views\Plugin\views\fieldView source
abstract class PrerenderList extends FieldPluginBase implements MultiItemsFieldHandlerInterface {
/**
* Stores all items which are used to render the items.
*
* It should be keyed first by the id of the base table, for example nid.
* The second key is the id of the thing which is displayed multiple times
* per row, for example the tid.
*
* @var array
*/
public $items = [];
/**
* {@inheritdoc}
*/
protected function defineOptions() {
$options = parent::defineOptions();
$options['type'] = [
'default' => 'separator',
];
$options['separator'] = [
'default' => ', ',
];
return $options;
}
/**
* {@inheritdoc}
*/
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
$form['type'] = [
'#type' => 'radios',
'#title' => $this->t('Display type'),
'#options' => [
'ul' => $this->t('Unordered list'),
'ol' => $this->t('Ordered list'),
'separator' => $this->t('Simple separator'),
],
'#default_value' => $this->options['type'],
];
$form['separator'] = [
'#type' => 'textfield',
'#title' => $this->t('Separator'),
'#default_value' => $this->options['separator'],
'#states' => [
'visible' => [
':input[name="options[type]"]' => [
'value' => 'separator',
],
],
],
];
parent::buildOptionsForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function renderItems($items) {
if (!empty($items)) {
if ($this->options['type'] == 'separator') {
$render = [
'#type' => 'inline_template',
'#template' => '{{ items|safe_join(separator) }}',
'#context' => [
'items' => $items,
'separator' => $this->sanitizeValue($this->options['separator'], 'xss_admin'),
],
];
}
else {
$render = [
'#theme' => 'item_list',
'#items' => $items,
'#title' => NULL,
'#list_type' => $this->options['type'],
];
}
return \Drupal::service('renderer')->render($render);
}
}
/**
* {@inheritdoc}
*
* 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 'path', 'fragment', 'query' etc, such a thing
* is to be made. Additionally, items that might be turned into tokens
* should also be in this array.
*/
public function getItems(ResultRow $values) {
$field = $this->getValue($values);
if (!empty($this->items[$field])) {
return $this->items[$field];
}
return [];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
DerivativeInspectionInterface::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | 1 | |
DerivativeInspectionInterface::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | 1 | |
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::$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::addSelfTokens | protected | function | Add any special tokens this field might use for itself. | 4 | |
FieldPluginBase::adminLabel | public | function | Return a string representing this handler's name in the UI. | Overrides HandlerBase::adminLabel | |
FieldPluginBase::adminSummary | public | function | Provide extra data to the administration form. | Overrides HandlerBase::adminSummary | |
FieldPluginBase::advancedRender | public | function | Renders a field using advanced settings. | Overrides FieldHandlerInterface::advancedRender | |
FieldPluginBase::allowAdvancedRender | protected | function | Determine if this field can allow advanced rendering. | ||
FieldPluginBase::clickSort | public | function | Adds an ORDER BY clause to the query for click sort columns. | Overrides FieldHandlerInterface::clickSort | 1 |
FieldPluginBase::clickSortable | public | function | Determines if this field is click sortable. | Overrides FieldHandlerInterface::clickSortable | 5 |
FieldPluginBase::documentSelfTokens | protected | function | Document any special tokens this field might use for itself. | 3 | |
FieldPluginBase::elementClasses | public | function | Returns the class of the field. | Overrides FieldHandlerInterface::elementClasses | |
FieldPluginBase::elementLabelClasses | public | function | Returns the class of the field's label. | Overrides FieldHandlerInterface::elementLabelClasses | |
FieldPluginBase::elementLabelType | public | function | Returns an HTML element for the label based upon the field's element type. | Overrides FieldHandlerInterface::elementLabelType | |
FieldPluginBase::elementType | public | function | Returns an HTML element based upon the field's element type. | Overrides FieldHandlerInterface::elementType | 1 |
FieldPluginBase::elementWrapperClasses | public | function | Returns the class of the field's wrapper. | Overrides FieldHandlerInterface::elementWrapperClasses | |
FieldPluginBase::elementWrapperType | public | function | Returns an HTML element for the wrapper based upon the field's element type. | Overrides FieldHandlerInterface::elementWrapperType | |
FieldPluginBase::getElements | public | function | Provides a list of elements valid for field HTML. | Overrides FieldHandlerInterface::getElements | |
FieldPluginBase::getEntity | public | function | Gets the entity matching the current row and relationship. | 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 | Gets the 'render' tokens to use for advanced rendering. | Overrides FieldHandlerInterface::getRenderTokens | |
FieldPluginBase::getTokenValuesRecursive | protected | function | Recursive function to add replacements for nested query string parameters. | ||
FieldPluginBase::getValue | public | function | Gets the value that's supposed to be rendered. | Overrides FieldHandlerInterface::getValue | 2 |
FieldPluginBase::init | public | function | Initialize the plugin. | Overrides HandlerBase::init | 13 |
FieldPluginBase::isValueEmpty | public | function | Checks if a field value is empty. | Overrides FieldHandlerInterface::isValueEmpty | |
FieldPluginBase::label | public | function | Gets this field's label. | Overrides FieldHandlerInterface::label | |
FieldPluginBase::linkGenerator | protected | function | Gets the link generator. | ||
FieldPluginBase::postRender | public | function | Runs after every field has been rendered. | Overrides FieldHandlerInterface::postRender | |
FieldPluginBase::preRender | public | function | Runs before any fields are rendered. | Overrides FieldHandlerInterface::preRender | 10 |
FieldPluginBase::query | public | function | Called to add the field to a query. | Overrides HandlerBase::query | 19 |
FieldPluginBase::render | public | function | Renders the field. | 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 | Performs an advanced text render for the item. | 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 | Renders row values using $this->themeFunctions() as #theme. | Overrides FieldHandlerInterface::theme | |
FieldPluginBase::themeFunctions | public | function | Provide a full list of possible theme templates used by this style. | Overrides PluginBase::themeFunctions | |
FieldPluginBase::tokenizeValue | public | function | Replaces a value with tokens from the last field. | Overrides FieldHandlerInterface::tokenizeValue | |
FieldPluginBase::trimText | public static | function | Trims the field down to the specified length. | ||
FieldPluginBase::useStringGroupBy | public | function | Determines if this field can be grouped in the results. | Overrides FieldHandlerInterface::useStringGroupBy | |
HandlerBase::$field | public | property | With field you can override the realField if the real field is not set. | ||
HandlerBase::$moduleHandler | protected | property | The module handler. | 3 | |
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 | Check whether given user has access to this handler. | Overrides ViewsHandlerInterface::access | 4 |
HandlerBase::breakString | public static | function | Breaks x,y,z and x+y+z into an array. | Overrides ViewsHandlerInterface::breakString | |
HandlerBase::broken | public | function | Determines if the handler is considered 'broken'. | 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 | Calculates dependencies for the configured plugin. | 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 | Ensures that the main table for this handler is in the query. | 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 | Determines the entity type used by this handler. | Overrides ViewsHandlerInterface::getEntityType | |
HandlerBase::getField | public | function | Shortcut to get a handler's raw field value. | Overrides ViewsHandlerInterface::getField | |
HandlerBase::getJoin | public | function | Get the join object that should be used for this handler. | Overrides ViewsHandlerInterface::getJoin | |
HandlerBase::getModuleHandler | protected | function | Gets the module handler. | ||
HandlerBase::getTableJoin | public static | function | Fetches a handler to join one table to a primary table from the data cache. | 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 | Run after the view is executed, before the result is cached. | Overrides ViewsHandlerInterface::postExecute | |
HandlerBase::preQuery | public | function | Run before the view is built. | Overrides ViewsHandlerInterface::preQuery | 2 |
HandlerBase::sanitizeValue | public | function | Sanitize the value for output. | Overrides ViewsHandlerInterface::sanitizeValue | |
HandlerBase::setModuleHandler | public | function | Sets the module handler. | ||
HandlerBase::setRelationship | public | function | Sets up any needed relationship. | 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 | Validate that the plugin is correct and can be saved. | 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. | ||
HandlerBase::__construct | public | function | Constructs a Handler object. | Overrides PluginBase::__construct | 45 |
MultiItemsFieldHandlerInterface::render_item | public | function | Renders a single item of a row. | 4 | |
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::$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 | Creates an instance of the plugin. | Overrides ContainerFactoryPluginInterface::create | 63 |
PluginBase::destroy | public | function | Clears a plugin. | 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 | Filter out stored options depending on the defined options. | Overrides ViewsPluginInterface::filterByDefinedOptions | |
PluginBase::getAvailableGlobalTokens | public | function | Returns an array of available token replacements. | Overrides ViewsPluginInterface::getAvailableGlobalTokens | |
PluginBase::getProvider | public | function | Returns the plugin provider. | Overrides ViewsPluginInterface::getProvider | |
PluginBase::globalTokenForm | public | function | Adds elements for available core tokens to a form. | Overrides ViewsPluginInterface::globalTokenForm | |
PluginBase::globalTokenReplace | public | function | Returns a string with any core tokens replaced. | 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::listLanguages | protected | function | Makes an array of languages, optionally including special languages. | ||
PluginBase::pluginTitle | public | function | Return the human readable name of the display. | Overrides ViewsPluginInterface::pluginTitle | |
PluginBase::preRenderAddFieldsetMarkup | public static | function | Moves form elements into fieldsets for presentation purposes. | Overrides ViewsPluginInterface::preRenderAddFieldsetMarkup | |
PluginBase::preRenderFlattenData | public static | function | Flattens the structure of form elements. | 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 | Returns the summary of the settings in the display. | Overrides ViewsPluginInterface::summaryTitle | 6 |
PluginBase::trustedCallbacks | public static | function | Lists the trusted callbacks provided by the implementing class. | Overrides TrustedCallbackInterface::trustedCallbacks | 6 |
PluginBase::unpackOptions | public | function | Unpacks options over our existing defaults. | Overrides ViewsPluginInterface::unpackOptions | |
PluginBase::usesOptions | public | function | Returns the usesOptions property. | Overrides ViewsPluginInterface::usesOptions | 8 |
PluginBase::validateOptionsForm | public | function | Validate the options form. | 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. | |||
PluginInspectionInterface::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | 6 | |
PluginInspectionInterface::getPluginId | public | function | Gets the plugin_id of the plugin instance. | 2 | |
PrerenderList::$items | public | property | Stores all items which are used to render the items. | ||
PrerenderList::buildOptionsForm | public | function | Default option form that provides label widget that all fields should have. | Overrides FieldPluginBase::buildOptionsForm | 1 |
PrerenderList::defineOptions | protected | function | Information about options for all kinds of purposes will be held here. | Overrides FieldPluginBase::defineOptions | 1 |
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 | Render all items in this field together. | Overrides MultiItemsFieldHandlerInterface::renderItems | |
TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | |||
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | |||
TrustedCallbackInterface::TRIGGER_WARNING | 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.