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;
  }
}