ClientApiKeyDefaultWidget.php in Localization client 8
File
l10n_client_contributor/src/Plugin/Field/FieldWidget/ClientApiKeyDefaultWidget.php
View source
<?php
namespace Drupal\l10n_client_contributor\Plugin\Field\FieldWidget;
use Drupal\Core\Field\Plugin\Field\FieldWidget\StringTextfieldWidget;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\user\UserInterface;
class ClientApiKeyDefaultWidget extends StringTextfieldWidget {
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
$config = \Drupal::configFactory()
->getEditable('l10n_client_contributor.settings');
$account = $items
->getEntity();
if (!$config
->get('use_server') || !$account instanceof UserInterface || !$account
->hasPermission('contribute translations to localization server')) {
return array();
}
$server_root = $config
->get('server');
$server_api_link = $server_root . '?q=translate/remote/userkey/' . l10n_client_contributor_user_token($account);
$element = parent::formElement($items, $delta, $element, $form, $form_state);
$element['value']['#title'] = $this
->t('Your API key for @server', array(
'@server' => $server_root,
));
$element['value']['#description'] = $this
->t('This is a unique key that will allow you to send translations to the remote server. To get your API key go to <a href=":server">:server</a>.', array(
':server' => $server_api_link,
));
return $element;
}
}