UriItem.php in Drupal 8
File
core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php
View source
<?php
namespace Drupal\Core\Field\Plugin\Field\FieldType;
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) {
$values = parent::generateSampleValue($field_definition);
$suffix_length = $field_definition
->getSetting('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. |