UncacheableFieldHandlerTrait.php in Drupal 8
Same filename and directory in other branches
Namespace
Drupal\views\Plugin\views\fieldFile
core/modules/views/src/Plugin/views/field/UncacheableFieldHandlerTrait.phpView source
<?php
namespace Drupal\views\Plugin\views\field;
use Drupal\views\ResultRow;
/**
* Trait encapsulating the logic for uncacheable field handlers.
*/
trait UncacheableFieldHandlerTrait {
/**
* {@inheritdoc}
*
* @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::render()
*/
public function render(ResultRow $row) {
return $this
->getFieldTokenPlaceholder();
}
/**
* {@inheritdoc}
*
* @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::postRender()
*/
public function postRender(ResultRow $row, $output) {
$placeholder = $this
->getFieldTokenPlaceholder();
$value = $this
->doRender($row);
$this->last_render = str_replace($placeholder, $value, $output);
return [
$placeholder => $value,
];
}
/**
* {@inheritdoc}
*
* @see \Drupal\views\Plugin\views\Field\FieldPluginBase::getFieldTokenPlaceholder()
*/
protected abstract function getFieldTokenPlaceholder();
/**
* Actually renders the field markup.
*
* @param \Drupal\views\ResultRow $row
* A result row.
*
* @return string
* The field markup.
*/
protected function doRender(ResultRow $row) {
return $this
->getValue($row);
}
/**
* {@inheritdoc}
*
* @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::getValue()
*/
protected abstract function getValue(ResultRow $row, $field = NULL);
}
Traits
Name | Description |
---|---|
UncacheableFieldHandlerTrait | Trait encapsulating the logic for uncacheable field handlers. |