3 namespace Drupal\views\Plugin\views\field;
5 use Drupal\views\ResultRow;
8 * Trait encapsulating the logic for uncacheable field handlers.
10 trait UncacheableFieldHandlerTrait {
15 * @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::render()
17 public function render(ResultRow $row) {
18 return $this->getFieldTokenPlaceholder();
24 * @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::postRender()
26 public function postRender(ResultRow $row, $output) {
27 $placeholder = $this->getFieldTokenPlaceholder();
28 $value = $this->doRender($row);
29 $this->last_render = str_replace($placeholder, $value, $output);
30 return [$placeholder => $value];
36 * @see \Drupal\views\Plugin\views\Field\FieldPluginBase::getFieldTokenPlaceholder()
38 abstract protected function getFieldTokenPlaceholder();
41 * Actually renders the field markup.
43 * @param \Drupal\views\ResultRow $row
49 protected function doRender(ResultRow $row) {
50 return $this->getValue($row);
56 * @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::getValue()
58 abstract protected function getValue(ResultRow $row, $field = NULL);