Same filename and directory in other branches
- 8.9.x core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php
- 9 core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php
Namespace
Drupal\Core\Field\Plugin\Field\FieldType
File
core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php
View 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\TypedData\DataDefinition;
class UriItem extends StringItem {
public static function defaultStorageSettings() {
$storage_settings = parent::defaultStorageSettings();
unset($storage_settings['is_ascii']);
$storage_settings['max_length'] = 2048;
return $storage_settings;
}
public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
$properties['value'] = DataDefinition::create('uri')
->setLabel(t('URI value'))
->setSetting('case_sensitive', $field_definition
->getSetting('case_sensitive'))
->setRequired(TRUE);
return $properties;
}
public static function schema(FieldStorageDefinitionInterface $field_definition) {
return [
'columns' => [
'value' => [
'type' => 'varchar',
'length' => (int) $field_definition
->getSetting('max_length'),
'binary' => $field_definition
->getSetting('case_sensitive'),
],
],
];
}
public function isEmpty() {
$value = $this
->getValue();
if (!isset($value['value']) || $value['value'] === '') {
return TRUE;
}
return parent::isEmpty();
}
public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
$random = new Random();
$max_length = $field_definition
->getSetting('max_length');
$min_length = min(10, $max_length);
$length = mt_rand($min_length, mt_rand($min_length, mt_rand($min_length, $max_length)));
$values['value'] = $random
->word($length);
$suffix_length = $max_length - 7;
foreach ($values as $key => $value) {
$values[$key] = 'http://' . mb_substr($value, 0, $suffix_length);
}
return $values;
}
}
Classes
Name |
Description |
UriItem |
Defines the 'uri' entity field type. |