metatagManager = $metatag_manager; $this->token = $token; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $configuration, $plugin_id, $plugin_definition, $container->get('metatag.manager'), $container->get('token') ); } /** * {@inheritdoc} */ protected function doUndoTransform($data, Context $context) { $field_item = $context['field_item_object']; $entity = $field_item->getEntity(); $metatags_for_entity = $this->metatagManager->tagsFromEntityWithDefaults($entity); $token_replacements = [$entity->getEntityTypeId() => $entity]; $replacements_options['clear'] = TRUE; $data = []; foreach ($metatags_for_entity as $metatag_key => $metatag_for_entity) { $data[$metatag_key] = PlainTextOutput::renderFromHtml(htmlspecialchars_decode($this->token->replace($metatag_for_entity, $token_replacements, $replacements_options))); if (empty($data[$metatag_key])) { unset($data[$metatag_key]); } } return [ 'value' => $data, ]; } /** * {@inheritdoc} */ protected function doTransform($value, Context $context) { return $value; } /** * {@inheritdoc} */ public function getOutputJsonSchema() { return [ 'type' => 'object', ]; } }