datafield-1.x-dev/src/Plugin/DataField/FieldFormatter/MailToFormatter.php
src/Plugin/DataField/FieldFormatter/MailToFormatter.php
<?php
namespace Drupal\datafield\Plugin\DataField\FieldFormatter;
use Drupal\Core\Field\Attribute\FieldFormatter;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\Url;
use Drupal\datafield\Plugin\DataFieldFormatterInterface;
/**
* Plugin implementation of the 'email_mailto' formatter.
*/
#[FieldFormatter(
id: 'email_mailto',
label: new TranslatableMarkup('Email'),
field_types: ['email'],
)]
class MailToFormatter implements DataFieldFormatterInterface {
/**
* {@inheritdoc}
*/
public function viewElements($item, $langcode) {
if (is_null($item->value)) {
return $item->value;
}
return [
'#type' => 'link',
'#title' => $item->value,
'#url' => Url::fromUri('mailto:' . $item->value),
];
}
/**
* {@inheritdoc}
*/
public function settingsForm(array $form, FormStateInterface $form_state) {
return [];
}
/**
* {@inheritdoc}
*/
public function settingsSummary($settings = []) {
return [];
}
}
