cloudinary-8.x-1.x-dev/modules/cloudinary_video/src/Plugin/Field/FieldType/CloudinaryVideo.php
modules/cloudinary_video/src/Plugin/Field/FieldType/CloudinaryVideo.php
<?php
namespace Drupal\cloudinary_video\Plugin\Field\FieldType;
use Drupal\cloudinary_media_library_widget\Plugin\Field\FieldType\CloudinaryFieldItemTrait;
use Drupal\Core\Field\FieldItemBase;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\TypedData\DataDefinition;
/**
* Plugin implementation of the 'cloudinary_video' field type.
*
* @FieldType(
* id = "cloudinary_video",
* label = @Translation("Cloudinary video"),
* description = @Translation("This field stores a cloudinary asset info."),
* category = @Translation("Media"),
* default_widget = "cloudinary_widget",
* default_formatter = "cloudinary_video_player",
* no_ui = TRUE,
* )
*/
class CloudinaryVideo extends FieldItemBase {
use CloudinaryFieldItemTrait {
schema as baseSchema;
propertyDefinitions as basePropertyDefinitions;
}
/**
* {@inheritdoc}
*/
public static function schema(FieldStorageDefinitionInterface $field_definition) {
$schema = self::baseSchema($field_definition);
$schema['columns']['description'] = [
'description' => 'A description of the video.',
'type' => 'text',
];
return $schema;
}
/**
* {@inheritdoc}
*/
public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
$properties = self::basePropertyDefinitions($field_definition);
$properties['description'] = DataDefinition::create('string')
->setLabel(t('Description'));
return $properties;
}
/**
* {@inheritdoc}
*/
public static function mainPropertyName() {
return 'public_id';
}
/**
* {@inheritdoc}
*/
public function isEmpty() {
return empty($this->public_id);
}
}
