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

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc