Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php @ 12:7a779792577d
Update Drupal core to v8.4.5 (via Composer)
author | Chris Cannam |
---|---|
date | Fri, 23 Feb 2018 15:52:07 +0000 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Field\Plugin\Field\FieldType; use Drupal\Component\Utility\Random; use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\Core\Form\FormStateInterface; /** * Defines the 'string' entity field type. * * @FieldType( * id = "string", * label = @Translation("Text (plain)"), * description = @Translation("A field containing a plain string value."), * category = @Translation("Text"), * default_widget = "string_textfield", * default_formatter = "string" * ) */ class StringItem extends StringItemBase { /** * {@inheritdoc} */ public static function defaultStorageSettings() { return [ 'max_length' => 255, 'is_ascii' => FALSE, ] + parent::defaultStorageSettings(); } /** * {@inheritdoc} */ public static function schema(FieldStorageDefinitionInterface $field_definition) { return [ 'columns' => [ 'value' => [ 'type' => $field_definition->getSetting('is_ascii') === TRUE ? 'varchar_ascii' : 'varchar', 'length' => (int) $field_definition->getSetting('max_length'), 'binary' => $field_definition->getSetting('case_sensitive'), ], ], ]; } /** * {@inheritdoc} */ public function getConstraints() { $constraints = parent::getConstraints(); if ($max_length = $this->getSetting('max_length')) { $constraint_manager = \Drupal::typedDataManager()->getValidationConstraintManager(); $constraints[] = $constraint_manager->create('ComplexData', [ 'value' => [ 'Length' => [ 'max' => $max_length, 'maxMessage' => t('%name: may not be longer than @max characters.', ['%name' => $this->getFieldDefinition()->getLabel(), '@max' => $max_length]), ], ], ]); } return $constraints; } /** * {@inheritdoc} */ public static function generateSampleValue(FieldDefinitionInterface $field_definition) { $random = new Random(); $values['value'] = $random->word(mt_rand(1, $field_definition->getSetting('max_length'))); return $values; } /** * {@inheritdoc} */ public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) { $element = []; $element['max_length'] = [ '#type' => 'number', '#title' => t('Maximum length'), '#default_value' => $this->getSetting('max_length'), '#required' => TRUE, '#description' => t('The maximum length of the field in characters.'), '#min' => 1, '#disabled' => $has_data, ]; return $element; } }