hn-8.x-1.x-dev/src/Normalizer/LinkNormalizer.php

src/Normalizer/LinkNormalizer.php
<?php

namespace Drupal\hn\Normalizer;

use Drupal\serialization\Normalizer\FieldItemNormalizer;

/**
 * Transforms internal paths to url strings.
 *
 * An internal link is by default normalized as entity:node/9. This normalizer
 * transforms that to the actual url (/node-9 for example).
 */
class LinkNormalizer extends FieldItemNormalizer {

  protected $format = ['hn'];

  protected $supportedInterfaceOrClass = 'Drupal\link\Plugin\Field\FieldType\LinkItem';

  /**
   * {@inheritdoc}
   */
  public function normalize($field_item, $format = NULL, array $context = []) {
    /** @var \Drupal\link\Plugin\Field\FieldType\LinkItem $field_item */

    // Don't normalize if the uri is null. See issue #2921663.
    if (is_null($field_item->get('uri')->getValue())) {
      return NULL;
    }

    $return = parent::normalize($field_item, $format, $context);
    $return['uri'] = $field_item->getUrl()->toString();
    return $return;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc