custom_field-1.0.x-dev/src/Plugin/CustomField/FieldFormatter/MailToFormatter.php

src/Plugin/CustomField/FieldFormatter/MailToFormatter.php
<?php

declare(strict_types=1);

namespace Drupal\custom_field\Plugin\CustomField\FieldFormatter;

use Drupal\Component\Utility\Html;
use Drupal\Core\Field\Attribute\FieldFormatter;
use Drupal\Core\Field\FieldItemInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\custom_field\Plugin\CustomFieldFormatterBase;

/**
 * Plugin implementation of the 'email_mailto' formatter.
 */
#[FieldFormatter(
  id: 'email_mailto',
  label: new TranslatableMarkup('Email'),
  field_types: [
    'email',
  ],
)]
class MailToFormatter extends CustomFieldFormatterBase {

  /**
   * {@inheritdoc}
   */
  public function formatValue(FieldItemInterface $item, mixed $value): ?array {
    // Check if email is valid.
    if (empty($value) || !filter_var($value, FILTER_VALIDATE_EMAIL)) {
      return NULL;
    }
    $email = Html::escape($value);
    return [
      '#markup' => '<a href="mailto:' . $email . '">' . $email . '</a>',
    ];
  }

}

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

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